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

Commit 42dc6211 authored by Miklos Szeredi's avatar Miklos Szeredi
Browse files

fuse: fix background request if not connected



request_end() expects fc->num_background and fc->active_background to have
been incremented, which is not the case in fuse_request_send_nowait()
failure path.  So instead just call the ->end() callback (which is actually
set by all callers).

Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
Reviewed-by: default avatarAshish Samant <ashish.samant@oracle.com>
parent 0ad0b325
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -604,13 +604,16 @@ static void fuse_request_send_nowait_locked(struct fuse_conn *fc,

static void fuse_request_send_nowait(struct fuse_conn *fc, struct fuse_req *req)
{
	BUG_ON(!req->end);
	spin_lock(&fc->lock);
	if (fc->connected) {
		fuse_request_send_nowait_locked(fc, req);
		spin_unlock(&fc->lock);
	} else {
		spin_unlock(&fc->lock);
		req->out.h.error = -ENOTCONN;
		request_end(fc, req);
		req->end(fc, req);
		fuse_put_request(fc, req);
	}
}