Commit 19b5ef61 authored by Theodore Ts'o's avatar Theodore Ts'o

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: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent 819c4920
...@@ -3788,6 +3788,13 @@ void ext4_truncate(struct inode *inode) ...@@ -3788,6 +3788,13 @@ void ext4_truncate(struct inode *inode)
struct address_space *mapping = inode->i_mapping; struct address_space *mapping = inode->i_mapping;
loff_t page_len; 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); trace_ext4_truncate_enter(inode);
if (!ext4_can_truncate(inode)) if (!ext4_can_truncate(inode))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment