[Linux-cachefs] [PATCH v1 1/7] NFS: Fixup patch 3/8 of fscache-iter-3 v2
David Howells
dhowells at redhat.com
Tue Oct 5 12:52:49 UTC 2021
Dave Wysochanski <dwysocha at redhat.com> wrote:
>
> Handle failed return values of fscache_fallback_read_page() in
> switch statement.
After some discussion on IRC, the attached is probably better. Returning 1
might result in 1 being returned through ->readpage(), which could be a
problem.
David
---
diff --git a/fs/nfs/fscache.c b/fs/nfs/fscache.c
index 5b0e78742444..68e266a37675 100644
--- a/fs/nfs/fscache.c
+++ b/fs/nfs/fscache.c
@@ -346,33 +346,18 @@ int __nfs_readpage_from_fscache(struct inode *inode, struct page *page)
ret = fscache_fallback_read_page(nfs_i_fscache(inode), page);
if (ret < 0) {
- dfprintk(FSCACHE, "NFS: readpage_from_fscache: "
- "fscache_fallback_read_page failed ret = %d\n", ret);
- return ret;
- }
-
- switch (ret) {
- case 0: /* Read completed synchronously */
- dfprintk(FSCACHE,
- "NFS: readpage_from_fscache: read successful\n");
- nfs_inc_fscache_stats(inode, NFSIOS_FSCACHE_PAGES_READ_OK);
- SetPageUptodate(page);
- return 0;
-
- case -ENOBUFS: /* inode not in cache */
- case -ENODATA: /* page not in cache */
nfs_inc_fscache_stats(inode, NFSIOS_FSCACHE_PAGES_READ_FAIL);
dfprintk(FSCACHE,
- "NFS: readpage_from_fscache %d\n", ret);
- SetPageChecked(page);
- return 1;
-
- default:
- dfprintk(FSCACHE, "NFS: readpage_from_fscache %d\n", ret);
- nfs_inc_fscache_stats(inode, NFSIOS_FSCACHE_PAGES_READ_FAIL);
+ "NFS: readpage_from_fscache failed %d\n", ret);
SetPageChecked(page);
+ return ret;
}
- return ret;
+
+ /* Read completed synchronously */
+ dfprintk(FSCACHE, "NFS: readpage_from_fscache: read successful\n");
+ nfs_inc_fscache_stats(inode, NFSIOS_FSCACHE_PAGES_READ_OK);
+ SetPageUptodate(page);
+ return 0;
}
/*
More information about the Linux-cachefs
mailing list