在 2024/4/20 10:50, Matthew Wilcox (Oracle) 写道:
Nobody checks the error flag on jffs2 folios, so stop setting and
clearing it. We can also remove the call to clear the uptodate
flag; it will already be clear.
Convert one of these into a call to mapping_set_error() which will
actually be checked by other parts of the kernel.
Cc: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Cc: Richard Weinberger <richard@xxxxxx>
Cc: linux-mtd@xxxxxxxxxxxxxxxxxxx
Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>
---
fs/jffs2/file.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
xfstests passed. Looks like the change is harmless.
Tested-by: Reviewed-by: Zhihao Cheng <chengzhihao1@xxxxxxxxxx>
diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c
index 62ea76da7fdf..e12cb145147e 100644
--- a/fs/jffs2/file.c
+++ b/fs/jffs2/file.c
@@ -95,13 +95,8 @@ static int jffs2_do_readpage_nolock (struct inode *inode, struct page *pg)
ret = jffs2_read_inode_range(c, f, pg_buf, pg->index << PAGE_SHIFT,
PAGE_SIZE);
- if (ret) {
- ClearPageUptodate(pg);
- SetPageError(pg);
- } else {
+ if (!ret)
SetPageUptodate(pg);
- ClearPageError(pg);
- }
flush_dcache_page(pg);
kunmap(pg);
@@ -304,10 +299,8 @@ static int jffs2_write_end(struct file *filp, struct address_space *mapping,
kunmap(pg);
- if (ret) {
- /* There was an error writing. */
- SetPageError(pg);
- }
+ if (ret)
+ mapping_set_error(mapping, ret);
/* Adjust writtenlen for the padding we did, so we don't confuse our caller */
writtenlen -= min(writtenlen, (start - aligned_start));
@@ -330,7 +323,6 @@ static int jffs2_write_end(struct file *filp, struct address_space *mapping,
it gets reread */
jffs2_dbg(1, "%s(): Not all bytes written. Marking page !uptodate\n",
__func__);
- SetPageError(pg);
ClearPageUptodate(pg);
}