Jeff Moyer
65c24491b4
aio: lookup_ioctx can return the wrong value when looking up a bogus context
...
The libaio test harness turned up a problem whereby lookup_ioctx on a
bogus io context was returning the 1 valid io context from the list
(harness/cases/3.p).
Because of that, an extra put_iocontext was done, and when the process
exited, it hit a BUG_ON in the put_iocontext macro called from exit_aio
(since we expect a users count of 1 and instead get 0).
The problem was introduced by "aio: make the lookup_ioctx() lockless"
(commit abf137dd7712132ee56d5b3143c2ff61a72a5faa).
Thanks to Zach for pointing out that hlist_for_each_entry_rcu will not
return with a NULL tpos at the end of the loop, even if the entry was
not found.
Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Acked-by: Zach Brown <zach.brown@oracle.com>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-03-19 15:57:18 -07:00
..
2009-01-22 13:16:01 +03:00
2009-01-22 13:15:56 +03:00
2009-01-22 13:15:56 +03:00
2009-01-22 13:16:01 +03:00
2009-01-22 13:15:54 +03:00
2009-01-22 13:15:54 +03:00
2009-01-22 13:15:57 +03:00
2009-01-22 13:15:57 +03:00
2009-03-10 13:17:18 -04:00
2009-02-21 03:37:10 +00:00
2009-01-22 13:16:01 +03:00
2009-02-04 09:46:25 -08:00
2009-01-22 13:15:58 +03:00
2009-01-07 10:00:16 -08:00
2009-03-10 15:55:11 -07:00
2009-01-21 15:28:45 -06:00
2009-03-14 11:57:22 -07:00
2009-01-22 13:15:57 +03:00
2008-12-25 11:40:09 +11:00
2009-02-11 14:25:36 -08:00
2009-02-11 14:25:35 -08:00
2009-03-16 23:25:40 -04:00
2009-03-11 12:04:18 -07:00
2009-01-22 13:15:58 +03:00
2009-01-26 10:08:50 -08:00
2009-01-09 16:54:42 -08:00
2009-01-22 13:15:57 +03:00
2009-01-22 13:15:57 +03:00
2009-01-04 13:33:20 -08:00
2009-01-22 13:15:59 +03:00
2008-11-14 10:39:25 +11:00
2009-02-10 10:48:42 -08:00
2009-01-22 13:15:55 +03:00
2009-02-11 14:25:35 -08:00
2009-02-10 11:15:34 -05:00
2009-02-21 11:09:29 +01:00
2009-01-22 13:15:54 +03:00
2009-03-10 20:33:20 -04:00
2009-01-22 13:15:58 +03:00
2009-01-22 13:16:01 +03:00
2009-03-12 14:51:32 -04:00
2008-12-23 15:21:32 -05:00
2009-03-17 14:54:45 -04:00
2008-10-17 02:38:36 +11:00
2009-02-18 15:37:56 -08:00
2009-01-22 13:15:55 +03:00
2009-03-12 16:46:09 -07:00
2009-01-22 13:15:58 +03:00
2009-01-05 11:54:28 -05:00
2009-01-09 21:46:13 +01:00
2009-03-17 10:02:35 -07:00
2009-01-22 13:15:59 +03:00
2009-03-14 11:57:22 -07:00
2009-01-22 13:15:53 +03:00
2009-01-22 13:15:59 +03:00
2009-01-22 13:16:01 +03:00
2009-03-12 03:23:48 +00:00
2009-01-26 10:40:28 -08:00
2009-01-22 13:15:59 +03:00
2009-01-29 16:34:30 +02:00
2009-01-22 13:15:55 +03:00
2009-01-22 13:16:00 +03:00
2009-03-06 17:35:12 -06:00
2009-03-19 15:57:18 -07:00
2008-12-31 16:55:44 +02:00
2008-11-14 10:39:05 +11:00
2008-12-31 18:07:43 -05:00
2009-01-03 11:45:54 -08:00
2009-01-08 12:04:47 +00:00
2009-02-06 17:34:07 -08:00
2008-10-16 11:21:38 -07:00
2009-01-08 12:04:47 +00:00
2009-01-06 15:59:19 -08:00
2008-10-16 11:21:38 -07:00
2008-11-14 10:39:24 +11:00
2009-03-14 21:06:51 +01:00
2009-03-14 21:06:52 +01:00
2009-01-09 16:54:42 -08:00
2009-03-19 11:32:05 -07:00
2009-01-06 15:59:13 -08:00
2009-02-27 16:27:45 -08:00
2009-02-07 08:46:18 +11:00
2009-02-27 16:26:20 -08:00
2009-01-14 14:15:18 +01:00
2009-01-06 15:59:06 -08:00
2009-01-16 18:02:10 +01:00
2009-01-14 14:15:31 +01:00
2009-01-29 18:04:45 -08:00
2009-02-07 08:46:18 +11:00
2009-01-14 14:15:24 +01:00
2008-10-21 07:47:06 -04:00
2008-12-31 18:07:42 -05:00
2008-08-01 11:25:23 -04:00
2009-01-14 14:15:29 +01:00
2009-03-12 16:20:24 -07:00
2009-03-12 16:20:24 -07:00
2009-02-07 08:46:18 +11:00
2009-01-14 14:15:24 +01:00
2009-01-14 14:15:30 +01:00
2009-01-22 13:16:01 +03:00
2009-01-09 16:54:41 -08:00
2009-01-05 18:32:06 -08:00
2009-01-14 14:15:25 +01:00
2009-02-28 09:50:01 -05:00
2009-01-06 15:59:01 -08:00
2009-01-14 14:15:30 +01:00
2009-02-17 14:02:08 -08:00
2009-01-14 14:15:29 +01:00
2009-01-14 14:15:30 +01:00
2009-03-12 16:20:23 -07:00
2008-11-14 10:39:05 +11:00
2009-01-05 08:40:21 -08:00
2009-01-05 08:40:21 -08:00
2009-01-05 08:36:58 -08:00
2009-01-05 08:40:21 -08:00
2009-01-14 14:15:26 +01:00
2009-01-05 08:36:58 -08:00
2009-01-05 08:40:21 -08:00
2009-01-14 14:15:26 +01:00
2009-01-14 14:15:31 +01:00
2009-01-14 14:15:31 +01:00
2009-02-18 15:37:53 -08:00
2009-01-14 14:15:31 +01:00
2009-01-14 14:15:31 +01:00
2009-01-14 14:15:30 +01:00
2009-03-12 16:20:23 -07:00
2009-01-14 14:15:21 +01:00
2009-02-18 15:37:53 -08:00
2009-01-14 14:15:30 +01:00
2009-01-14 14:15:23 +01:00