ext4: save the error code which triggered an ext4_error() in the superblock
[linux-block.git] / fs / ext4 / ialloc.c
index 8ca4a23129aafd389f0a6a126e25d3640b38dd37..0151ba8ea4390c80b91fab390bba10b59d2a740f 100644 (file)
@@ -194,6 +194,7 @@ ext4_read_inode_bitmap(struct super_block *sb, ext4_group_t block_group)
        wait_on_buffer(bh);
        if (!buffer_uptodate(bh)) {
                put_bh(bh);
+               ext4_set_errno(sb, EIO);
                ext4_error(sb, "Cannot read inode bitmap - "
                           "block_group = %u, inode_bitmap = %llu",
                           block_group, bitmap_blk);
@@ -1223,6 +1224,7 @@ struct inode *ext4_orphan_get(struct super_block *sb, unsigned long ino)
        inode = ext4_iget(sb, ino, EXT4_IGET_NORMAL);
        if (IS_ERR(inode)) {
                err = PTR_ERR(inode);
+               ext4_set_errno(sb, -err);
                ext4_error(sb, "couldn't read orphan inode %lu (err %d)",
                           ino, err);
                return inode;