| To: | Jeff Liu <jeff.liu@xxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH] Introduce SEEK_DATA/SEEK_HOLE support to XFS V4 |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Wed, 4 Jan 2012 15:52:55 -0500 |
| Cc: | xfs@xxxxxxxxxxx, Christoph Hellwig <hch@xxxxxxxxxxxxx>, Chris Mason <chris.mason@xxxxxxxxxx> |
| In-reply-to: | <4EFB1B23.7050008@xxxxxxxxxx> |
| References: | <4EFB1B23.7050008@xxxxxxxxxx> |
| User-agent: | Mutt/1.5.21 (2010-09-15) |
Hi Jeff,
thanks a lot for the patch, it looks good to except for some more
nitpicks around the unwritten extent probing.
The other issue is the patch description format - the version changelog
should go below the --- line.
> + do {
> + unsigned int i;
> + unsigned nr_pages;
> + int want = min_t(pgoff_t, end - index,
> + (pgoff_t)PAGEVEC_SIZE - 1) + 1;
> + nr_pages = pagevec_lookup_tag(&pvec, inode->i_mapping,
> + &index, tag, want);
> + if (nr_pages == 0) {
> + /*
> + * Try to lookup pages in writeback mode from the
> + * beginning if no more dirty page can be probed.
> + */
> +probe_done:
> + if (tag == PAGECACHE_TAG_DIRTY) {
> + tag = PAGECACHE_TAG_WRITEBACK;
> + goto again;
> + }
> + break;
The code flow here looks very confusing. Why not pass the tag as an
argument to the function, then calling it twice and use the minimum?
(that probably also wants a helper instead of duplication)
> + * dirty data in the page cache it can be
> + * identified by having BH_Unwritten set in
> + * each buffer. Also, the buffer head state
> + * might be in BH_Uptodate if the buffer
> + * writeback procedure was fired, we need to
> + * examine it too.
> + */
> + if (buffer_unwritten(bh) ||
> + buffer_uptodate(bh)) {
> + found = true;
> + if (get_offset)
> + *offset = XFS_FSB_TO_B(
> + mp, last);
Currently seek hole doesn't set get_offset we skip the whole extent.
This seems a bit inconsistent - shouldn't we also return that offset
for the hole case? if the dirty data only starts past the start block
of the map the first blocks of it still are a hole.
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [LSF/MM TOPIC] [ATTEND] xfstests: what do we need to do to make it better?, Dave Chinner |
|---|---|
| Next by Date: | [PATCH V2] xfstests: make 275 pass, Eric Sandeen |
| Previous by Thread: | Re: [PATCH 02/11] xfs: cleanup xfs_iomap_eof_align_last_fsb, Ben Myers |
| Next by Thread: | Re: [PATCH] Introduce SEEK_DATA/SEEK_HOLE support to XFS V4, Jeff Liu |
| Indexes: | [Date] [Thread] [Top] [All Lists] |