diff options
author | Michal Hocko <mhocko@suse.com> | 2016-10-11 16:56:01 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-11 18:06:33 -0400 |
commit | 5114a97a8bce7f4ead29a32b67dee85438699b9e (patch) | |
tree | 1033f6f06e9d19d79271a82f09b9d43114953a42 | |
parent | 97139d4a6f26445de47b378cddd5192c0278f863 (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.c | 5 | ||||
-rw-r--r-- | fs/afs/write.c | 5 | ||||
-rw-r--r-- | fs/buffer.c | 4 | ||||
-rw-r--r-- | fs/exofs/inode.c | 2 | ||||
-rw-r--r-- | fs/ext4/page-io.c | 2 | ||||
-rw-r--r-- | fs/f2fs/data.c | 2 | ||||
-rw-r--r-- | fs/jbd2/commit.c | 3 |
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: | |||
778 | fail: | 778 | fail: |
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; |