]> Pileus Git - ~andy/linux/blobdiff - fs/ext4/ext4_jbd2.c
Merge branch 'topic/isa' into topic/misc
[~andy/linux] / fs / ext4 / ext4_jbd2.c
index 9de37b9e177a26417c9068337ac0a38404c6cd41..6e272ef6ba96c4938cc357ef498c760bde67d39e 100644 (file)
@@ -94,8 +94,8 @@ int __ext4_forget(const char *where, unsigned int line, handle_t *handle,
        if (err) {
                ext4_journal_abort_handle(where, line, __func__,
                                          bh, handle, err);
-               __ext4_abort(inode->i_sb, where,
-                            "error %d when attempting revoke", err);
+               __ext4_abort(inode->i_sb, where, line,
+                          "error %d when attempting revoke", err);
        }
        BUFFER_TRACE(bh, "exit");
        return err;
@@ -134,11 +134,14 @@ int __ext4_handle_dirty_metadata(const char *where, unsigned int line,
                if (inode && inode_needs_sync(inode)) {
                        sync_dirty_buffer(bh);
                        if (buffer_req(bh) && !buffer_uptodate(bh)) {
-                               ext4_error(inode->i_sb,
-                                          "IO error syncing inode, "
-                                          "inode=%lu, block=%llu",
-                                          inode->i_ino,
-                                          (unsigned long long) bh->b_blocknr);
+                               struct ext4_super_block *es;
+
+                               es = EXT4_SB(inode->i_sb)->s_es;
+                               es->s_last_error_block =
+                                       cpu_to_le64(bh->b_blocknr);
+                               ext4_error_inode(inode, where, line,
+                                                bh->b_blocknr,
+                                       "IO error syncing itable block");
                                err = -EIO;
                        }
                }