splice: only check do_wakeup in splice_to_pipe() for a real pipe
We only ever set do_wakeup to non-zero if the pipe has an inode backing, so it's pointless to check outside the pipe->inode check. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
Родитель
00de00bdad
Коммит
02676e5aee
13
fs/splice.c
13
fs/splice.c
|
@ -245,14 +245,15 @@ static ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
|
|||
pipe->waiting_writers--;
|
||||
}
|
||||
|
||||
if (pipe->inode)
|
||||
if (pipe->inode) {
|
||||
mutex_unlock(&pipe->inode->i_mutex);
|
||||
|
||||
if (do_wakeup) {
|
||||
smp_mb();
|
||||
if (waitqueue_active(&pipe->wait))
|
||||
wake_up_interruptible(&pipe->wait);
|
||||
kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
|
||||
if (do_wakeup) {
|
||||
smp_mb();
|
||||
if (waitqueue_active(&pipe->wait))
|
||||
wake_up_interruptible(&pipe->wait);
|
||||
kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
|
||||
}
|
||||
}
|
||||
|
||||
while (page_nr < spd_pages)
|
||||
|
|
Загрузка…
Ссылка в новой задаче