In demand-read mode, fs using fscache for demand-read doesn't know and
care the exact file size of the data blob file, and thus skip the file
size check in this case.

Signed-off-by: Jeffle Xu <jeffl...@linux.alibaba.com>
---
 fs/cachefiles/io.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/cachefiles/io.c b/fs/cachefiles/io.c
index 60b1eac2ce78..95e9107dc3bb 100644
--- a/fs/cachefiles/io.c
+++ b/fs/cachefiles/io.c
@@ -341,7 +341,8 @@ static enum netfs_read_source 
cachefiles_prepare_read(struct netfs_read_subreque
 
        _enter("%zx @%llx/%llx", subreq->len, subreq->start, i_size);
 
-       if (subreq->start >= i_size) {
+       if (subreq->rreq->type == NETFS_TYPE_CACHE &&
+           subreq->start >= i_size) {
                ret = NETFS_FILL_WITH_ZEROES;
                why = cachefiles_trace_read_after_eof;
                goto out_no_object;
-- 
2.27.0

--
Linux-cachefs mailing list
Linux-cachefs@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-cachefs

Reply via email to