aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorMatthew Wilcox <willy@linux.intel.com>2014-04-07 10:54:20 -0400
committerBen Hutchings <ben@decadent.org.uk>2014-05-18 14:58:03 +0100
commit81692a1db0ee5276e3dcae9335346ba9712b93ce (patch)
tree8024239abee3c84173e4f95f5176c6ca97cb7402 /fs
parent5e76e584d0b4e24eed04871d807b3081e97bcfb2 (diff)
downloadkernel_samsung_smdk4412-81692a1db0ee5276e3dcae9335346ba9712b93ce.zip
kernel_samsung_smdk4412-81692a1db0ee5276e3dcae9335346ba9712b93ce.tar.gz
kernel_samsung_smdk4412-81692a1db0ee5276e3dcae9335346ba9712b93ce.tar.bz2
ext4: note the error in ext4_end_bio()
commit 9503c67c93ed0b95ba62d12d1fd09da6245dbdd6 upstream. ext4_end_bio() currently throws away the error that it receives. Chances are this is part of a spate of errors, one of which will end up getting the error returned to userspace somehow, but we shouldn't take that risk. Also print out the errno to aid in debug. Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Reviewed-by: Jan Kara <jack@suse.cz> [bwh: Backported to 3.2: adjust context] Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'fs')
-rw-r--r--fs/ext4/page-io.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
index 54f566d..b46a675 100644
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -241,13 +241,14 @@ static void ext4_end_bio(struct bio *bio, int error)
if (error) {
io_end->flag |= EXT4_IO_END_ERROR;
- ext4_warning(inode->i_sb, "I/O error writing to inode %lu "
+ ext4_warning(inode->i_sb, "I/O error %d writing to inode %lu "
"(offset %llu size %ld starting block %llu)",
- inode->i_ino,
+ error, inode->i_ino,
(unsigned long long) io_end->offset,
(long) io_end->size,
(unsigned long long)
bi_sector >> (inode->i_blkbits - 9));
+ mapping_set_error(inode->i_mapping, error);
}
if (!(io_end->flag & EXT4_IO_END_UNWRITTEN)) {