From: Theodore Ts'o Date: Sat, 12 Feb 2011 13:18:24 +0000 (-0500) Subject: jbd2: call __jbd2_log_start_commit with j_state_lock write locked X-Git-Tag: v2.6.38-rc5~24^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e44718318004a5618d1dfe2d080e2862532d8e5f;p=pandora-kernel.git 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" --- Reading git-diff-tree failed