The patch titled posix-timers: sys_timer_create: cleanup the error handling has been removed from the -mm tree. Its filename was posix-timers-sys_timer_create-cleanup-the-error-handling.patch This patch was dropped because it was merged into mainline or a subsystem tree The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: posix-timers: sys_timer_create: cleanup the error handling From: Oleg Nesterov <oleg@xxxxxxxxxx> Cleanup. - sys_timer_create() is big and complicated. The code above the "out:" label relies on the fact that "error" must be == 0. This is not very robust, make the code more explicit. Remove the unneeded initialization of error. - If idr_get_new() succeeds (as it normally should), we check the returned value twice. Move the "-EAGAIN" check under "if (error)". Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx> Cc: Roland McGrath <roland@xxxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/posix-timers.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff -puN kernel/posix-timers.c~posix-timers-sys_timer_create-cleanup-the-error-handling kernel/posix-timers.c --- a/kernel/posix-timers.c~posix-timers-sys_timer_create-cleanup-the-error-handling +++ a/kernel/posix-timers.c @@ -469,7 +469,7 @@ sys_timer_create(const clockid_t which_c struct sigevent __user *timer_event_spec, timer_t __user * created_timer_id) { - int error = 0; + int error; struct k_itimer *new_timer; int new_timer_id; struct task_struct *process; @@ -493,9 +493,9 @@ sys_timer_create(const clockid_t which_c error = idr_get_new(&posix_timers_id, (void *) new_timer, &new_timer_id); spin_unlock_irq(&idr_lock); - if (error == -EAGAIN) - goto retry; - else if (error) { + if (error) { + if (error == -EAGAIN) + goto retry; /* * Weird looking, but we return EAGAIN if the IDR is * full (proper POSIX return value for this) @@ -556,6 +556,8 @@ sys_timer_create(const clockid_t which_c new_timer->it_process = process; list_add(&new_timer->list, ¤t->signal->posix_timers); spin_unlock_irq(¤t->sighand->siglock); + + return 0; /* * In the case of the timer belonging to another task, after * the task is unlocked, the timer is owned by the other task @@ -563,9 +565,7 @@ sys_timer_create(const clockid_t which_c * new_timer after the unlock call. */ out: - if (error) - release_posix_timer(new_timer, it_id_set); - + release_posix_timer(new_timer, it_id_set); return error; } _ Patches currently in -mm which might be from oleg@xxxxxxxxxx are git-tip.patch posix-timers-use-struct-pid-instead-of-struct-task_struct.patch posix-timers-check-it_signal-instead-of-it_pid-to-validate-the-timer.patch posix-timers-simplify-de_thread-exit_itimers-path.patch signal-procfs-lock_task_sighand-do-not-need-rcu_read_lock.patch make-ptrace_untrace-static.patch coredump-format_corename-dont-append-%pid-if-multi-threaded.patch add-config_core_dump_default_elf_headers.patch kthread_bind-use-wait_task_inactivetask_uninterruptible.patch pid_ns-de_thread-kill-the-now-unneeded-child_reaper-change.patch pid_ns-kill-the-now-unused-task_child_reaper.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html