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

Commit 819c4b3b authored by Miklos Szeredi's avatar Miklos Szeredi Committed by Linus Torvalds
Browse files

fuse: cleanup in release



Move dput/mntput pair from request_end() to fuse_release_end(), because
there's no other place they are used.

Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ebc14c4d
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -231,8 +231,6 @@ static void request_end(struct fuse_conn *fc, struct fuse_req *req)
		fc->num_background--;
	}
	spin_unlock(&fc->lock);
	dput(req->dentry);
	mntput(req->vfsmount);
	wake_up(&req->waitq);
	if (end)
		end(fc, req);
+8 −0
Original line number Diff line number Diff line
@@ -71,11 +71,19 @@ static struct fuse_file *fuse_file_get(struct fuse_file *ff)
	return ff;
}

static void fuse_release_end(struct fuse_conn *fc, struct fuse_req *req)
{
	dput(req->dentry);
	mntput(req->vfsmount);
	fuse_put_request(fc, req);
}

static void fuse_file_put(struct fuse_file *ff)
{
	if (atomic_dec_and_test(&ff->count)) {
		struct fuse_req *req = ff->reserved_req;
		struct fuse_conn *fc = get_fuse_conn(req->dentry->d_inode);
		req->end = fuse_release_end;
		request_send_background(fc, req);
		kfree(ff);
	}