Zach Brown
20258b2b39
[PATCH] dio: remove duplicate bio wait code
...
Now that we have a single refcount and waiting path we can reuse it in the
async 'should_wait' path. It continues to rely on the fragile link between
the conditional in dio_complete_aio() which decides to complete the AIO and
the conditional in direct_io_worker() which decides to wait and free.
By waiting before dropping the reference we stop dio_bio_end_aio() from
calling dio_complete_aio() which used to wake up the waiter after seeing the
reference count drop to 0. We hoist this wake up into dio_bio_end_aio() which
now notices when it's left a single remaining reference that is held by the
waiter.
Signed-off-by: Zach Brown <zach.brown@oracle.com>
Cc: Badari Pulavarty <pbadari@us.ibm.com>
Cc: Suparna Bhattacharya <suparna@in.ibm.com>
Acked-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-10 09:57:21 -08:00
..
2006-12-08 08:28:43 -08:00
2006-12-08 08:28:43 -08:00
2006-12-08 08:28:43 -08:00
2006-12-08 08:28:51 -08:00
2006-12-08 08:28:43 -08:00
2006-12-08 08:28:43 -08:00
2006-12-08 08:28:44 -08:00
2006-12-08 08:28:44 -08:00
2006-12-10 09:55:41 -08:00
2006-12-08 08:28:44 -08:00
2006-12-08 08:28:43 -08:00
2006-12-08 08:28:44 -08:00
2006-11-25 13:28:33 -08:00
2006-09-27 08:26:18 -07:00
2006-12-07 09:13:20 -08:00
2006-12-08 08:28:43 -08:00
2006-12-08 08:28:45 -08:00
2006-10-03 08:03:40 -07:00
2006-12-08 08:28:51 -08:00
2006-12-08 08:28:51 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:41 -08:00
2006-12-07 08:39:40 -08:00
2006-12-07 08:39:42 -08:00
2006-12-08 08:28:46 -08:00
2006-12-08 08:28:46 -08:00
2006-12-08 08:28:46 -08:00
2006-12-08 08:28:47 -08:00
2006-12-08 08:28:47 -08:00
2006-11-16 11:43:38 -08:00
2006-12-08 08:28:48 -08:00
2006-12-08 08:28:51 -08:00
2006-10-20 10:26:41 -07:00
2006-12-08 08:29:02 -08:00
2006-12-07 08:39:46 -08:00
2006-12-08 08:28:42 -08:00
2006-12-08 08:28:48 -08:00
2006-12-08 08:28:48 -08:00
2006-12-09 01:03:58 +00:00
2006-12-10 09:55:41 -08:00
2006-12-08 08:28:48 -08:00
2006-12-08 08:28:49 -08:00
2006-12-08 08:28:51 -08:00
2006-12-08 08:28:49 -08:00
2006-12-08 08:28:49 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:50 -08:00
2006-12-08 08:28:50 -08:00
2006-12-08 08:28:50 -08:00
2006-11-16 11:43:38 -08:00
2006-12-08 08:28:43 -08:00
2006-12-07 08:39:46 -08:00
2006-10-01 00:39:28 -07:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:51 -08:00
2006-12-08 08:28:51 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-10-04 06:51:26 -06:00
2006-12-07 08:39:25 -08:00
2006-12-08 08:28:41 -08:00
2006-12-10 09:55:41 -08:00
2006-09-30 20:52:18 +02:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-07 08:39:41 -08:00
2006-12-07 08:39:25 -08:00
2006-12-10 09:57:21 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:52 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-07 08:39:32 -08:00
2006-09-29 09:18:20 -07:00
2006-09-30 20:52:26 +02:00
2006-09-29 09:18:24 -07:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-04 02:00:24 -05:00
2006-09-30 20:52:32 +02:00
2006-12-08 08:28:41 -08:00
2006-10-12 15:09:51 +02:00
2006-11-30 05:32:19 +01:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:40 -08:00
2006-12-07 08:39:25 -08:00
2006-09-30 20:52:26 +02:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:51 -08:00
2006-06-30 19:25:36 +02:00
2006-09-30 20:52:31 +02:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:51 -08:00
2006-12-08 08:28:51 -08:00
2006-10-01 00:39:19 -07:00
2006-09-30 20:52:31 +02:00
2006-12-08 08:28:41 -08:00
2006-10-01 00:39:28 -07:00
2006-12-08 08:28:41 -08:00
2006-09-29 09:18:23 -07:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:40 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-08 08:28:41 -08:00
2006-12-04 02:00:24 -05:00
2006-12-08 08:28:41 -08:00