[GIT PULL] fsdax,xfs: fix data corruption problems

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

 



Hi Linus,

Please pull this branch with changes for xfs for 6.2-rc1.  As promised,
this second pull request contains data corruption fixes for fsdax
filesystems that support mapping pmem storage to multiple files.  (IOWs,
XFS, which is the only fs that uses it.)

I anticipate a third pull request in a couple of days to start the
stabilization phase of 6.2, though seeing as it's the last workweek of
the year I could just as well punt to January.

As usual, I did a test-merge with the main upstream branch as of a few
minutes ago, and didn't see any conflicts.  Please let me know if you
encounter any problems.

--D

The following changes since commit 52f31ed228212ba572c44e15e818a3a5c74122c0:

xfs: dquot shrinker doesn't check for XFS_DQFLAG_FREEING (2022-12-08 08:29:58 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-6.2-merge-9

for you to fetch changes up to 4883f57a2d861a68588aefbf592f86d1e059f1ec:

xfs: remove restrictions for fsdax and reflink (2022-12-08 08:29:59 -0800)

----------------------------------------------------------------
New XFS/fsdax code for 6.2, part 2:

- Fixes for some serious data corruption problems that were introduced
in the 6.0 series allowing for files to share pmem.  These include:

- Invalidate mapped pages whenever we write to a shared pmem page so
that all the involved processes take a page fault so that they can
actually set up the COW
- Fix missing zeroing around a file range that is about to be written
and is backed by shared pmem
- Set up fsdax mappings to be shared any time we notice shared
storage, even on a read operation
- Fix the dax dedupe comparison function misusing iterators and doing no
comparison at all
- Fix missing implementation of the fallocate funshare command which led
to callers using the pagecache implementation on fsdax(!)
- Fix some broken inode reflink/dax state handling in XFS

Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>

----------------------------------------------------------------
Shiyang Ruan (8):
fsdax: introduce page->share for fsdax in reflink mode
fsdax: invalidate pages when CoW
fsdax: zero the edges if source is HOLE or UNWRITTEN
fsdax,xfs: set the shared flag when file extent is shared
fsdax: dedupe: iter two files at the same time
xfs: use dax ops for zero and truncate in fsdax mode
fsdax,xfs: port unshare to fsdax
xfs: remove restrictions for fsdax and reflink

fs/dax.c                   | 221 +++++++++++++++++++++++++++++++--------------
fs/xfs/xfs_ioctl.c         |   4 -
fs/xfs/xfs_iomap.c         |   6 +-
fs/xfs/xfs_iops.c          |   4 -
fs/xfs/xfs_reflink.c       |   8 +-
include/linux/dax.h        |   2 +
include/linux/mm_types.h   |   5 +-
include/linux/page-flags.h |   2 +-
8 files changed, 167 insertions(+), 85 deletions(-)



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux