* [Devel] [PATCH hci-8.0] fs/fuse: wake close_wait waiters when fuse_writepage_locked() bails out
@ 2026-09-24 4:05 Liu Kui
2026-09-24 11:21 ` Konstantin Khorenko
2026-09-24 11:33 ` Konstantin Khorenko
0 siblings, 2 replies; 3+ messages in thread
From: Liu Kui @ 2026-09-24 4:05 UTC (permalink / raw)
To: Konstantin Khorenko; +Cc: azaitsev, devel, Liu Kui
The error path of fuse_writepage_locked() drops the fuse file
reference with a bare fuse_file_put(), which does not wake up the
releaser waiting on fi->page_waitq for ff->count to drain on
close_wait, so fuse_release() can hang. Use fuse_release_ff() instead.
https://virtuozzo.atlassian.net/browse/VSTOR-145614
Signed-off-by: Liu Kui <kui.liu@virtuozzo.com>
---
Follow-up to the series "fs/fuse: unify dropping the fuse file
reference of a writeback request": the error path of
fuse_writepage_locked() has the same problem class and was missed
there. The fix is independent and applies directly to hci-8.0, with
or without that series.
https://virtuozzo.atlassian.net/browse/VSTOR-145614
---
fs/fuse/file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 0a7c6d03b13d..e0efb524cda7 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -2572,7 +2572,7 @@ static int fuse_writepage_locked(struct folio *folio)
return 0;
err_writepage_args:
- fuse_file_put(ff, false);
+ fuse_release_ff(inode, ff);
err_nofile:
folio_put(tmp_folio);
err:
---
base-commit: ee4c1d8857379d0045211315e81dd5aea3a3e55b
change-id: 20260924-vstor-145614-wpl-fix-51e2654921f2
Best regards,
--
Liu Kui <kui.liu@virtuozzo.com>
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Devel] [PATCH hci-8.0] fs/fuse: wake close_wait waiters when fuse_writepage_locked() bails out
2026-09-24 4:05 [Devel] [PATCH hci-8.0] fs/fuse: wake close_wait waiters when fuse_writepage_locked() bails out Liu Kui
@ 2026-09-24 11:21 ` Konstantin Khorenko
2026-09-24 11:33 ` Konstantin Khorenko
1 sibling, 0 replies; 3+ messages in thread
From: Konstantin Khorenko @ 2026-09-24 11:21 UTC (permalink / raw)
To: Liu Kui; +Cc: devel, azaitsev
On Thu, 24 Sep 2026 12:05:41 +0800, Liu Kui wrote:
> fs/fuse: wake close_wait waiters when fuse_writepage_locked() bails out
Applied to branch-rh10-6.12.0-211.52.1.20.x.vz10-ovz, will be released in rh10-6.12.0-211.52.1.20.13.vz10, thanks!
[1/1] fs/fuse: wake close_wait waiters when fuse_writepage_locked() bails out
https://bitbucket.org/virtuozzocore/vzkernel.vzs/commits/7f3f8db96af9
--
Konstantin Khorenko <khorenko@virtuozzo.com>
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Devel] [PATCH hci-8.0] fs/fuse: wake close_wait waiters when fuse_writepage_locked() bails out
2026-09-24 4:05 [Devel] [PATCH hci-8.0] fs/fuse: wake close_wait waiters when fuse_writepage_locked() bails out Liu Kui
2026-09-24 11:21 ` Konstantin Khorenko
@ 2026-09-24 11:33 ` Konstantin Khorenko
1 sibling, 0 replies; 3+ messages in thread
From: Konstantin Khorenko @ 2026-09-24 11:33 UTC (permalink / raw)
To: Liu Kui; +Cc: azaitsev, devel
Committed to branch-rh10-6.12.0-211.52.1.22.x.vz10-ovz, will be released in rh10-6.12.0-211.52.1.22.3.vz10
3b2cc738990e
fs/fuse: wake close_wait waiters when fuse_writepage_locked() bails out
The error path of fuse_writepage_locked() drops the fuse file
reference with a bare fuse_file_put(), which does not wake up the
releaser waiting on fi->page_waitq for ff->count to drain on
close_wait, so fuse_release() can hang. Use fuse_release_ff() instead.
The bare put came with mainline commit 0acad9289be3 ("fuse: refactor
out shared logic in fuse_writepages_fill() and fuse_writepage_locked()"),
which added a failure point after the fuse file is taken; before it
nothing could fail there. It is the last one left on the writeback path
after commit 6a30a2b00fee ("fs/fuse: unify dropping the fuse file
reference of a writeback request"), which covers the wpa death paths
only.
Fixes: 0acad9289be3 ("fuse: refactor out shared logic in fuse_writepages_fill() and fuse_writepage_locked()")
https://virtuozzo.atlassian.net/browse/VSTOR-145614
Feature: vStorage
Signed-off-by: Liu Kui <kui.liu@virtuozzo.com>
Link: http://lore.virtuozzo.com/20260924-vstor-145614-wpl-fix-v1-1-aba86330d06c@virtuozzo.com
--
Best regards,
Konstantin Khorenko,
Virtuozzo Linux Kernel Team
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-24 11:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-24 4:05 [Devel] [PATCH hci-8.0] fs/fuse: wake close_wait waiters when fuse_writepage_locked() bails out Liu Kui
2026-09-24 11:21 ` Konstantin Khorenko
2026-09-24 11:33 ` Konstantin Khorenko
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.