atomic_sub(nr_events, &aio_nr); 
if (nr_events) { spin_lock(&aio_nr_lock); BUG_ON(aio_nr - nr_events > aio_nr); aio_nr -= nr_events; spin_unlock(&aio_nr_lock); } 
void fastcall __put_ioctx(struct kioctx *ctx){	unsigned nr_events = ctx->max_reqs;	if (unlikely(ctx->reqs_active))		BUG();	cancel_delayed_work(&ctx->wq);	flush_workqueue(aio_wq);	aio_free_ring(ctx);	mmdrop(ctx->mm);	ctx->mm = NULL;	pr_debug("__put_ioctx: freeing %p\n", ctx);	kmem_cache_free(kioctx_cachep, ctx);	atomic_sub(nr_events, &aio_nr);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d55b5fdaf40846221d543937b786956e27837fda/aio.c/clean/fs/aio.c