summaryrefslogtreecommitdiffstats
path: root/fs/pipe.c
diff options
context:
space:
mode:
authorYongqiang Yang <xiaoqiangnk@gmail.com>2011-04-10 22:06:07 -0400
committerTheodore Ts'o <tytso@mit.edu>2011-04-10 22:06:07 -0400
commitbe4f27d324e8ddd57cc0d4d604fe85ee0425cba9 (patch)
treee4262a9e1ade9095e1bf937dc4b9d56a08824eda /fs/pipe.c
parent0893ed458b4b1d7c7667ca7ffb8b11febe7e7e6c (diff)
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/pipe.c')
0 files changed, 0 insertions, 0 deletions