/* Tell caller we're done */ if (test_bit(NFS_DELEGATED_STATE, &state->flags)) { state->state = mode; return 0; } calldata = (struct nfs4_closedata *)kmalloc(sizeof(*calldata), GFP_KERNEL); 
calldata = kmalloc(sizeof(*calldata), GFP_KERNEL); 
int nfs4_do_close(struct inode *inode, struct nfs4_state *state, mode_t mode) {	struct nfs4_closedata *calldata;	int status;	/* Tell caller we're done */	if (test_bit(NFS_DELEGATED_STATE, &state->flags)) {		state->state = mode;		return 0;	}	calldata = (struct nfs4_closedata *)kmalloc(sizeof(*calldata), GFP_KERNEL);	if (calldata == NULL)		return -ENOMEM;	calldata->inode = inode;	calldata->state = state;	calldata->arg.fh = NFS_FH(inode);	/* Serialization for the sequence id */	calldata->arg.seqid = nfs_alloc_seqid(&state->owner->so_seqid);	if (calldata->arg.seqid == NULL) {		kfree(calldata);		return -ENOMEM;	}	calldata->arg.open_flags = mode;	memcpy(&calldata->arg.stateid, &state->stateid,			sizeof(calldata->arg.stateid));	status = nfs4_close_call(NFS_SERVER(inode)->client, calldata);	/*	 * Return -EINPROGRESS on success in order to indicate to the	 * caller that an asynchronous RPC call has been launched, and	 * that it will release the semaphores on completion.	 */	return (status == 0) ? -EINPROGRESS : status;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/9512135df14f8293b9bc5e8fb22d4279dee5ff66/nfs4proc.c/buggy/fs/nfs/nfs4proc.c