mirror of https://gitee.com/openkylin/linux.git
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: Miklos Szeredi <mszeredi@suse.cz> Reviewed-by: Ashish Samant <ashish.samant@oracle.com>
This commit is contained in:
parent
0ad0b3255a
commit
42dc6211c5
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue