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-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=19b5ef615787062a87c4ea15fcdb0e256b62ed19;p=openwrt%2Fstaging%2Fblogic.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 49c80e4ac5ac..56ebd662033b 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))