]> www.infradead.org Git - users/hch/xfs.git/commitdiff
fs: update s_writers.frozen before calling ->unfreeze_fs
authorChristoph Hellwig <hch@lst.de>
Tue, 4 Feb 2025 14:36:46 +0000 (15:36 +0100)
committerChristoph Hellwig <hch@lst.de>
Tue, 4 Feb 2025 14:36:46 +0000 (15:36 +0100)
That way fіle systems can add asserts that ensure certain activity
don't happen on a completely frozen (SB_FREEZE_COMPLETE) superblock
while still allowing for said activity during unfreeze.

Signed-off-by: Christoph Hellwig <hch@lst.de>
fs/super.c

index 5a7db4a556e37323ab89b5e9f5ec7d323c3d029d..3a259ffd407202c87e375c3dc146c238d092c5a2 100644 (file)
@@ -2170,6 +2170,9 @@ static int thaw_super_locked(struct super_block *sb, enum freeze_holder who)
 
        lockdep_sb_freeze_acquire(sb);
 
+       sb->s_writers.frozen = SB_FREEZE_FS;
+       wmb();
+
        if (sb->s_op->unfreeze_fs) {
                error = sb->s_op->unfreeze_fs(sb);
                if (error) {