hello, everyone.
I am puzzled when reading the function named  ext3_ioctl().

In the branch named EXT3_IOC_SETFLAGS, inode->mutex was lock firstly, a
handle with 1 journal-blocks was started consequently via
ext3_journal_start().

i investigated the code of ext3_journal_start(), found that if there were no
journal blocks left at it happens the process who call ext3_journal_start
would be hung up unless some journal block were released.

i want to confirm whether such a situation would happen : there are no
journal blocks left when ext3_journal_start() called and other processes
could not release the journal blocks they currently holding for an unkown
reason. so, when a process who called ext3_ioctl with command
"EXT3_IOC_SETFLAGS" will be hung up even though the inode->i_mutex was of
locked. in such a situation, the inode->i_mutex would not be released.
a potential deadlock comes on?

many thanks here. :-)

Reply via email to