aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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,
245 pipe->waiting_writers--; 245 pipe->waiting_writers--;
246 } 246 }
247 247
248 if (pipe->inode) 248 if (pipe->inode) {
249 mutex_unlock(&pipe->inode->i_mutex); 249 mutex_unlock(&pipe->inode->i_mutex);
250 250
251 if (do_wakeup) { 251 if (do_wakeup) {
252 smp_mb(); 252 smp_mb();
253 if (waitqueue_active(&pipe->wait)) 253 if (waitqueue_active(&pipe->wait))
254 wake_up_interruptible(&pipe->wait); 254 wake_up_interruptible(&pipe->wait);
255 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); 255 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
256 }
256 } 257 }
257 258
258 while (page_nr < spd_pages) 259 while (page_nr < spd_pages)