提交 ce128de6 编写于 作者: M Maxim Patlasov 提交者: Miklos Szeredi

fuse: writepages: protect secondary requests from fuse file release

All async fuse requests must be supplied with extra reference to a fuse
file.  This is necessary to ensure that the fuse file is not released until
all in-flight requests are completed.  Fuse secondary writeback requests
must obey this rule as well.
Signed-off-by: NMaxim Patlasov <MPatlasov@parallels.com>
Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
上级 41b6e41f
...@@ -1505,6 +1505,7 @@ static void fuse_writepage_end(struct fuse_conn *fc, struct fuse_req *req) ...@@ -1505,6 +1505,7 @@ static void fuse_writepage_end(struct fuse_conn *fc, struct fuse_req *req)
struct fuse_req *next = req->misc.write.next; struct fuse_req *next = req->misc.write.next;
req->misc.write.next = next->misc.write.next; req->misc.write.next = next->misc.write.next;
next->misc.write.next = NULL; next->misc.write.next = NULL;
next->ff = fuse_file_get(req->ff);
list_add(&next->writepages_entry, &fi->writepages); list_add(&next->writepages_entry, &fi->writepages);
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册