aio: improve locking
Currently we use the ctx->ctx_lock to protect:
- ->ki_list, items on the cancel list
- ->reqs_active, number of items active on the cancel list
- ->ki_users, number of references to the kiocb
- aio ring code
With the aio cancel and user ring now optional, we don't have to grab
the lock unless we are USB gadget code or somebody has requested that
the ring be active. Make the ->reqs_active and ->ki_users atomic types,
so we can completely avoid it for most cases.
Signed-off-by: Jens Axboe <axboe@kernel.dk>