Btrfs: skip readonly root for snapshot-aware defragment
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>
Sat, 8 Feb 2014 15:46:35 +0000 (23:46 +0800)
committerJosef Bacik <jbacik@fb.com>
Mon, 10 Mar 2014 19:16:34 +0000 (15:16 -0400)
Btrfs send is assuming readonly root won't change, let's skip readonly root.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
fs/btrfs/inode.c

index 5b892500309087b78875918608fa3289578a5a04..b88f6221b48bcda92c66b6e5ebcd1e08ab7924ea 100644 (file)
@@ -2240,6 +2240,11 @@ static noinline int relink_extent_backref(struct btrfs_path *path,
                return PTR_ERR(root);
        }
 
+       if (btrfs_root_readonly(root)) {
+               srcu_read_unlock(&fs_info->subvol_srcu, index);
+               return 0;
+       }
+
        /* step 2: get inode */
        key.objectid = backref->inum;
        key.type = BTRFS_INODE_ITEM_KEY;