[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