if (unlikely(!a->data.non_resident.lowest_vcn && end_vcn <= 1)) 
if (unlikely(!a->data.non_resident.lowest_vcn && end_vcn <= 1)) { read_lock_irqsave(&ni->size_lock, flags); 
int ntfs_map_runlist_nolock(ntfs_inode *ni, VCN vcn){	VCN end_vcn;	ntfs_inode *base_ni;	MFT_RECORD *m;	ATTR_RECORD *a;	ntfs_attr_search_ctx *ctx;	runlist_element *rl;	int err = 0;	ntfs_debug("Mapping runlist part containing vcn 0x%llx.",			(unsigned long long)vcn);	if (!NInoAttr(ni))		base_ni = ni;	else		base_ni = ni->ext.base_ntfs_ino;	m = map_mft_record(base_ni);	if (IS_ERR(m))		return PTR_ERR(m);	ctx = ntfs_attr_get_search_ctx(base_ni, m);	if (unlikely(!ctx)) {		err = -ENOMEM;		goto err_out;	}	err = ntfs_attr_lookup(ni->type, ni->name, ni->name_len,			CASE_SENSITIVE, vcn, NULL, 0, ctx);	if (unlikely(err)) {		if (err == -ENOENT)			err = -EIO;		goto err_out;	}	a = ctx->attr;	/*	 * Only decompress the mapping pairs if @vcn is inside it.  Otherwise	 * we get into problems when we try to map an out of bounds vcn because	 * we then try to map the already mapped runlist fragment and	 * ntfs_mapping_pairs_decompress() fails.	 */	end_vcn = sle64_to_cpu(a->data.non_resident.highest_vcn) + 1;	if (unlikely(!a->data.non_resident.lowest_vcn && end_vcn <= 1))		end_vcn = ni->allocated_size >> ni->vol->cluster_size_bits;	if (unlikely(vcn >= end_vcn)) {		err = -ENOENT;		goto err_out;	}	rl = ntfs_mapping_pairs_decompress(ni->vol, a, ni->runlist.rl);	if (IS_ERR(rl))		err = PTR_ERR(rl);	else		ni->runlist.rl = rl;err_out:	if (likely(ctx))		ntfs_attr_put_search_ctx(ctx);	unmap_mft_record(base_ni);	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2983d1bd1a596e88cdddc0c2d45b9e97728f3f41/attrib.c/clean/fs/ntfs/attrib.c