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@suse.cz> Reviewed-by: Ashish Samant <ashish.samant@oracle.com>
This commit is contained in:
parent
f0139aa819
commit
ccd0a0bd16
|
@ -2199,14 +2199,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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue