• Eric Sandeen's avatar
    ext4: fix freeze deadlock under IO · 96fbd3f2
    Eric Sandeen authored
    commit 437f88cc upstream.
    
    Commit 6b0310fb caused a regression resulting in deadlocks
    when freezing a filesystem which had active IO; the vfs_check_frozen
    level (SB_FREEZE_WRITE) did not let the freeze-related IO syncing
    through.  Duh.
    
    Changing the test to FREEZE_TRANS should let the normal freeze
    syncing get through the fs, but still block any transactions from
    starting once the fs is completely frozen.
    
    I tested this by running fsstress in the background while periodically
    snapshotting the fs and running fsck on the result.  I ran into
    occasional deadlocks, but different ones.  I think this is a
    fine fix for the problem at hand, and the other deadlocky things
    will need more investigation.
    Reported-by: default avatarPhillip Susi <psusi@cfl.rr.com>
    Signed-off-by: default avatarEric Sandeen <sandeen@redhat.com>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    96fbd3f2
super.c 117 KB