/* Note: The reclaim code dictates that we add stateless * and read-only stateids to the end of the list */ list_add_tail(&state->open_states, &owner->so_states); 
nfs4_get_open_state(struct inode *inode, struct nfs4_state_owner *owner){	struct nfs4_state *state, *new;	struct nfs_inode *nfsi = NFS_I(inode);	spin_lock(&inode->i_lock);	state = __nfs4_find_state_byowner(inode, owner);	spin_unlock(&inode->i_lock);	if (state)		goto out;	new = nfs4_alloc_open_state();	spin_lock(&inode->i_lock);	state = __nfs4_find_state_byowner(inode, owner);	if (state == NULL && new != NULL) {		state = new;		/* Note: The reclaim code dictates that we add stateless		 * and read-only stateids to the end of the list */		list_add_tail(&state->open_states, &owner->so_states);		state->owner = owner;		atomic_inc(&owner->so_count);		list_add(&state->inode_states, &nfsi->open_states);		state->inode = igrab(inode);		spin_unlock(&inode->i_lock);	} else {		spin_unlock(&inode->i_lock);		if (new)			nfs4_free_open_state(new);	}out:	return state;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/ec073428281b401f1142cb84b277a5b00c7994c9/nfs4state.c/buggy/fs/nfs/nfs4state.c