From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 13/21] xfs: iterate backwards in xfs_reflink_cancel_cow_blocks
Date: Fri, 3 Nov 2017 09:52:36 -0700 [thread overview]
Message-ID: <20171103165236.GN4911@magnolia> (raw)
In-Reply-To: <20171103144539.2187-14-hch@lst.de>
On Fri, Nov 03, 2017 at 05:45:31PM +0300, Christoph Hellwig wrote:
> Match the iteration order for extent deletion in the truncate and
> reflink I/O completion path.
>
> This also happens to make implementing the new incore extent list
> a lot easier.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks ok,
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---
> fs/xfs/xfs_reflink.c | 16 ++++++++++++----
> 1 file changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c
> index d86c4378facf..cf976ed65260 100644
> --- a/fs/xfs/xfs_reflink.c
> +++ b/fs/xfs/xfs_reflink.c
> @@ -569,12 +569,20 @@ xfs_reflink_cancel_cow_blocks(
>
> if (!xfs_is_reflink_inode(ip))
> return 0;
> - if (!xfs_iext_lookup_extent(ip, ifp, offset_fsb, &icur, &got))
> + if (!xfs_iext_lookup_extent_before(ip, ifp, &end_fsb, &icur, &got))
> return 0;
>
> - while (got.br_startoff < end_fsb) {
> + /* Walk backwards until we're out of the I/O range... */
> + while (got.br_startoff + got.br_blockcount > offset_fsb) {
> del = got;
> xfs_trim_extent(&del, offset_fsb, end_fsb - offset_fsb);
> +
> + /* Extent delete may have bumped ext forward */
> + if (!del.br_blockcount) {
> + xfs_iext_prev(ifp, &icur);
> + goto next_extent;
> + }
> +
> trace_xfs_reflink_cancel_cow(ip, &del);
>
> if (isnullstartblock(del.br_startblock)) {
> @@ -612,8 +620,8 @@ xfs_reflink_cancel_cow_blocks(
> /* Remove the mapping from the CoW fork. */
> xfs_bmap_del_extent_cow(ip, &icur, &got, &del);
> }
> -
> - if (!xfs_iext_next_extent(ifp, &icur, &got))
> +next_extent:
> + if (!xfs_iext_get_extent(ifp, &icur, &got))
> break;
> }
>
> --
> 2.14.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-11-03 16:52 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-03 14:45 b+tree for the incore extent list V2 Christoph Hellwig
2017-11-03 14:45 ` [PATCH 01/21] xfs: don't create overlapping extents in xfs_bmap_add_extent_delay_real Christoph Hellwig
2017-11-03 14:45 ` [PATCH 02/21] xfs: remove a duplicate assignment " Christoph Hellwig
2017-11-03 15:18 ` Brian Foster
2017-11-03 16:32 ` Darrick J. Wong
2017-11-03 14:45 ` [PATCH 03/21] xfs: treat idx as a cursor " Christoph Hellwig
2017-11-03 14:45 ` [PATCH 04/21] xfs: treat idx as a cursor in xfs_bmap_add_extent_hole_delay Christoph Hellwig
2017-11-03 14:45 ` [PATCH 05/21] xfs: treat idx as a cursor in xfs_bmap_add_extent_hole_real Christoph Hellwig
2017-11-03 14:45 ` [PATCH 06/21] xfs: treat idx as a cursor in xfs_bmap_add_extent_unwritten_real Christoph Hellwig
2017-11-03 14:45 ` [PATCH 07/21] xfs: treat idx as a cursor in xfs_bmap_del_extent_* Christoph Hellwig
2017-11-03 14:45 ` [PATCH 08/21] xfs: treat idx as a cursor in xfs_bmap_collapse_extents Christoph Hellwig
2017-11-03 14:45 ` [PATCH 09/21] xfs: pass an on-disk extent to xfs_bmbt_validate_extent Christoph Hellwig
2017-11-03 15:18 ` Brian Foster
2017-11-03 16:33 ` Darrick J. Wong
2017-11-03 14:45 ` [PATCH 10/21] xfs: iterate over extents in xfs_iextents_copy Christoph Hellwig
2017-11-03 14:45 ` [PATCH 11/21] xfs: iterate over extents in xfs_bmap_extents_to_btree Christoph Hellwig
2017-11-03 14:45 ` [PATCH 12/21] xfs: introduce the xfs_iext_cursor abstraction Christoph Hellwig
2017-11-03 15:18 ` Brian Foster
2017-11-03 17:06 ` Darrick J. Wong
2017-11-03 14:45 ` [PATCH 13/21] xfs: iterate backwards in xfs_reflink_cancel_cow_blocks Christoph Hellwig
2017-11-03 16:52 ` Darrick J. Wong [this message]
2017-11-03 14:45 ` [PATCH 14/21] xfs: simplify xfs_reflink_convert_cow Christoph Hellwig
2017-11-03 16:55 ` Darrick J. Wong
2017-11-06 8:47 ` Christoph Hellwig
2017-11-03 14:45 ` [PATCH 15/21] xfs: remove support for inlining data/extents into the inode fork Christoph Hellwig
2017-11-03 16:55 ` Darrick J. Wong
2017-11-03 14:45 ` [PATCH 16/21] xfs: allow unaligned extent records in xfs_bmbt_disk_set_all Christoph Hellwig
2017-11-03 14:45 ` [PATCH 17/21] xfs: use a b+tree for the in-core extent list Christoph Hellwig
2017-11-03 17:35 ` Darrick J. Wong
2017-11-08 13:50 ` Brian Foster
2017-11-08 17:19 ` Christoph Hellwig
2017-11-03 14:45 ` [PATCH 18/21] xfs: remove the nr_extents argument to xfs_iext_insert Christoph Hellwig
2017-11-03 14:45 ` [PATCH 19/21] xfs: remove the nr_extents argument to xfs_iext_remove Christoph Hellwig
2017-11-03 14:45 ` [PATCH 20/21] xfs: pass struct xfs_bmbt_irec to xfs_bmbt_validate_extent Christoph Hellwig
2017-11-03 16:41 ` Darrick J. Wong
2017-11-03 14:45 ` [PATCH 21/21] xfs: move xfs_bmbt_irec and xfs_exntst_t to xfs_types.h Christoph Hellwig
2017-11-03 16:38 ` Darrick J. Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171103165236.GN4911@magnolia \
--to=darrick.wong@oracle.com \
--cc=hch@lst.de \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).