Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ccd0a0bd authored by Miklos Szeredi's avatar Miklos Szeredi
Browse files

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: default avatarMiklos Szeredi <mszeredi@suse.cz>
Reviewed-by: default avatarAshish Samant <ashish.samant@oracle.com>
parent f0139aa8
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -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);
	}