[GIT PULL] Hole punch vs page cache filling races fixes for 5.15-rc1

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

 



  Hello Linus,

  this is the last early pull request for the coming merge window. Could you
please pull from

git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git hole_punch_for_v5.15-rc1

to get patches that fix races leading to possible data corruption or stale
data exposure in multiple filesystems when hole punching races with
operations such as readahead. This is the series I was sending for the last
merge window but with your objection fixed - now filemap_fault() has been
modified to take invalidate_lock only when we need to create new page in
the page cache and / or bring it uptodate (see updated commit 730633f0b7f
"mm: Protect operations adding pages to page cache with invalidate_lock").

There are some conflicts of this series with changes in f2fs and folio
trees. The resolution is mostly obvious but I've pushed out suggested merge
(taken from Stephen Rothwell) to:

git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git hole_punch_fixes_merge

Top of the tree is 7882c55ef64a. The full shortlog is:

Jan Kara (13):
      mm: Fix comments mentioning i_mutex
      documentation: Sync file_operations members with reality
      mm: Protect operations adding pages to page cache with invalidate_lock
      mm: Add functions to lock invalidate_lock for two mappings
      ext4: Convert to use mapping->invalidate_lock
      ext2: Convert to using invalidate_lock
      xfs: Convert to use invalidate_lock
      xfs: Convert double locking of MMAPLOCK to use VFS helpers
      zonefs: Convert to using invalidate_lock
      f2fs: Convert to using invalidate_lock
      fuse: Convert to using invalidate_lock
      ceph: Fix race between hole punch and page fault
      cifs: Fix race between hole punch and page fault

Pavel Reichl (1):
      xfs: Refactor xfs_isilocked()

Randy Dunlap (1):
      filesystems/locking: fix Malformed table warning

The diffstat is

 Documentation/filesystems/locking.rst |  79 ++++++++++++------
 fs/ceph/addr.c                        |   9 ++-
 fs/ceph/file.c                        |   2 +
 fs/cifs/smb2ops.c                     |   2 +
 fs/ext2/ext2.h                        |  11 ---
 fs/ext2/file.c                        |   7 +-
 fs/ext2/inode.c                       |  12 +--
 fs/ext2/super.c                       |   3 -
 fs/ext4/ext4.h                        |  10 ---
 fs/ext4/extents.c                     |  25 +++---
 fs/ext4/file.c                        |  13 +--
 fs/ext4/inode.c                       |  47 ++++-------
 fs/ext4/ioctl.c                       |   4 +-
 fs/ext4/super.c                       |  13 ++-
 fs/ext4/truncate.h                    |   8 +-
 fs/f2fs/data.c                        |   8 +-
 fs/f2fs/f2fs.h                        |   1 -
 fs/f2fs/file.c                        |  62 +++++++--------
 fs/f2fs/super.c                       |   1 -
 fs/fuse/dax.c                         |  50 ++++++------
 fs/fuse/dir.c                         |  11 +--
 fs/fuse/file.c                        |  10 +--
 fs/fuse/fuse_i.h                      |   7 --
 fs/fuse/inode.c                       |   1 -
 fs/inode.c                            |   2 +
 fs/xfs/xfs_bmap_util.c                |  15 ++--
 fs/xfs/xfs_file.c                     |  13 +--
 fs/xfs/xfs_inode.c                    | 121 ++++++++++++++--------------
 fs/xfs/xfs_inode.h                    |   3 +-
 fs/xfs/xfs_super.c                    |   2 -
 fs/zonefs/super.c                     |  23 ++----
 fs/zonefs/zonefs.h                    |   7 +-
 include/linux/fs.h                    |  39 +++++++++
 mm/filemap.c                          | 145 ++++++++++++++++++++++++++++------
 mm/madvise.c                          |   2 +-
 mm/memory-failure.c                   |   2 +-
 mm/readahead.c                        |   2 +
 mm/rmap.c                             |  41 +++++-----
 mm/shmem.c                            |  20 ++---
 mm/truncate.c                         |   9 ++-
 40 files changed, 482 insertions(+), 360 deletions(-)

							Thanks
								Honza

-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux