> + if (!uuid_root) {
> + WARN_ON_ONCE(1);
> + ret = -ENOENT;
> + goto out;
> + }
WARN_ON_ONCE specifically returns the condition so that you can write:
if (WARN_ON_ONCE(!uuid_root)) {
ret = -ENOENT;
goto out;
}
> + while (item_size) {
> + u64 data;
> +
> + read_extent_buffer(eb, &data, offset, sizeof(data));
> + data = le64_to_cpu(data);
> + if (data == subid) {
> + ret = 0;
> + break;
> + }
> + offset += sizeof(data);
> + item_size -= sizeof(data);
> + }
fs/btrfs/uuid-tree.c:81 col 24 warning: cast to restricted __le64
There are a few more instances of this. The good news is that fixing
the sparse warning makes the code better, too.
__le64 data;
read_extent_buffer(eb, &data, offset, sizeof(data));
if (le64_to_cpu(data) == subid) {
Plese make sure the rest of the series doesn't add sparse warnings for
Josef to get email about a few seconds after he merges.
> +int btrfs_insert_uuid_subvol_item(struct btrfs_trans_handle *trans,
> + struct btrfs_root *uuid_root, u8 *uuid,
> + u64 subvol_id)
> +{
> + int ret;
> +
> + ret = btrfs_uuid_tree_lookup(uuid_root, uuid,
> + BTRFS_UUID_KEY_SUBVOL, subvol_id);
> + if (ret == -ENOENT)
> + ret = btrfs_uuid_tree_add(trans, uuid_root, uuid,
> + BTRFS_UUID_KEY_SUBVOL, subvol_id);
> + return ret;
> +}
> +int btrfs_insert_uuid_received_subvol_item(struct btrfs_trans_handle *trans,
> + struct btrfs_root *uuid_root,
> + u8 *uuid, u64 subvol_id)
> +{
> + int ret;
> +
> + ret = btrfs_uuid_tree_lookup(uuid_root, uuid,
> + BTRFS_UUID_KEY_RECEIVED_SUBVOL, subvol_id);
> + if (ret == -ENOENT)
> + ret = btrfs_uuid_tree_add(trans, uuid_root, uuid,
> + BTRFS_UUID_KEY_RECEIVED_SUBVOL,
> + subvol_id);
> + return ret;
> +}
Just have callers pass in the key type so we get slightly less enormous
function names and less cut-and-paste code.
- z
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html