The patch fixes a silly mistake leading to a deadlock in fuse_invalidate_files: so far as fuse_invalidate_files sets FUSE_S_FAIL_IMMEDIATELY in all files of fi->rw_files list, fuse_blocked_for_wb must check the bit in *this* list (not in fi->write_files as it used to be).
https://jira.sw.ru/browse/PSBM-57460 Signed-off-by: Maxim Patlasov <mpatla...@virtuozzo.com> --- fs/fuse/file.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/fuse/file.c b/fs/fuse/file.c index a557d5a..353092c 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -2155,9 +2155,9 @@ static inline bool fuse_blocked_for_wb(struct inode *inode) return false; spin_lock(&fc->lock); - if (!list_empty(&fi->write_files)) { - struct fuse_file *ff = list_entry(fi->write_files.next, - struct fuse_file, write_entry); + if (!list_empty(&fi->rw_files)) { + struct fuse_file *ff = list_entry(fi->rw_files.next, + struct fuse_file, rw_entry); if (test_bit(FUSE_S_FAIL_IMMEDIATELY, &ff->ff_state)) blocked = false; } _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel