fuse: Wake up req->waitq of only if not background

Currently, we wait on req->waitq in request_wait_answer() function only,
and it's never used for background requests.  Since wake_up() is not a
light-weight macros, instead of this, it unfolds in really called function,
which makes locking operations taking some cpu cycles, let's avoid its call
for the case we definitely know it's completely useless.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
Kirill Tkhai 2018-11-08 12:05:31 +03:00 коммит произвёл Miklos Szeredi
Родитель 217316a601
Коммит 5e0fed717a
1 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -468,8 +468,11 @@ static void request_end(struct fuse_conn *fc, struct fuse_req *req)
fc->active_background--;
flush_bg_queue(fc);
spin_unlock(&fc->bg_lock);
} else {
/* Wake up waiter sleeping in request_wait_answer() */
wake_up(&req->waitq);
}
wake_up(&req->waitq);
if (req->end)
req->end(fc, req);
put_request: