|
@@ -116,7 +116,16 @@ static void btrfs_handle_error(struct btrfs_fs_info *fs_info)
|
|
if (fs_info->fs_state & BTRFS_SUPER_FLAG_ERROR) {
|
|
if (fs_info->fs_state & BTRFS_SUPER_FLAG_ERROR) {
|
|
sb->s_flags |= MS_RDONLY;
|
|
sb->s_flags |= MS_RDONLY;
|
|
printk(KERN_INFO "btrfs is forced readonly\n");
|
|
printk(KERN_INFO "btrfs is forced readonly\n");
|
|
- btrfs_scrub_cancel(fs_info);
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Note that a running device replace operation is not
|
|
|
|
+ * canceled here although there is no way to update
|
|
|
|
+ * the progress. It would add the risk of a deadlock,
|
|
|
|
+ * therefore the canceling is ommited. The only penalty
|
|
|
|
+ * is that some I/O remains active until the procedure
|
|
|
|
+ * completes. The next time when the filesystem is
|
|
|
|
+ * mounted writeable again, the device replace
|
|
|
|
+ * operation continues.
|
|
|
|
+ */
|
|
// WARN_ON(1);
|
|
// WARN_ON(1);
|
|
}
|
|
}
|
|
}
|
|
}
|