if (!ni->runlist.rl) { read_lock_irqsave(&ni->size_lock, flags); if (!ni->allocated_size) { read_unlock_irqrestore(&ni->size_lock, flags); return LCN_ENOENT; } read_unlock_irqrestore(&ni->size_lock, flags); } 
LCN ntfs_attr_vcn_to_lcn_nolock(ntfs_inode *ni, const VCN vcn,		const BOOL write_locked){	LCN lcn;	BOOL is_retry = FALSE;	ntfs_debug("Entering for i_ino 0x%lx, vcn 0x%llx, %s_locked.",			ni->mft_no, (unsigned long long)vcn,			write_locked ? "write" : "read");	BUG_ON(!ni);	BUG_ON(!NInoNonResident(ni));	BUG_ON(vcn < 0);retry_remap:	/* Convert vcn to lcn.  If that fails map the runlist and retry once. */	lcn = ntfs_rl_vcn_to_lcn(ni->runlist.rl, vcn);	if (likely(lcn >= LCN_HOLE)) {		ntfs_debug("Done, lcn 0x%llx.", (long long)lcn);		return lcn;	}	if (lcn != LCN_RL_NOT_MAPPED) {		if (lcn != LCN_ENOENT)			lcn = LCN_EIO;	} else if (!is_retry) {		int err;		if (!write_locked) {			up_read(&ni->runlist.lock);			down_write(&ni->runlist.lock);			if (unlikely(ntfs_rl_vcn_to_lcn(ni->runlist.rl, vcn) !=					LCN_RL_NOT_MAPPED)) {				up_write(&ni->runlist.lock);				down_read(&ni->runlist.lock);				goto retry_remap;			}		}		err = ntfs_map_runlist_nolock(ni, vcn);		if (!write_locked) {			up_write(&ni->runlist.lock);			down_read(&ni->runlist.lock);		}		if (likely(!err)) {			is_retry = TRUE;			goto retry_remap;		}		if (err == -ENOENT)			lcn = LCN_ENOENT;		else if (err == -ENOMEM)			lcn = LCN_ENOMEM;		else			lcn = LCN_EIO;	}	if (lcn != LCN_ENOENT)		ntfs_error(ni->vol->sb, "Failed with error code %lli.",				(long long)lcn);	return lcn;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2983d1bd1a596e88cdddc0c2d45b9e97728f3f41/attrib.c/clean/fs/ntfs/attrib.c