linux-stable/fs/jbd2
Theodore Ts'o 41a5b91319 jbd2: invalidate handle if jbd2_journal_restart() fails
If jbd2_journal_restart() fails the handle will have been disconnected
from the current transaction.  In this situation, the handle must not
be used for for any jbd2 function other than jbd2_journal_stop().
Enforce this with by treating a handle which has a NULL transaction
pointer as an aborted handle, and issue a kernel warning if
jbd2_journal_extent(), jbd2_journal_get_write_access(),
jbd2_journal_dirty_metadata(), etc. is called with an invalid handle.

This commit also fixes a bug where jbd2_journal_stop() would trip over
a kernel jbd2 assertion check when trying to free an invalid handle.

Also move the responsibility of setting current->journal_info to
start_this_handle(), simplifying the three users of this function.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reported-by: Younger Liu <younger.liu@huawei.com>
Cc: Jan Kara <jack@suse.cz>
2013-07-01 08:12:41 -04:00
..
checkpoint.c jbd2: drop checkpoint mutex when waiting in __jbd2_log_wait_for_space() 2013-06-12 22:47:35 -04:00
commit.c jbd2: fix duplicate debug label for phase 2 2013-06-12 22:56:35 -04:00
journal.c jbd2: move superblock checksum calculation to jbd2_write_superblock() 2013-07-01 08:12:38 -04:00
Kconfig jbd2: remove debug dependency on debug_fs and update Kconfig help text 2013-06-12 23:07:51 -04:00
Makefile
recovery.c jbd2: fix block tag checksum verification brokenness 2013-05-28 07:31:59 -04:00
revoke.c jbd2: remove journal_head from descriptor buffers 2013-06-04 12:06:01 -04:00
transaction.c jbd2: invalidate handle if jbd2_journal_restart() fails 2013-07-01 08:12:41 -04:00