[Devel] [PATCH RHEL9 COMMIT] fs/fuse: kio: one more overflow

Konstantin Khorenko khorenko at virtuozzo.com
Fri Oct 25 19:32:47 MSK 2024


The commit is pushed to "branch-rh9-5.14.0-427.37.1.vz9.78.x-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh9-5.14.0-427.37.1.vz9.78.1
------>
commit f5c8ab1a9c6222df1bfae5dd5946bc046940fc73
Author: Alexey Kuznetsov <kuznet at virtuozzo.com>
Date:   Fri Oct 25 22:24:11 2024 +0800

    fs/fuse: kio: one more overflow
    
    Ancient bug, which was not caught only because nobody tried
    to do a thing like:
    
      fallocate -p -l 4g FILE
    
    It is noop! Pretends to succeed but actually does nothing.
    
    https://virtuozzo.atlassian.net/browse/VSTOR-94452
    
    Signed-off-by: Alexey Kuznetsov <kuznet at virtuozzo.com>
    Feature: vStorage
---
 fs/fuse/kio/pcs/pcs_cluster.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/fuse/kio/pcs/pcs_cluster.c b/fs/fuse/kio/pcs/pcs_cluster.c
index 0a1c8dbc5227..b0a5e140faf8 100644
--- a/fs/fuse/kio/pcs/pcs_cluster.c
+++ b/fs/fuse/kio/pcs/pcs_cluster.c
@@ -347,8 +347,8 @@ static noinline void __pcs_cc_process_ireq_rw(struct pcs_int_request *ireq)
 {
 	struct pcs_dentry_info *di = ireq->dentry;
 	u64 pos = ireq->apireq.req->pos;
-	unsigned int sz = ireq->apireq.req->size;
-	unsigned int dio_offset = 0;
+	u64 sz = ireq->apireq.req->size;
+	u64 dio_offset = 0;
 	struct pcs_flow_node *fl;
 
 	if (di->fileinfo.sys.map_type != PCS_MAP_PLAIN) {
@@ -368,7 +368,7 @@ static noinline void __pcs_cc_process_ireq_rw(struct pcs_int_request *ireq)
 
 	while (sz) {
 		struct pcs_int_request *sreq;
-		unsigned int len;
+		u64 len;
 		u64 rpos, chunk, end_pos;
 
 		rpos = map_file_to_chunk(pos, di->fileinfo.sys.chunk_size_lo, di->fileinfo.sys.stripe_depth, di->fileinfo.sys.strip_width);


More information about the Devel mailing list