From: Sébastien Dugué Clean up aio_setup_sigevent() to make it more readable. Signed-off-by: Sébastien Dugué Cc: Laurent Vivier Cc: Bharata B Rao Cc: Christoph Hellwig Cc: Suparna Bhattacharya Cc: Zach Brown Cc: Oleg Nesterov Cc: Badari Pulavarty Cc: Benjamin LaHaise Cc: Jean Pierre Dion Signed-off-by: Andrew Morton --- fs/aio.c | 15 ++++----------- 1 files changed, 4 insertions(+), 11 deletions(-) diff -puN fs/aio.c~aio-completion-signal-notification-small-cleanup fs/aio.c --- a/fs/aio.c~aio-completion-signal-notification-small-cleanup +++ a/fs/aio.c @@ -961,21 +961,11 @@ static long aio_setup_sigevent(struct ai event.sigev_notify != SIGEV_THREAD_ID) return -EINVAL; - notify->notify = event.sigev_notify; - notify->signo = event.sigev_signo; - notify->value = event.sigev_value; - rcu_read_lock(); target = sigevent_find_task(&event); - if (unlikely(!target)) { - /* - * Revert notify to SIGEV_NONE so that really_put_req() - * knows that no ref has been taken on a task. - */ - notify->notify = SIGEV_NONE; + if (unlikely(!target)) goto out_unlock; - } /* * At this point, we know that notify is either SIGEV_SIGNAL or @@ -987,6 +977,9 @@ static long aio_setup_sigevent(struct ai notify->target = target; rcu_read_unlock(); + notify->notify = event.sigev_notify; + notify->signo = event.sigev_signo; + notify->value = event.sigev_value; notify->sigq = __sigqueue_alloc(current, GFP_KERNEL, 0); /* _