mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 12:44:11 +08:00
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: Michal Hocko <mhocko@suse.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
97139d4a6f
commit
5114a97a8b
@ -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) {
|
||||
|
@ -398,8 +398,7 @@ no_more:
|
||||
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 @@ no_more:
|
||||
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:
|
||||
|
@ -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;
|
||||
|
@ -778,7 +778,7 @@ try_again:
|
||||
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;
|
||||
}
|
||||
|
@ -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);
|
||||
/*
|
||||
|
@ -75,7 +75,7 @@ static void f2fs_write_end_io(struct bio *bio)
|
||||
fscrypt_pullback_bio_page(&page, true);
|
||||
|
||||
if (unlikely(bio->bi_error)) {
|
||||
set_bit(AS_EIO, &page->mapping->flags);
|
||||
mapping_set_error(page->mapping, -EIO);
|
||||
f2fs_stop_checkpoint(sbi, true);
|
||||
}
|
||||
end_page_writeback(page);
|
||||
|
@ -269,8 +269,7 @@ static int journal_finish_inode_data_buffers(journal_t *journal,
|
||||
* filemap_fdatawait_range(), set it again so
|
||||
* that user process can get -EIO from fsync().
|
||||
*/
|
||||
set_bit(AS_EIO,
|
||||
&jinode->i_vfs_inode->i_mapping->flags);
|
||||
mapping_set_error(jinode->i_vfs_inode->i_mapping, -EIO);
|
||||
|
||||
if (!ret)
|
||||
ret = err;
|
||||
|
Loading…
Reference in New Issue
Block a user