[Devel] [PATCH vz7 08/46] fuse: call fuse_abort_conn() in dev release
Maxim Patlasov
mpatlasov at virtuozzo.com
Fri Mar 24 19:14:54 PDT 2017
Backport from ml:
commit ccd0a0bd16ff01bb27bacbeb2e0e4983dc299502
Author: Miklos Szeredi <mszeredi at suse.cz>
Date: Wed Jul 1 16:25:57 2015 +0200
fuse: call fuse_abort_conn() in dev release
fuse_abort_conn() does all the work done by fuse_dev_release() and more.
"More" consists of:
end_io_requests(fc);
wake_up_all(&fc->waitq);
kill_fasync(&fc->fasync, SIGIO, POLL_IN);
All of which should be no-op (WARN_ON's added).
Signed-off-by: Miklos Szeredi <mszeredi at suse.cz>
Reviewed-by: Ashish Samant <ashish.samant at oracle.com>
Signed-off-by: Maxim Patlasov <mpatlasov at virtuozzo.com>
---
fs/fuse/dev.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 5e7f812..d50f48f 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -2205,14 +2205,9 @@ int fuse_dev_release(struct inode *inode, struct file *file)
{
struct fuse_conn *fc = fuse_get_conn(file);
if (fc) {
- spin_lock(&fc->lock);
- fc->connected = 0;
- fc->blocked = 0;
- fuse_set_initialized(fc);
- end_queued_requests(fc);
- end_polls(fc);
- wake_up_all(&fc->blocked_waitq);
- spin_unlock(&fc->lock);
+ WARN_ON(!list_empty(&fc->io));
+ WARN_ON(fc->fasync != NULL);
+ fuse_abort_conn(fc);
fuse_conn_put(fc);
}
More information about the Devel
mailing list