Explorar o código

Btrfs: stop mounting the fs if the non-ENOENT errors happen when opening seed fs

When we open a seed filesystem, if the degraded mount option is set, we continue to
mount the fs if we don't find some devices in the seed filesystem. But we should stop
mounting if other errors happen. Fix it

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
Miao Xie %!s(int64=11) %!d(string=hai) anos
pai
achega
416d7b802a
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      fs/btrfs/volumes.c

+ 1 - 1
fs/btrfs/volumes.c

@@ -6093,7 +6093,7 @@ static int read_one_dev(struct btrfs_root *root,
 
 
 	if (memcmp(fs_uuid, root->fs_info->fsid, BTRFS_UUID_SIZE)) {
 	if (memcmp(fs_uuid, root->fs_info->fsid, BTRFS_UUID_SIZE)) {
 		ret = open_seed_devices(root, fs_uuid);
 		ret = open_seed_devices(root, fs_uuid);
-		if (ret && !btrfs_test_opt(root, DEGRADED))
+		if (ret && !(ret == -ENOENT && btrfs_test_opt(root, DEGRADED)))
 			return ret;
 			return ret;
 	}
 	}