[Devel] [PATCH RHEL7 COMMIT] fs/fuse: re-init req->list for interrupted release
Konstantin Khorenko
khorenko at virtuozzo.com
Wed Jun 20 11:47:13 MSK 2018
The commit is pushed to "branch-rh7-3.10.0-693.21.1.vz7.50.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-693.21.1.vz7.50.14
------>
commit e507d6340ff034b030be9bbec0c423caff6b3b18
Author: Pavel Butsykin <pbutsykin at virtuozzo.com>
Date: Wed Jun 20 11:47:13 2018 +0300
fs/fuse: re-init req->list for interrupted release
This is fix-up for commit c726a5807e00309b2fb386be0030fe154f332829.
If we want to reuse request, we need to reinitialize it. For reserved request
this is usually done by calling put_reserved_req(). This patch adds re-init of
req->list before re-sending interrupted release.
https://pmc.acronis.com/browse/VSTOR-11275
Fixes: c726a5807e00 ("fuse: resend interrupted release")
Signed-off-by: Pavel Butsykin <pbutsykin at virtuozzo.com>
Reviewed-by: Kirill Tkhai <ktkhai at virtuozzo.com>
---
fs/fuse/file.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 8b2c36292d75..079f139a727f 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -164,6 +164,7 @@ static void fuse_file_put(struct fuse_file *ff, bool sync)
fuse_request_send(ff->fc, req);
if (req->out.h.error == -EINTR) {
__set_bit(FR_PENDING, &req->flags);
+ INIT_LIST_HEAD(&req->list);
req->out.h.error = 0;
goto async_fallback;
}
More information about the Devel
mailing list