From: Joanne Koong Date: Tue, 20 Jan 2026 22:44:49 +0000 (-0800) Subject: fuse: use offset_in_page() for page offset calculations X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d306cbffc2ee0f3251c81d574aa3451ef21cd5a;p=thirdparty%2Fkernel%2Flinux.git fuse: use offset_in_page() for page offset calculations Replace open-coded (x & ~PAGE_MASK) with offset_in_page(). Reviewed-by: Darrick J. Wong Reviewed-by: Horst Birthelmer Signed-off-by: Joanne Koong Reviewed-by: Jingbo Xu Signed-off-by: Miklos Szeredi --- diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c index c2aae2eef0868..c88194e52d18f 100644 --- a/fs/fuse/readdir.c +++ b/fs/fuse/readdir.c @@ -52,7 +52,7 @@ static void fuse_add_dirent_to_cache(struct file *file, } version = fi->rdc.version; size = fi->rdc.size; - offset = size & ~PAGE_MASK; + offset = offset_in_page(size); index = size >> PAGE_SHIFT; /* Dirent doesn't fit in current page? Jump to next page. */ if (offset + reclen > PAGE_SIZE) { @@ -392,7 +392,7 @@ static enum fuse_parse_result fuse_parse_cache(struct fuse_file *ff, void *addr, unsigned int size, struct dir_context *ctx) { - unsigned int offset = ff->readdir.cache_off & ~PAGE_MASK; + unsigned int offset = offset_in_page(ff->readdir.cache_off); enum fuse_parse_result res = FOUND_NONE; WARN_ON(offset >= size); @@ -518,13 +518,13 @@ retry_locked: index = ff->readdir.cache_off >> PAGE_SHIFT; if (index == (fi->rdc.size >> PAGE_SHIFT)) - size = fi->rdc.size & ~PAGE_MASK; + size = offset_in_page(fi->rdc.size); else size = PAGE_SIZE; spin_unlock(&fi->rdc.lock); /* EOF? */ - if ((ff->readdir.cache_off & ~PAGE_MASK) == size) + if (offset_in_page(ff->readdir.cache_off) == size) return 0; page = find_get_page_flags(file->f_mapping, index,