diff options
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r-- | fs/btrfs/disk-io.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index bd70c2852ba0..064315990f8a 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -2508,6 +2508,13 @@ retry_root_backup: | |||
2508 | } | 2508 | } |
2509 | fs_info->num_tolerated_disk_barrier_failures = | 2509 | fs_info->num_tolerated_disk_barrier_failures = |
2510 | btrfs_calc_num_tolerated_disk_barrier_failures(fs_info); | 2510 | btrfs_calc_num_tolerated_disk_barrier_failures(fs_info); |
2511 | if (fs_info->fs_devices->missing_devices > | ||
2512 | fs_info->num_tolerated_disk_barrier_failures && | ||
2513 | !(sb->s_flags & MS_RDONLY)) { | ||
2514 | printk(KERN_WARNING | ||
2515 | "Btrfs: too many missing devices, writeable mount is not allowed\n"); | ||
2516 | goto fail_block_groups; | ||
2517 | } | ||
2511 | 2518 | ||
2512 | fs_info->cleaner_kthread = kthread_run(cleaner_kthread, tree_root, | 2519 | fs_info->cleaner_kthread = kthread_run(cleaner_kthread, tree_root, |
2513 | "btrfs-cleaner"); | 2520 | "btrfs-cleaner"); |