X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fsplice.c;h=e7d7080de2f9799860a475a4df50a7742561d09f;hb=ecd27b92fbb41f779d857632a69bd45dbaf0f915;hp=186fad463c4379280dcfbbd2c5422f5188f46c69;hpb=00de00bdad278783b3664ad2969954a707f5944a;p=linux-2.6 diff --git a/fs/splice.c b/fs/splice.c index 186fad463c..e7d7080de2 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)