> + 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