aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/disk-io.c
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2016-02-26 09:38:30 -0500
committerDavid Sterba <dsterba@suse.com>2016-02-26 09:38:30 -0500
commit23c1a966f2525e71f895bf349a5ae9e5d7bdd67f (patch)
treecdbe7b2a556b4789c2c61b9dc1bffe864654edde /fs/btrfs/disk-io.c
parent67d605fec1d406f6a0272be39686801d389f59c9 (diff)
parentfed8f166ebf3afb8b91a1fd73d706788e07a91ef (diff)
Merge branch 'foreign/qu/norecovery-v7' into for-chris-4.6
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r--fs/btrfs/disk-io.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 40690e90beee..294c77729df3 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -2751,7 +2751,7 @@ int open_ctree(struct super_block *sb,
2751 */ 2751 */
2752 fs_info->compress_type = BTRFS_COMPRESS_ZLIB; 2752 fs_info->compress_type = BTRFS_COMPRESS_ZLIB;
2753 2753
2754 ret = btrfs_parse_options(tree_root, options); 2754 ret = btrfs_parse_options(tree_root, options, sb->s_flags);
2755 if (ret) { 2755 if (ret) {
2756 err = ret; 2756 err = ret;
2757 goto fail_alloc; 2757 goto fail_alloc;
@@ -3030,8 +3030,9 @@ retry_root_backup:
3030 if (ret) 3030 if (ret)
3031 goto fail_trans_kthread; 3031 goto fail_trans_kthread;
3032 3032
3033 /* do not make disk changes in broken FS */ 3033 /* do not make disk changes in broken FS or nologreplay is given */
3034 if (btrfs_super_log_root(disk_super) != 0) { 3034 if (btrfs_super_log_root(disk_super) != 0 &&
3035 !btrfs_test_opt(tree_root, NOLOGREPLAY)) {
3035 ret = btrfs_replay_log(fs_info, fs_devices); 3036 ret = btrfs_replay_log(fs_info, fs_devices);
3036 if (ret) { 3037 if (ret) {
3037 err = ret; 3038 err = ret;
@@ -3147,6 +3148,12 @@ retry_root_backup:
3147 3148
3148 fs_info->open = 1; 3149 fs_info->open = 1;
3149 3150
3151 /*
3152 * backuproot only affect mount behavior, and if open_ctree succeeded,
3153 * no need to keep the flag
3154 */
3155 btrfs_clear_opt(fs_info->mount_opt, USEBACKUPROOT);
3156
3150 return 0; 3157 return 0;
3151 3158
3152fail_qgroup: 3159fail_qgroup:
@@ -3201,7 +3208,7 @@ fail:
3201 return err; 3208 return err;
3202 3209
3203recovery_tree_root: 3210recovery_tree_root:
3204 if (!btrfs_test_opt(tree_root, RECOVERY)) 3211 if (!btrfs_test_opt(tree_root, USEBACKUPROOT))
3205 goto fail_tree_roots; 3212 goto fail_tree_roots;
3206 3213
3207 free_root_pointers(fs_info, 0); 3214 free_root_pointers(fs_info, 0);