Oleg Nesterov
24b7ead3fb
freezer: fix wait_event_freezable/__thaw_task races
...
wait_event_freezable() and friends stop the waiting if try_to_freeze()
fails. This is not right, we can race with __thaw_task() and in this
case
- wait_event_freezable() returns the wrong ERESTARTSYS
- wait_event_freezable_timeout() can return the positive
value while condition == F
Change the code to always check __retval/condition before return.
Note: with or without this patch the timeout logic looks strange,
probably we should recalc timeout if try_to_freeze() returns T.
Signed-off-by: Oleg Nesterov <oleg@redhat.com >
Acked-by: Tejun Heo <tj@kernel.org >
2011-11-23 09:28:17 -08:00
..
2011-11-04 18:02:25 -07:00
2011-11-03 09:40:51 -07:00
2011-11-08 10:37:41 +00:00
2011-11-01 10:51:38 -07:00
2011-11-07 09:11:16 -08:00
2011-11-01 09:19:52 +01:00
2011-11-09 15:07:40 +01:00
2011-10-31 17:30:55 -07:00
2011-11-06 19:44:47 -08:00
2011-10-31 17:30:54 -07:00
2011-11-06 19:44:47 -08:00
2011-11-02 16:07:03 -07:00
2011-10-31 17:30:54 -07:00
2011-11-16 09:21:50 +01:00
2011-11-06 19:44:47 -08:00
2011-10-31 17:30:54 -07:00
2011-11-02 16:07:03 -07:00
2011-11-04 22:28:09 +01:00
2011-11-07 10:13:52 -08:00
2011-11-06 19:44:47 -08:00
2011-11-02 12:53:43 +01:00
2011-11-07 23:54:53 +01:00
2011-11-17 21:39:33 +01:00
2011-11-06 17:12:03 -08:00
2011-11-06 19:44:47 -08:00
2011-10-31 17:30:54 -07:00
2011-11-04 18:37:23 -04:00
2011-11-02 10:06:20 -07:00
2011-11-23 09:28:17 -08:00
2011-11-16 22:00:34 -05:00
2011-10-31 17:30:54 -07:00
2011-11-06 19:44:47 -08:00
2011-11-10 09:03:55 +01:00
2011-11-19 06:15:59 -05:00
2011-11-08 09:28:27 +02:00
2011-11-14 01:08:49 -05:00
2011-10-31 17:30:54 -07:00
2011-10-31 17:30:54 -07:00
2011-11-07 07:54:42 +10:30
2011-10-31 17:46:07 -07:00
2011-10-31 17:30:54 -07:00
2011-10-31 17:30:54 -07:00
2011-11-21 12:32:23 -08:00
2011-11-17 16:30:25 +02:00
2011-10-31 17:30:54 -07:00
2011-10-31 17:30:57 -07:00
2011-11-04 17:22:14 -07:00
2011-11-02 16:06:59 -07:00
2011-11-02 16:07:00 -07:00
2011-11-02 16:06:57 -07:00
2011-11-02 16:06:58 -07:00
2011-10-31 17:30:54 -07:00
2011-11-02 12:53:42 +01:00
2011-10-31 17:30:54 -07:00
2011-11-01 09:24:41 -07:00
2011-11-06 19:44:47 -08:00
2011-11-04 22:28:13 +01:00
2011-11-09 01:47:36 -05:00
2011-11-17 21:39:33 +01:00
2011-11-17 21:39:33 +01:00
2011-11-02 16:07:02 -07:00
2011-10-31 17:30:54 -07:00
2011-10-31 17:30:54 -07:00
2011-11-02 16:07:01 -07:00
2011-11-23 09:28:17 -08:00
2011-11-02 16:07:01 -07:00
2011-10-31 17:30:54 -07:00
2011-11-11 16:16:25 +09:00
2011-11-11 16:11:41 +09:00
2011-11-11 16:45:35 +09:00
2011-11-01 00:55:48 -04:00
2011-11-02 16:07:02 -07:00
2011-10-31 17:30:54 -07:00
2011-11-02 16:07:02 -07:00
2011-11-03 18:29:09 -02:00
2011-11-02 11:40:58 +10:30
2011-11-02 11:41:01 +10:30
2011-11-02 11:40:59 +10:30
2011-11-02 11:40:59 +10:30
2011-11-16 12:13:08 -05:00