Btrfs-progs: pass properly formated key to read_fs_root
authorJosef Bacik <jbacik@fusionio.com>
Thu, 2 May 2013 13:15:22 +0000 (09:15 -0400)
committerChris Mason <chris.mason@fusionio.com>
Wed, 19 Jun 2013 17:52:22 +0000 (13:52 -0400)
We have a BUG_ON() in read_fs_root that expects key->offset == (u64)-1.  Restore
will just pass in the location it reads out of the inode if it has a subvol
reference and pass that in, which doesn't have offset == (u64)-1, so it causes
restore blow up.  This was reported in bugzilla and this patch fixed the
problem.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
cmds-restore.c

index dcf459f..eca528d 100644 (file)
@@ -708,6 +708,7 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
                                        goto next;
                                }
 
+                               location.offset = (u64)-1;
                                search_root = btrfs_read_fs_root(root->fs_info,
                                                                 &location);
                                if (IS_ERR(search_root)) {