up(&ctx->file->mutex); ib_ucm_ctx_put(ctx); /* user reference */ 
up(&file->mutex); ib_ucm_destroy_ctx(file, ctx->id); 
static int ib_ucm_close(struct inode *inode, struct file *filp){	struct ib_ucm_file *file = filp->private_data;	struct ib_ucm_context *ctx;	down(&file->mutex);	while (!list_empty(&file->ctxs)) {		ctx = list_entry(file->ctxs.next,				 struct ib_ucm_context, file_list);		up(&ctx->file->mutex);		ib_ucm_ctx_put(ctx); /* user reference */		down(&file->mutex);	}	up(&file->mutex);	kfree(file);	ucm_dbg("Deleted struct\n");	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b9ef520f9caf20aba8ac7cb2bbba45b52ff19d53/ucm.c/clean/drivers/infiniband/core/ucm.c