diff options
author | David Sterba <dsterba@suse.com> | 2016-02-26 09:38:30 -0500 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-02-26 09:38:30 -0500 |
commit | 23c1a966f2525e71f895bf349a5ae9e5d7bdd67f (patch) | |
tree | cdbe7b2a556b4789c2c61b9dc1bffe864654edde /fs/btrfs/disk-io.c | |
parent | 67d605fec1d406f6a0272be39686801d389f59c9 (diff) | |
parent | fed8f166ebf3afb8b91a1fd73d706788e07a91ef (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.c | 15 |
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 | ||
3152 | fail_qgroup: | 3159 | fail_qgroup: |
@@ -3201,7 +3208,7 @@ fail: | |||
3201 | return err; | 3208 | return err; |
3202 | 3209 | ||
3203 | recovery_tree_root: | 3210 | recovery_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); |