spin_lock_init(&ret->lock); 
struct io_context *get_io_context(int gfp_flags){	struct task_struct *tsk = current;	unsigned long flags;	struct io_context *ret;	local_irq_save(flags);	ret = tsk->io_context;	if (ret)		goto out;	local_irq_restore(flags);	ret = kmem_cache_alloc(iocontext_cachep, gfp_flags);	if (ret) {		atomic_set(&ret->refcount, 1);		ret->pid = tsk->pid;		ret->last_waited = jiffies; /* doesn't matter... */		ret->nr_batch_requests = 0; /* because this is 0 */		ret->aic = NULL;		ret->cic = NULL;		spin_lock_init(&ret->lock);		local_irq_save(flags);		/*		 * very unlikely, someone raced with us in setting up the task		 * io context. free new context and just grab a reference.		 */		if (!tsk->io_context)			tsk->io_context = ret;		else {			kmem_cache_free(iocontext_cachep, ret);			ret = tsk->io_context;		}out:		atomic_inc(&ret->refcount);		local_irq_restore(flags);	}	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/22e2c507c301c3dbbcf91b4948b88f78842ee6c9/ll_rw_blk.c/clean/drivers/block/ll_rw_blk.c