> +     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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to