as-iosched: properly protect ioc_gone and ioc count
authorJens Axboe <jens.axboe@oracle.com>
Thu, 29 May 2008 07:35:22 +0000 (09:35 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 3 Jul 2008 11:21:12 +0000 (13:21 +0200)
commit863fddcb4b0caee4c2d5bd6e3b28779920516db3
tree9170df5fb0e26d77d45017069b7756f7c80afde5
parent9a11b4ed0e7c44bca7c939aa544c3c47aae40c12
as-iosched: properly protect ioc_gone and ioc count

If we have multiple tasks freeing io contexts when as-iosched
is being unloaded, we could complete() ioc_gone twice. Fix that by
protecting ioc_gone complete() and clearing with a spinlock for
just that purpose. Doesn't matter from a performance perspective,
since it'll only enter that path when ioc_gone != NULL (when as-iosched
is being rmmod'ed).

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/as-iosched.c