Re: [PATCH v7 3/4] xfs: xfs_seek_data() refinement with unwritten extents check up from page cache
From: Jie Liu <hidden>
Date: 2012-08-21 05:07:17
On 08/21/12 07:16, Dave Chinner wrote:
On Mon, Aug 13, 2012 at 09:08:09PM +0800, Jeff Liu wrote:quoted
Improve xfs_seek_data() to search data offset from page cache for unwritten extents. Signed-off-by: Jie Liu <redacted>One minor addition, otherwise Reviewed-by: Dave Chinner <redacted> ....quoted
+ + /* + * 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
quoted
+ 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@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs