Re: [PATCH v7 3/4] xfs: xfs_seek_data() refinement with unwritten extents check up from page cache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/21/12 07:16, Dave Chinner wrote:
> On Mon, Aug 13, 2012 at 09:08:09PM +0800, Jeff Liu wrote:
>> Improve xfs_seek_data() to search data offset from page cache for unwritten extents.
>>
>> Signed-off-by: Jie Liu <jeff.liu@xxxxxxxxxx>
> One minor addition, otherwise
>
> Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
>
> ....
>> +
>> +		/*
>> +		 * map[0] is hole or its an unwritten extent but
>> +		 * without data in page cache.  Probably means that
>> +		 * we are reading after EOF if nothing in map[1].
>> +		 */
>>  		if (nmap == 1) {
>>  			error = ENXIO;
>>  			goto out_unlock;
>>  		}
>>  
>> -		offset = max_t(loff_t, start,
>> -			       XFS_FSB_TO_B(mp, map[1].br_startoff));
>> +		/*
>> +		 * Nothing was found, proceed to the next round of search
>> +		 * if reading offset not beyond or hit EOF.
>> +		 */
> 		ASSERT(i > 1);
Will add this check up.

Thanks,
-Jeff
>
>> +		fsbno = map[i - 1].br_startoff + map[i - 1].br_blockcount;
>> +		start = XFS_FSB_TO_B(mp, fsbno);
>> +		if (start >= isize) {
>> +			error = ENXIO;
>> +			goto out_unlock;
>> +		}
>>  	}
>>  
>> +out:
>>  	if (offset != file->f_pos)
>>  		file->f_pos = offset;
> Cheers,
>
> Dave.

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs


[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux