[Devel] [PATCH RHEL9 COMMIT] fs/fuse/kio: some pages were not	unlocked while revoke
    Konstantin Khorenko 
    khorenko at virtuozzo.com
       
    Fri Mar 28 23:50:59 MSK 2025
    
    
  
The commit is pushed to "branch-rh9-5.14.0-427.44.1.vz9.80.x-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh9-5.14.0-427.44.1.vz9.80.23
------>
commit 06d704548a63f5afc73fe4915f90674f98c77656
Author: Alexey Kuznetsov <kuznet at virtuozzo.com>
Date:   Fri Mar 28 20:00:47 2025 +0800
    fs/fuse/kio: some pages were not unlocked while revoke
    
    Request migrates from fiq to fpq for awhile it is out of revocation lists.
    So, we must recheck revoke status.
    
    The bug is old.
    
    Affects: #VSTOR-100953
    https://virtuozzo.atlassian.net/browse/VSTOR-100953
    
    Signed-off-by: Alexey Kuznetsov <kuznet at virtuozzo.com>
    
    Feature: vStorage
---
 fs/fuse/dev.c | 9 +++++++++
 1 file changed, 9 insertions(+)
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 118613f17b10..b437b8de19bb 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -1421,6 +1421,15 @@ static ssize_t fuse_dev_do_read(struct fuse_dev *fud, struct file *file,
 		goto out_end;
 
 	}
+	if (args->page_cache && args->inode) {
+		struct fuse_inode *fi = get_fuse_inode(args->inode);
+
+		if (test_bit(FUSE_I_INVAL_FILES, &fi->state) || args->killed) {
+			req->out.h.error = -EIO;
+			err = -EAGAIN;
+			goto out_end;
+		}
+	}
 	list_add(&req->list, &fpq->io);
 	spin_unlock(&fpq->lock);
 	cs->req = req;
    
    
More information about the Devel
mailing list