Patch "fsdax: remove zeroing code from dax_unshare_iter" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    fsdax: remove zeroing code from dax_unshare_iter

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     fsdax-remove-zeroing-code-from-dax_unshare_iter.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit f999b8de8213e3a2349ead2f8705bc8ff7316e52
Author: Darrick J. Wong <djwong@xxxxxxxxxx>
Date:   Thu Oct 3 08:09:32 2024 -0700

    fsdax: remove zeroing code from dax_unshare_iter
    
    [ Upstream commit 95472274b6fed8f2d30fbdda304e12174b3d4099 ]
    
    Remove the code in dax_unshare_iter that zeroes the destination memory
    because it's not necessary.
    
    If srcmap is unwritten, we don't have to do anything because that
    unwritten extent came from the regular file mapping, and unwritten
    extents cannot be shared.  The same applies to holes.
    
    Furthermore, zeroing to unshare a mapping is just plain wrong because
    unsharing means copy on write, and we should be copying data.
    
    This is effectively a revert of commit 13dd4e04625f ("fsdax: unshare:
    zero destination if srcmap is HOLE or UNWRITTEN")
    
    Cc: ruansy.fnst@xxxxxxxxxxx
    Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/172796813311.1131942.16033376284752798632.stgit@frogsfrogsfrogs
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx>
    Stable-dep-of: 50793801fc7f ("fsdax: dax_unshare_iter needs to copy entire blocks")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/dax.c b/fs/dax.c
index 2f7f5e2d167dd..5e7fc5017570d 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -1276,14 +1276,6 @@ static s64 dax_unshare_iter(struct iomap_iter *iter)
 	if (ret < 0)
 		goto out_unlock;
 
-	/* zero the distance if srcmap is HOLE or UNWRITTEN */
-	if (srcmap->flags & IOMAP_F_SHARED || srcmap->type == IOMAP_UNWRITTEN) {
-		memset(daddr, 0, length);
-		dax_flush(iomap->dax_dev, daddr, length);
-		ret = length;
-		goto out_unlock;
-	}
-
 	ret = dax_iomap_direct_access(srcmap, pos, length, &saddr, NULL);
 	if (ret < 0)
 		goto out_unlock;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux