Theodore Ts'o
e447183180
jbd2: call __jbd2_log_start_commit with j_state_lock write locked
...
On an SMP ARM system running ext4, I've received a report that the
first J_ASSERT in jbd2_journal_commit_transaction has been triggering:
J_ASSERT(journal->j_running_transaction != NULL);
While investigating possible causes for this problem, I noticed that
__jbd2_log_start_commit() is getting called with j_state_lock only
read-locked, in spite of the fact that it's possible for it might
j_commit_request. Fix this by grabbing the necessary information so
we can test to see if we need to start a new transaction before
dropping the read lock, and then calling jbd2_log_start_commit() which
will grab the write lock.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu >
2011-02-12 08:18:24 -05:00
..
2011-01-12 20:03:43 -05:00
2011-01-12 20:02:45 -05:00
2011-01-12 20:03:42 -05:00
2011-01-15 20:07:48 -05:00
2011-01-18 01:21:29 -05:00
2011-01-13 08:03:15 -08:00
2011-01-07 17:50:26 +11:00
2011-01-17 14:43:43 -08:00
2011-01-13 10:25:24 -08:00
2011-01-21 02:23:27 +00:00
2011-01-13 10:27:28 -08:00
2011-01-16 21:22:29 +00:00
2011-01-13 08:03:23 -08:00
2011-01-16 21:22:37 +00:00
2011-01-17 13:01:25 -06:00
2011-01-07 17:50:26 +11:00
2011-01-07 17:50:26 +11:00
2011-01-07 17:50:31 +11:00
2011-01-11 14:37:31 -08:00
2011-01-21 07:33:37 -08:00
2011-02-12 08:17:34 -05:00
2011-01-12 20:02:43 -05:00
2011-01-07 17:50:26 +11:00
2011-01-14 09:23:36 -08:00
2011-01-12 20:02:44 -05:00
2011-01-18 14:49:08 +00:00
2011-01-12 20:02:45 -05:00
2011-01-12 20:02:45 -05:00
2011-01-12 20:03:42 -05:00
2011-01-17 05:11:37 -05:00
2011-01-07 17:50:26 +11:00
2011-01-07 17:50:26 +11:00
2011-01-12 20:02:43 -05:00
2010-12-10 16:04:28 +01:00
2011-02-12 08:18:24 -05:00
2011-01-17 11:15:30 -08:00
2011-01-13 10:45:01 -08:00
2011-01-04 13:10:37 -05:00
2011-01-13 10:45:01 -08:00
2011-01-12 20:02:44 -05:00
2011-01-12 20:03:43 -05:00
2011-01-15 20:07:48 -05:00
2011-01-16 11:31:50 -08:00
2011-01-13 10:45:01 -08:00
2011-01-13 10:05:56 -08:00
2011-01-12 08:35:53 -08:00
2011-01-21 07:33:37 -08:00
2011-01-07 17:50:26 +11:00
2011-01-13 14:47:54 +01:00
2011-01-20 17:02:05 -08:00
2011-01-07 17:50:26 +11:00
2011-01-12 19:14:55 +01:00
2011-01-21 07:33:37 -08:00
2011-01-07 17:50:26 +11:00
2011-01-13 21:38:46 +00:00
2011-01-20 17:02:05 -08:00
2011-01-12 20:02:44 -05:00
2011-01-07 17:50:26 +11:00
2011-01-11 14:45:52 -08:00
2011-01-07 17:50:26 +11:00
2011-01-17 12:39:07 -08:00
2011-01-17 05:12:44 -05:00
2011-01-16 13:47:07 -05:00
2011-01-07 17:50:29 +11:00
2011-01-13 08:03:12 -08:00
2011-01-03 15:01:48 +01:00
2011-01-14 18:44:22 +01:00
2010-12-17 15:18:05 +01:00
2011-01-13 10:45:01 -08:00
2011-01-07 14:39:20 -08:00
2011-01-17 04:54:38 -05:00
2011-01-16 11:31:50 -08:00
2011-01-20 17:02:05 -08:00
2011-01-13 08:03:12 -08:00
2010-12-15 12:30:36 -08:00
2011-01-17 03:26:27 -05:00
2011-01-07 17:50:27 +11:00
2011-01-16 13:47:07 -05:00
2011-01-13 17:32:48 -08:00
2011-01-07 17:50:29 +11:00
2011-01-07 17:50:26 +11:00
2011-01-17 01:47:59 -05:00
2011-01-17 08:21:42 -05:00
2010-11-15 10:23:31 +01:00
2011-01-20 17:02:05 -08:00
2011-01-12 20:03:43 -05:00
2011-01-14 13:17:26 -08:00
2011-01-10 19:04:08 +01:00
2011-01-13 17:32:32 -08:00
2011-01-18 01:21:26 -05:00
2011-01-17 01:47:59 -05:00
2011-01-17 02:25:31 -05:00
2011-01-20 16:21:59 -08:00
2011-01-07 17:50:33 +11:00
2011-01-12 20:06:58 -05:00
2011-01-13 08:03:12 -08:00
2011-01-13 10:45:01 -08:00
2011-01-15 20:07:33 -05:00
2011-01-16 13:47:07 -05:00