diff --git a/[refs] b/[refs] index 9bfcd8bb598b..482a4f0b3494 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8d0df7a3d1ecbaf5d5602a59055c8ca993855bed +refs/heads/master: e5bc49ba7439b9726006d031d440cba96819f0f8 diff --git a/trunk/fs/pipe.c b/trunk/fs/pipe.c index 3a48ba5179d5..14f502b89cf5 100644 --- a/trunk/fs/pipe.c +++ b/trunk/fs/pipe.c @@ -699,12 +699,12 @@ pipe_rdwr_fasync(int fd, struct file *filp, int on) int retval; mutex_lock(&inode->i_mutex); - retval = fasync_helper(fd, filp, on, &pipe->fasync_readers); - - if (retval >= 0) + if (retval >= 0) { retval = fasync_helper(fd, filp, on, &pipe->fasync_writers); - + if (retval < 0) /* this can happen only if on == T */ + fasync_helper(-1, filp, 0, &pipe->fasync_readers); + } mutex_unlock(&inode->i_mutex); if (retval < 0)