From: Theodore Ts'o Date: Thu, 4 Apr 2013 01:58:52 +0000 (-0400) Subject: ext4: add mutex_is_locked() assertion to ext4_truncate() X-Git-Tag: v3.10-rc2~29^2~48 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=19b5ef615787062a87c4ea15fcdb0e256b62ed19;p=platform%2Fkernel%2Flinux-stable.git ext4: add mutex_is_locked() assertion to ext4_truncate() [ Added fixup from Lukáš Czerner which only checks the assertion when the inode is not new and is not being freed. ] Signed-off-by: "Theodore Ts'o" --- diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 49c80e4..56ebd66 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -3788,6 +3788,13 @@ void ext4_truncate(struct inode *inode) struct address_space *mapping = inode->i_mapping; loff_t page_len; + /* + * There is a possibility that we're either freeing the inode + * or it completely new indode. In those cases we might not + * have i_mutex locked because it's not necessary. + */ + if (!(inode->i_state & (I_NEW|I_FREEING))) + WARN_ON(!mutex_is_locked(&inode->i_mutex)); trace_ext4_truncate_enter(inode); if (!ext4_can_truncate(inode))