[PATCH] xfs: remove duplicate INO1_WRITTEN check

Jiangshan Yi posted 1 patch 1 week, 4 days ago
fs/xfs/libxfs/xfs_exchmaps.c | 10 ----------
1 file changed, 10 deletions(-)
[PATCH] xfs: remove duplicate INO1_WRITTEN check
Posted by Jiangshan Yi 1 week, 4 days ago
Commit a23eca88448e ("xfs: fix exchange-range reflink flag clearing
issue with INO1_WRITTEN") duplicated commit b2d5a81dae38 ("xfs: fix
exchange-range reflink flag clearing issue with INO1_WRITTEN"), so
xmi_can_exchange_reflink_flags() ended up with two identical
XFS_EXCHMAPS_INO1_WRITTEN checks.  The second one is dead code,
since the first one already returned false.  Remove it.

Signed-off-by: Jiangshan Yi <yijiangshan@kylinos.cn>
---
 fs/xfs/libxfs/xfs_exchmaps.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/fs/xfs/libxfs/xfs_exchmaps.c b/fs/xfs/libxfs/xfs_exchmaps.c
index 49eda8d0994d..3efed37cb98a 100644
--- a/fs/xfs/libxfs/xfs_exchmaps.c
+++ b/fs/xfs/libxfs/xfs_exchmaps.c
@@ -959,16 +959,6 @@ xmi_can_exchange_reflink_flags(
 {
 	struct xfs_mount		*mp = req->ip1->i_mount;
 
-	/*
-	 * The INO1_WRITTEN optimization can skip exchanging hole and
-	 * unwritten mappings, which means we cannot guarantee that all
-	 * shared extents actually moved to the other file.  Clearing the
-	 * reflink flag of an inode that still holds shared extents breaks
-	 * the CoW write path, so refuse to exchange the flags in that case.
-	 */
-	if (req->flags & XFS_EXCHMAPS_INO1_WRITTEN)
-		return false;
-
 	/*
 	 * The INO1_WRITTEN optimization can skip exchanging hole and
 	 * unwritten mappings, which means we cannot guarantee that all
-- 
2.25.1
Re: [PATCH] xfs: remove duplicate INO1_WRITTEN check
Posted by Carlos Maiolino 1 week, 1 day ago
On Mon, 14 Sep 2026 16:21:11 +0800, Jiangshan Yi wrote:
> Commit a23eca88448e ("xfs: fix exchange-range reflink flag clearing
> issue with INO1_WRITTEN") duplicated commit b2d5a81dae38 ("xfs: fix
> exchange-range reflink flag clearing issue with INO1_WRITTEN"), so
> xmi_can_exchange_reflink_flags() ended up with two identical
> XFS_EXCHMAPS_INO1_WRITTEN checks.  The second one is dead code,
> since the first one already returned false.  Remove it.
> 
> [...]

Applied to for-next, thanks!

[1/1] xfs: remove duplicate INO1_WRITTEN check
      commit: ce2b91bebc7bc0495fe3ad5ee47e4977fbb77fc5

Best regards,
-- 
Carlos Maiolino <cem@kernel.org>
Re: [PATCH] xfs: remove duplicate INO1_WRITTEN check
Posted by Darrick J. Wong 1 week, 3 days ago
On Mon, Sep 14, 2026 at 04:21:11PM +0800, Jiangshan Yi wrote:
> Commit a23eca88448e ("xfs: fix exchange-range reflink flag clearing
> issue with INO1_WRITTEN") duplicated commit b2d5a81dae38 ("xfs: fix
> exchange-range reflink flag clearing issue with INO1_WRITTEN"), so
> xmi_can_exchange_reflink_flags() ended up with two identical
> XFS_EXCHMAPS_INO1_WRITTEN checks.  The second one is dead code,
> since the first one already returned false.  Remove it.
> 
> Signed-off-by: Jiangshan Yi <yijiangshan@kylinos.cn>

Not sure why b2d5a81dae38 got committed twice, but yes this patch is
correct.
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>

--D

> ---
>  fs/xfs/libxfs/xfs_exchmaps.c | 10 ----------
>  1 file changed, 10 deletions(-)
> 
> diff --git a/fs/xfs/libxfs/xfs_exchmaps.c b/fs/xfs/libxfs/xfs_exchmaps.c
> index 49eda8d0994d..3efed37cb98a 100644
> --- a/fs/xfs/libxfs/xfs_exchmaps.c
> +++ b/fs/xfs/libxfs/xfs_exchmaps.c
> @@ -959,16 +959,6 @@ xmi_can_exchange_reflink_flags(
>  {
>  	struct xfs_mount		*mp = req->ip1->i_mount;
>  
> -	/*
> -	 * The INO1_WRITTEN optimization can skip exchanging hole and
> -	 * unwritten mappings, which means we cannot guarantee that all
> -	 * shared extents actually moved to the other file.  Clearing the
> -	 * reflink flag of an inode that still holds shared extents breaks
> -	 * the CoW write path, so refuse to exchange the flags in that case.
> -	 */
> -	if (req->flags & XFS_EXCHMAPS_INO1_WRITTEN)
> -		return false;
> -
>  	/*
>  	 * The INO1_WRITTEN optimization can skip exchanging hole and
>  	 * unwritten mappings, which means we cannot guarantee that all
> -- 
> 2.25.1
> 
>