Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5114a97a authored by Michal Hocko's avatar Michal Hocko Committed by Linus Torvalds
Browse files

fs: use mapping_set_error instead of opencoded set_bit

The mapping_set_error() helper sets the correct AS_ flag for the mapping
so there is no reason to open code it.  Use the helper directly.

[akpm@linux-foundation.org: be honest about conversion from -ENXIO to -EIO]
Link: http://lkml.kernel.org/r/20160912111608.2588-2-mhocko@kernel.org


Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 97139d4a
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -241,10 +241,7 @@ static void vvp_vmpage_error(struct inode *inode, struct page *vmpage, int ioret
		obj->vob_discard_page_warned = 0;
	} else {
		SetPageError(vmpage);
		if (ioret == -ENOSPC)
			set_bit(AS_ENOSPC, &inode->i_mapping->flags);
		else
			set_bit(AS_EIO, &inode->i_mapping->flags);
		mapping_set_error(inode->i_mapping, ioret);

		if ((ioret == -ESHUTDOWN || ioret == -EINTR) &&
		    obj->vob_discard_page_warned == 0) {
+2 −3
Original line number Diff line number Diff line
@@ -398,8 +398,7 @@ static int afs_write_back_from_locked_page(struct afs_writeback *wb,
		switch (ret) {
		case -EDQUOT:
		case -ENOSPC:
			set_bit(AS_ENOSPC,
				&wb->vnode->vfs_inode.i_mapping->flags);
			mapping_set_error(wb->vnode->vfs_inode.i_mapping, -ENOSPC);
			break;
		case -EROFS:
		case -EIO:
@@ -409,7 +408,7 @@ static int afs_write_back_from_locked_page(struct afs_writeback *wb,
		case -ENOMEDIUM:
		case -ENXIO:
			afs_kill_pages(wb->vnode, true, first, last);
			set_bit(AS_EIO, &wb->vnode->vfs_inode.i_mapping->flags);
			mapping_set_error(wb->vnode->vfs_inode.i_mapping, -EIO);
			break;
		case -EACCES:
		case -EPERM:
+2 −2
Original line number Diff line number Diff line
@@ -351,7 +351,7 @@ void end_buffer_async_write(struct buffer_head *bh, int uptodate)
		set_buffer_uptodate(bh);
	} else {
		buffer_io_error(bh, ", lost async page write");
		set_bit(AS_EIO, &page->mapping->flags);
		mapping_set_error(page->mapping, -EIO);
		set_buffer_write_io_error(bh);
		clear_buffer_uptodate(bh);
		SetPageError(page);
@@ -3249,7 +3249,7 @@ drop_buffers(struct page *page, struct buffer_head **buffers_to_free)
	bh = head;
	do {
		if (buffer_write_io_error(bh) && page->mapping)
			set_bit(AS_EIO, &page->mapping->flags);
			mapping_set_error(page->mapping, -EIO);
		if (buffer_busy(bh))
			goto failed;
		bh = bh->b_this_page;
+1 −1
Original line number Diff line number Diff line
@@ -778,7 +778,7 @@ static int writepage_strip(struct page *page,
fail:
	EXOFS_DBGMSG("Error: writepage_strip(0x%lx, 0x%lx)=>%d\n",
		     inode->i_ino, page->index, ret);
	set_bit(AS_EIO, &page->mapping->flags);
	mapping_set_error(page->mapping, -EIO);
	unlock_page(page);
	return ret;
}
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ static void ext4_finish_bio(struct bio *bio)

		if (bio->bi_error) {
			SetPageError(page);
			set_bit(AS_EIO, &page->mapping->flags);
			mapping_set_error(page->mapping, -EIO);
		}
		bh = head = page_buffers(page);
		/*
Loading