summary refs log tree commit diff
path: root/fs/splice.c
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2007-06-15 13:16:13 +0200
committerJens Axboe <jens.axboe@oracle.com>2007-06-15 13:16:13 +0200
commit02676e5aee271c1f20d7d44249d26741aef1e846 (patch)
tree72394b5bfaba6b9637488a3d5aa82d7668531d95 /fs/splice.c
parent00de00bdad278783b3664ad2969954a707f5944a (diff)
downloadlinux-02676e5aee271c1f20d7d44249d26741aef1e846.tar.gz
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>
Diffstat (limited to 'fs/splice.c')
-rw-r--r--fs/splice.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/splice.c b/fs/splice.c
index 186fad463c43..e7d7080de2f9 100644
--- a/fs/splice.c
+++ b/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)