summaryrefslogtreecommitdiff
path: root/mm/filemap.c
diff options
context:
space:
mode:
authorZach Brown <zach.brown@oracle.com>2006-12-10 02:21:01 -0800
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-10 09:57:21 -0800
commit20258b2b397031649e4a41922fe803d57017df84 (patch)
tree9c5fc96367b4938474cee2789d3c98c5e37586bf /mm/filemap.c
parent0273201e693fd62381f6b1e85b15ffc117d8a46e (diff)
downloadlwn-20258b2b397031649e4a41922fe803d57017df84.tar.gz
lwn-20258b2b397031649e4a41922fe803d57017df84.zip
[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>
Diffstat (limited to 'mm/filemap.c')
0 files changed, 0 insertions, 0 deletions