diff options
author | Theodore Ts'o <tytso@mit.edu> | 2014-03-12 16:38:03 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2014-03-12 16:38:03 -0400 |
commit | 66a4cb187b92ca8663203fe8fda621e6585a2a00 (patch) | |
tree | de342428a303fe10842e04b81514be5cf582f7db /fs/ext4/ext4_jbd2.c | |
parent | 0bfea8118d8e4f6aeb476511350d649e8dcb0ce8 (diff) |
jbd2: improve error messages for inconsistent journal heads
Fix up error messages printed when the transaction pointers in a
journal head are inconsistent. This improves the error messages which
are printed when running xfstests generic/068 in data=journal mode.
See the bug report at: https://bugzilla.kernel.org/show_bug.cgi?id=60786
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/ext4_jbd2.c')
-rw-r--r-- | fs/ext4/ext4_jbd2.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c index 3fe29de832c8..c3fb607413ed 100644 --- a/fs/ext4/ext4_jbd2.c +++ b/fs/ext4/ext4_jbd2.c | |||
@@ -259,6 +259,16 @@ int __ext4_handle_dirty_metadata(const char *where, unsigned int line, | |||
259 | if (WARN_ON_ONCE(err)) { | 259 | if (WARN_ON_ONCE(err)) { |
260 | ext4_journal_abort_handle(where, line, __func__, bh, | 260 | ext4_journal_abort_handle(where, line, __func__, bh, |
261 | handle, err); | 261 | handle, err); |
262 | if (inode == NULL) { | ||
263 | pr_err("EXT4: jbd2_journal_dirty_metadata " | ||
264 | "failed: handle type %u started at " | ||
265 | "line %u, credits %u/%u, errcode %d", | ||
266 | handle->h_type, | ||
267 | handle->h_line_no, | ||
268 | handle->h_requested_credits, | ||
269 | handle->h_buffer_credits, err); | ||
270 | return err; | ||
271 | } | ||
262 | ext4_error_inode(inode, where, line, | 272 | ext4_error_inode(inode, where, line, |
263 | bh->b_blocknr, | 273 | bh->b_blocknr, |
264 | "journal_dirty_metadata failed: " | 274 | "journal_dirty_metadata failed: " |