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