[Devel] [PATCH VZ9 2/7] fs/fuse/kio: some pages were not unlocked while revoke
Alexey Kuznetsov
kuznet at virtuozzo.com
Fri Mar 28 15:00:47 MSK 2025
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
Signed-off-by: Alexey Kuznetsov <kuznet at virtuozzo.com>
---
fs/fuse/dev.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 118613f..b437b8d 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;
--
1.8.3.1
More information about the Devel
mailing list