diff options
author | Alexander Block <ablock84@googlemail.com> | 2012-07-28 16:18:58 +0200 |
---|---|---|
committer | Chris Mason <chris.mason@fusionio.com> | 2012-10-01 15:18:53 -0400 |
commit | 34d73f54e2e2227cece751f168d08d3103092992 (patch) | |
tree | 08993b77d664256059a6d6bb97d10e67fdb753f8 /fs/btrfs/backref.c | |
parent | 7e0926fe5f20b5c88e51cba68512302b10f73d2a (diff) | |
download | op-kernel-dev-34d73f54e2e2227cece751f168d08d3103092992.zip op-kernel-dev-34d73f54e2e2227cece751f168d08d3103092992.tar.gz |
Btrfs: make aux field of ulist 64 bit
Btrfs send/receive uses the aux field to store inode numbers. On
32 bit machines this may become a problem.
Also fix all users of ulist_add and ulist_add_merged.
Reported-by: Arne Jansen <sensille@gmx.net>
Signed-off-by: Alexander Block <ablock84@googlemail.com>
Diffstat (limited to 'fs/btrfs/backref.c')
-rw-r--r-- | fs/btrfs/backref.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index ff6475f..6655ca6 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -231,7 +231,7 @@ static int add_all_parents(struct btrfs_root *root, struct btrfs_path *path, } if (!ret) { ret = ulist_add(parents, eb->start, - (unsigned long)eie, GFP_NOFS); + (u64)eie, GFP_NOFS); if (ret < 0) break; if (!extent_item_pos) { @@ -914,8 +914,8 @@ again: free_extent_buffer(eb); } ret = ulist_add_merge(refs, ref->parent, - (unsigned long)ref->inode_list, - (unsigned long *)&eie, GFP_NOFS); + (u64)ref->inode_list, + (u64 *)&eie, GFP_NOFS); if (!ret && extent_item_pos) { /* * we've recorded that parent, so we must extend @@ -1404,7 +1404,7 @@ int iterate_extent_inodes(struct btrfs_fs_info *fs_info, ULIST_ITER_INIT(&root_uiter); while (!ret && (root_node = ulist_next(roots, &root_uiter))) { pr_debug("root %llu references leaf %llu, data list " - "%#lx\n", root_node->val, ref_node->val, + "%#llx\n", root_node->val, ref_node->val, ref_node->aux); ret = iterate_leaf_refs( (struct extent_inode_elem *)ref_node->aux, |