aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Hocko <mhocko@suse.com>2016-10-11 16:56:01 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-11 18:06:33 -0400
commit5114a97a8bce7f4ead29a32b67dee85438699b9e (patch)
tree1033f6f06e9d19d79271a82f09b9d43114953a42
parent97139d4a6f26445de47b378cddd5192c0278f863 (diff)
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>
-rw-r--r--drivers/staging/lustre/lustre/llite/vvp_page.c5
-rw-r--r--fs/afs/write.c5
-rw-r--r--fs/buffer.c4
-rw-r--r--fs/exofs/inode.c2
-rw-r--r--fs/ext4/page-io.c2
-rw-r--r--fs/f2fs/data.c2
-rw-r--r--fs/jbd2/commit.c3
7 files changed, 9 insertions, 14 deletions
diff --git a/drivers/staging/lustre/lustre/llite/vvp_page.c b/drivers/staging/lustre/lustre/llite/vvp_page.c
index 5d79efc1aafe..046e84d7a158 100644
--- a/drivers/staging/lustre/lustre/llite/vvp_page.c
+++ b/drivers/staging/lustre/lustre/llite/vvp_page.c
@@ -241,10 +241,7 @@ static void vvp_vmpage_error(struct inode *inode, struct page *vmpage, int ioret
241 obj->vob_discard_page_warned = 0; 241 obj->vob_discard_page_warned = 0;
242 } else { 242 } else {
243 SetPageError(vmpage); 243 SetPageError(vmpage);
244 if (ioret == -ENOSPC) 244 mapping_set_error(inode->i_mapping, ioret);
245 set_bit(AS_ENOSPC, &inode->i_mapping->flags);
246 else
247 set_bit(AS_EIO, &inode->i_mapping->flags);
248 245
249 if ((ioret == -ESHUTDOWN || ioret == -EINTR) && 246 if ((ioret == -ESHUTDOWN || ioret == -EINTR) &&
250 obj->vob_discard_page_warned == 0) { 247 obj->vob_discard_page_warned == 0) {
diff --git a/fs/afs/write.c b/fs/afs/write.c
index 14d506efd1aa..f865c3f05bea 100644
--- a/fs/afs/write.c
+++ b/fs/afs/write.c
@@ -398,8 +398,7 @@ no_more:
398 switch (ret) { 398 switch (ret) {
399 case -EDQUOT: 399 case -EDQUOT:
400 case -ENOSPC: 400 case -ENOSPC:
401 set_bit(AS_ENOSPC, 401 mapping_set_error(wb->vnode->vfs_inode.i_mapping, -ENOSPC);
402 &wb->vnode->vfs_inode.i_mapping->flags);
403 break; 402 break;
404 case -EROFS: 403 case -EROFS:
405 case -EIO: 404 case -EIO:
@@ -409,7 +408,7 @@ no_more:
409 case -ENOMEDIUM: 408 case -ENOMEDIUM:
410 case -ENXIO: 409 case -ENXIO:
411 afs_kill_pages(wb->vnode, true, first, last); 410 afs_kill_pages(wb->vnode, true, first, last);
412 set_bit(AS_EIO, &wb->vnode->vfs_inode.i_mapping->flags); 411 mapping_set_error(wb->vnode->vfs_inode.i_mapping, -EIO);
413 break; 412 break;
414 case -EACCES: 413 case -EACCES:
415 case -EPERM: 414 case -EPERM:
diff --git a/fs/buffer.c b/fs/buffer.c
index 7dad8713fac8..b205a629001d 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -351,7 +351,7 @@ void end_buffer_async_write(struct buffer_head *bh, int uptodate)
351 set_buffer_uptodate(bh); 351 set_buffer_uptodate(bh);
352 } else { 352 } else {
353 buffer_io_error(bh, ", lost async page write"); 353 buffer_io_error(bh, ", lost async page write");
354 set_bit(AS_EIO, &page->mapping->flags); 354 mapping_set_error(page->mapping, -EIO);
355 set_buffer_write_io_error(bh); 355 set_buffer_write_io_error(bh);
356 clear_buffer_uptodate(bh); 356 clear_buffer_uptodate(bh);
357 SetPageError(page); 357 SetPageError(page);
@@ -3249,7 +3249,7 @@ drop_buffers(struct page *page, struct buffer_head **buffers_to_free)
3249 bh = head; 3249 bh = head;
3250 do { 3250 do {
3251 if (buffer_write_io_error(bh) && page->mapping) 3251 if (buffer_write_io_error(bh) && page->mapping)
3252 set_bit(AS_EIO, &page->mapping->flags); 3252 mapping_set_error(page->mapping, -EIO);
3253 if (buffer_busy(bh)) 3253 if (buffer_busy(bh))
3254 goto failed; 3254 goto failed;
3255 bh = bh->b_this_page; 3255 bh = bh->b_this_page;
diff --git a/fs/exofs/inode.c b/fs/exofs/inode.c
index d42ff527ab21..d8072bc074a4 100644
--- a/fs/exofs/inode.c
+++ b/fs/exofs/inode.c
@@ -778,7 +778,7 @@ try_again:
778fail: 778fail:
779 EXOFS_DBGMSG("Error: writepage_strip(0x%lx, 0x%lx)=>%d\n", 779 EXOFS_DBGMSG("Error: writepage_strip(0x%lx, 0x%lx)=>%d\n",
780 inode->i_ino, page->index, ret); 780 inode->i_ino, page->index, ret);
781 set_bit(AS_EIO, &page->mapping->flags); 781 mapping_set_error(page->mapping, -EIO);
782 unlock_page(page); 782 unlock_page(page);
783 return ret; 783 return ret;
784} 784}
diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
index b4cbee936cf8..0094923e5ebf 100644
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -88,7 +88,7 @@ static void ext4_finish_bio(struct bio *bio)
88 88
89 if (bio->bi_error) { 89 if (bio->bi_error) {
90 SetPageError(page); 90 SetPageError(page);
91 set_bit(AS_EIO, &page->mapping->flags); 91 mapping_set_error(page->mapping, -EIO);
92 } 92 }
93 bh = head = page_buffers(page); 93 bh = head = page_buffers(page);
94 /* 94 /*
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 0d0177c9149c..9ae194fd2fdb 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -75,7 +75,7 @@ static void f2fs_write_end_io(struct bio *bio)
75 fscrypt_pullback_bio_page(&page, true); 75 fscrypt_pullback_bio_page(&page, true);
76 76
77 if (unlikely(bio->bi_error)) { 77 if (unlikely(bio->bi_error)) {
78 set_bit(AS_EIO, &page->mapping->flags); 78 mapping_set_error(page->mapping, -EIO);
79 f2fs_stop_checkpoint(sbi, true); 79 f2fs_stop_checkpoint(sbi, true);
80 } 80 }
81 end_page_writeback(page); 81 end_page_writeback(page);
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index 5bb565f9989c..31f8ca046639 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -269,8 +269,7 @@ static int journal_finish_inode_data_buffers(journal_t *journal,
269 * filemap_fdatawait_range(), set it again so 269 * filemap_fdatawait_range(), set it again so
270 * that user process can get -EIO from fsync(). 270 * that user process can get -EIO from fsync().
271 */ 271 */
272 set_bit(AS_EIO, 272 mapping_set_error(jinode->i_vfs_inode->i_mapping, -EIO);
273 &jinode->i_vfs_inode->i_mapping->flags);
274 273
275 if (!ret) 274 if (!ret)
276 ret = err; 275 ret = err;