summaryrefslogtreecommitdiffstats
path: root/fs/partitions/ldm.h
diff options
context:
space:
mode:
authorYongqiang Yang2011-04-11 04:06:07 +0200
committerTheodore Ts'o2011-04-11 04:06:07 +0200
commitbe4f27d324e8ddd57cc0d4d604fe85ee0425cba9 (patch)
treee4262a9e1ade9095e1bf937dc4b9d56a08824eda /fs/partitions/ldm.h
parentext4: sync the directory inode in ext4_sync_parent() (diff)
downloadkernel-qcow2-linux-be4f27d324e8ddd57cc0d4d604fe85ee0425cba9.tar.gz
kernel-qcow2-linux-be4f27d324e8ddd57cc0d4d604fe85ee0425cba9.tar.xz
kernel-qcow2-linux-be4f27d324e8ddd57cc0d4d604fe85ee0425cba9.zip
ext4: allow an active handle to be started when freezing
ext4_journal_start_sb() should not prevent an active handle from being started due to s_frozen. Otherwise, deadlock is easy to happen, below is a situation. ================================================ freeze | truncate ================================================ | ext4_ext_truncate() freeze_super() | starts a handle sets s_frozen | | ext4_ext_truncate() | holds i_data_sem ext4_freeze() | waits for updates | | ext4_free_blocks() | calls dquot_free_block() | | dquot_free_blocks() | calls ext4_dirty_inode() | | ext4_dirty_inode() | trys to start an active | handle | | block due to s_frozen ================================================ Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Reported-by: Amir Goldstein <amir73il@users.sf.net> Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Diffstat (limited to 'fs/partitions/ldm.h')
0 files changed, 0 insertions, 0 deletions