File tree Expand file tree Collapse file tree 4 files changed +8
-7
lines changed Expand file tree Collapse file tree 4 files changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -716,6 +716,8 @@ struct btrfs_delayed_root;
716
716
#define BTRFS_FS_LOG1_ERR 12
717
717
#define BTRFS_FS_LOG2_ERR 13
718
718
#define BTRFS_FS_QUOTA_OVERRIDE 14
719
+ /* Used to record internally whether fs has been frozen */
720
+ #define BTRFS_FS_FROZEN 15
719
721
720
722
/*
721
723
* Indicate that a whole-filesystem exclusive operation is running
@@ -1107,9 +1109,6 @@ struct btrfs_fs_info {
1107
1109
*/
1108
1110
struct list_head pinned_chunks ;
1109
1111
1110
- /* Used to record internally whether fs has been frozen */
1111
- int fs_frozen ;
1112
-
1113
1112
/* Cached block sizes */
1114
1113
u32 nodesize ;
1115
1114
u32 sectorsize ;
Original file line number Diff line number Diff line change @@ -2661,7 +2661,6 @@ int open_ctree(struct super_block *sb,
2661
2661
atomic_set (& fs_info -> qgroup_op_seq , 0 );
2662
2662
atomic_set (& fs_info -> reada_works_cnt , 0 );
2663
2663
atomic64_set (& fs_info -> tree_mod_seq , 0 );
2664
- fs_info -> fs_frozen = 0 ;
2665
2664
fs_info -> sb = sb ;
2666
2665
fs_info -> max_inline = BTRFS_DEFAULT_MAX_INLINE ;
2667
2666
fs_info -> metadata_ratio = 0 ;
Original file line number Diff line number Diff line change @@ -2242,7 +2242,7 @@ static int btrfs_freeze(struct super_block *sb)
2242
2242
struct btrfs_fs_info * fs_info = btrfs_sb (sb );
2243
2243
struct btrfs_root * root = fs_info -> tree_root ;
2244
2244
2245
- fs_info -> fs_frozen = 1 ;
2245
+ set_bit ( BTRFS_FS_FROZEN , & fs_info -> flags ) ;
2246
2246
/*
2247
2247
* We don't need a barrier here, we'll wait for any transaction that
2248
2248
* could be in progress on other threads (and do delayed iputs that
@@ -2261,7 +2261,9 @@ static int btrfs_freeze(struct super_block *sb)
2261
2261
2262
2262
static int btrfs_unfreeze (struct super_block * sb )
2263
2263
{
2264
- btrfs_sb (sb )-> fs_frozen = 0 ;
2264
+ struct btrfs_fs_info * fs_info = btrfs_sb (sb );
2265
+
2266
+ clear_bit (BTRFS_FS_FROZEN , & fs_info -> flags );
2265
2267
return 0 ;
2266
2268
}
2267
2269
Original file line number Diff line number Diff line change @@ -2314,7 +2314,8 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans)
2314
2314
* it'll result in deadlock about SB_FREEZE_FS.
2315
2315
*/
2316
2316
if (current != fs_info -> transaction_kthread &&
2317
- current != fs_info -> cleaner_kthread && !fs_info -> fs_frozen )
2317
+ current != fs_info -> cleaner_kthread &&
2318
+ !test_bit (BTRFS_FS_FROZEN , & fs_info -> flags ))
2318
2319
btrfs_run_delayed_iputs (fs_info );
2319
2320
2320
2321
return ret ;
You can’t perform that action at this time.
0 commit comments