Oleg Nesterov
4dec2a91fd
fork/exit: move tty_kref_put() outside of __cleanup_signal()
...
tty_kref_put() has two callsites in copy_process() paths,
1. if copy_process() suceeds it is called before we copy
signal->tty from parent
2. otherwise it is called from __cleanup_signal() under
bad_fork_cleanup_signal: label
In both cases tty_kref_put() is not right and unneeded because we don't
have the balancing tty_kref_get(). Fortunately, this is harmless because
this can only happen without CLONE_THREAD, and in this case signal->tty
must be NULL.
Remove tty_kref_put() from copy_process() and __cleanup_signal(), and
change another caller of __cleanup_signal(), __exit_signal(), to call
tty_kref_put() by hand.
I hope this change makes sense by itself, but it is also needed to make
->signal refcountable.
Signed-off-by: Oleg Nesterov <oleg@redhat.com >
Acked-by: Alan Cox <alan@linux.intel.com >
Acked-by: Roland McGrath <roland@redhat.com >
Cc: Greg KH <greg@kroah.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2010-05-27 09:12:46 -07:00
..
2010-05-20 21:04:29 -05:00
2009-09-21 14:29:21 +02:00
2010-05-12 11:23:34 +02:00
2010-05-10 23:08:18 +02:00
2010-05-19 17:11:10 -07:00
2010-05-21 21:27:26 +02:00
2010-05-18 08:57:00 +10:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2009-06-24 00:02:38 -04:00
2010-03-30 22:02:32 +09:00
2010-04-05 13:19:45 -07:00
2009-12-12 13:08:14 +01:00
2010-04-02 20:12:00 +02:00
2010-05-10 23:18:47 +02:00
2010-05-27 09:12:44 -07:00
2010-05-19 11:48:18 -07:00
2010-05-25 08:07:02 -07:00
2010-05-27 09:12:44 -07:00
2010-05-27 09:12:45 -07:00
2009-09-18 09:48:52 -07:00
2010-03-29 18:55:40 +02:00
2010-03-06 11:26:46 -08:00
2009-03-31 23:00:27 -04:00
2010-05-27 09:12:46 -07:00
2009-04-05 11:04:19 -07:00
2010-05-27 09:12:46 -07:00
2009-07-18 14:19:53 +02:00
2009-12-09 14:22:14 +01:00
2010-02-03 15:13:22 +01:00
2010-04-12 12:19:18 +10:00
2010-04-06 21:50:03 +02:00
2009-11-27 06:21:57 +01:00
2010-05-04 08:39:36 +02:00
2009-11-18 16:32:12 +01:00
2010-05-20 21:04:21 -05:00
2009-12-03 11:50:11 +01:00
2010-05-11 17:33:42 -07:00
2010-02-16 15:11:08 -08:00
2010-05-27 09:12:45 -07:00
2010-05-08 18:08:30 +02:00
2010-05-21 09:37:31 -07:00
2010-03-24 16:31:21 -07:00
2010-03-30 22:02:32 +09:00
2010-05-04 05:38:16 +02:00
2010-04-06 00:15:37 +02:00
2010-05-21 09:37:30 -07:00
2010-05-20 21:04:18 -05:00
2010-05-25 16:48:30 -07:00
2009-10-11 11:20:58 -07:00
2009-12-14 23:55:32 +01:00
2009-12-03 11:50:11 +01:00
2010-02-25 10:34:26 +01:00
2009-09-24 07:20:58 -07:00
2010-03-30 22:02:32 +09:00
2010-05-19 13:45:35 +10:00
2010-05-19 08:37:43 +01:00
2010-03-12 16:04:50 -08:00
2010-05-11 17:08:24 +02:00
2010-03-30 22:02:32 +09:00
2010-03-13 14:43:01 -08:00
2010-05-17 00:21:03 +02:00
2010-05-27 09:12:46 -07:00
2010-02-05 14:54:10 +01:00
2010-05-20 21:04:27 -05:00
2010-05-14 19:45:06 -07:00
2010-05-27 09:12:44 -07:00
2010-02-10 17:47:17 -08:00
2010-05-10 11:08:34 -07:00
2010-05-10 11:08:34 -07:00
2010-05-11 16:10:47 -07:00
2010-05-18 08:27:54 -07:00
2010-05-11 16:10:47 -07:00
2010-05-10 11:08:35 -07:00
2010-05-11 16:10:47 -07:00
2010-05-10 11:08:35 -07:00
2010-05-21 21:12:40 +02:00
2010-03-30 22:02:32 +09:00
2010-05-11 12:01:10 -07:00
2009-04-06 11:14:02 +02:00
2009-12-14 23:55:33 +01:00
2009-12-14 23:55:33 +01:00
2010-04-15 08:54:59 +02:00
2010-03-30 22:02:32 +09:00
2009-12-14 23:55:33 +01:00
2010-05-18 08:27:54 -07:00
2010-05-06 18:49:21 +02:00
2010-03-11 18:32:53 +01:00
2010-04-23 11:02:02 +02:00
2010-04-02 20:12:05 +02:00
2009-03-24 23:16:51 +01:00
2010-05-21 11:08:05 -07:00
2010-05-27 09:12:46 -07:00
2009-12-01 08:20:31 -08:00
2010-03-29 09:13:30 -07:00
2010-03-29 09:14:47 -07:00
2010-03-30 22:02:32 +09:00
2010-05-10 11:08:33 -07:00
2010-03-21 19:30:13 +01:00
2009-12-14 23:55:33 +01:00
2010-03-30 22:02:32 +09:00
2010-05-18 00:17:44 +02:00
2010-03-12 15:52:32 -08:00
2010-05-27 09:12:44 -07:00
2010-05-25 08:07:05 -07:00
2009-12-03 12:14:38 -08:00
2010-05-25 16:59:51 -07:00
2010-03-30 22:02:32 +09:00
2010-05-24 11:50:38 +02:00
2010-05-24 12:10:23 +02:00
2009-09-21 15:14:55 +02:00
2010-03-06 11:26:23 -08:00
2009-09-23 18:13:10 -07:00
2010-05-21 09:37:29 -07:00
2009-12-02 10:22:59 +01:00
2010-05-10 08:48:39 +02:00
2009-11-12 02:04:55 -08:00
2009-06-18 13:03:55 -07:00
2009-08-10 14:43:09 +02:00
2010-04-30 08:57:25 +02:00