All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Brauner <brauner@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Christian Brauner <brauner@kernel.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL] vfs misc
Date: Fri, 10 May 2024 13:46:24 +0200	[thread overview]
Message-ID: <20240510-vfs-misc-22ed27ba6cd7@brauner> (raw)

Hey Linus,

/* Summary */
This contains the usual miscellaneous features, cleanups, and fixes for
vfs and individual fses.

Features
========

* Free up FMODE_* bits. I've freed up bits 6, 7, 8, and 24. That means
  we now have six free FMODE_* bits in total.

* Add FOP_HUGE_PAGES flag (follow-up to FMODE_* cleanup).

* Add fd_raw cleanup class so we can make use of automatic cleanup
  provided by CLASS(fd_raw, f)(fd) for O_PATH fds as well.

* Optimize seq_puts().

* Simplify __seq_puts().

* Add new anon_inode_getfile_fmode() api to allow specifying f_mode
  instead of open-coding it in multiple places.

* Annotate struct file_handle with __counted_by() and use struct_size().

* Warn in get_file() whether f_count resurrection from zero is
  attempted (epoll/drm discussion).

* Folio-sophize aio.

* Export the subvolume id in statx() for both btrfs and bcachefs.

* Relax linkat(AT_EMPTY_PATH) requirements.

* Add F_DUPFD_QUERY fcntl() allowing to compare two file descriptors for
  dup*() equality replacing kcmp().

Cleanups
========

* Compile out swapfile inode checks when swap isn't enabled.

* Use (0 << n) notation for FMODE_* bitshifts for clarity.

* Remove redundant variable assignment in fs/direct-io

* Cleanup uses of strncpy in orangefs.

* Speed up and cleanup writeback.

* Move fsparam_string_empty() helper into header since it's currently
  open-coded in multiple places.

* Add kernel-doc comments to proc_create_net_data_write().

* Don't needlessly read dentry->d_flags twice.

Fixes
=====

* Fix out-of-range warning in nilfs2.

* Fix ecryptfs overflow due to wrong encryption packet size calculation.

* Fix overly long line in xfs file_operations.
  (follow-up to FMODE_* cleanup)

* Don't raise FOP_BUFFER_{R,W}ASYNC for directories in xfs.
  (follow-up to FMODE_* cleanup)

* Don't call xfs_file_open from xfs_dir_open (follow-up to FMODE_* cleanup)

* Fix stable offset api to prevent endless loops.

* Fix afs file server rotations.

* Prevent xattr node from overflowing the eraseblock in jffs2.

* Move fdinfo PTRACE_MODE_READ procfs check into the inode .permission operation
  instead of open operation since this causes userspace regressions.

/* Testing */
clang: Debian clang version 16.0.6 (26)
gcc: (Debian 13.2.0-24)

All patches are based on v6.9-rc1 and have been sitting in linux-next.
No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with other trees
================================

[1] linux-next: manual merge of the vfs-brauner tree with the ext4 tree
    https://lore.kernel.org/linux-next/20240508103436.589bb440@canb.auug.org.au

[2] linux-next: manual merge of the block tree with the vfs-brauner, vfs trees
    https://lore.kernel.org/linux-next/20240416124426.624cfaf9@canb.auug.org.au

[3] linux-next: manual merge of the block tree with the vfs-brauner tree
    https://lore.kernel.org/linux-next/20240402112137.1ee85957@canb.auug.org.au

Merge conflicts with mainline
=============================

There'll be a merge conflict with mainline stemming from the addition of
FMODE_WRITE_RESTRICTED and the conversion of FMODE_* flags to (1 << n)
bit shitfs. The conflict can be resolved as follows:

diff --cc include/linux/fs.h
index 8dfd53b52744,5b351c1e6f58..000000000000
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@@ -110,23 -110,24 +110,26 @@@ typedef int (dio_iodone_t)(struct kioc
   */

  /* file is open for reading */
- #define FMODE_READ            ((__force fmode_t)0x1)
+ #define FMODE_READ            ((__force fmode_t)(1 << 0))
  /* file is open for writing */
- #define FMODE_WRITE           ((__force fmode_t)0x2)
+ #define FMODE_WRITE           ((__force fmode_t)(1 << 1))
  /* file is seekable */
- #define FMODE_LSEEK           ((__force fmode_t)0x4)
+ #define FMODE_LSEEK           ((__force fmode_t)(1 << 2))
  /* file can be accessed using pread */
- #define FMODE_PREAD           ((__force fmode_t)0x8)
+ #define FMODE_PREAD           ((__force fmode_t)(1 << 3))
  /* file can be accessed using pwrite */
- #define FMODE_PWRITE          ((__force fmode_t)0x10)
+ #define FMODE_PWRITE          ((__force fmode_t)(1 << 4))
  /* File is opened for execution with sys_execve / sys_uselib */
- #define FMODE_EXEC            ((__force fmode_t)0x20)
+ #define FMODE_EXEC            ((__force fmode_t)(1 << 5))
 +/* File writes are restricted (block device specific) */
- #define FMODE_WRITE_RESTRICTED  ((__force fmode_t)0x40)
++#define FMODE_WRITE_RESTRICTED  ((__force fmode_t)(1 << 6))
+
 -/* FMODE_* bits 6 to 8 */
++/* FMODE_* bits 7 to 8 */
+
  /* 32bit hashes as llseek() offset (for directories) */
- #define FMODE_32BITHASH         ((__force fmode_t)0x200)
+ #define FMODE_32BITHASH         ((__force fmode_t)(1 << 9))
  /* 64bit hashes as llseek() offset (for directories) */
- #define FMODE_64BITHASH         ((__force fmode_t)0x400)
+ #define FMODE_64BITHASH         ((__force fmode_t)(1 << 10))

  /*
   * Don't update ctime and mtime.

The following changes since commit 4cece764965020c22cff7665b18a012006359095:

  Linux 6.9-rc1 (2024-03-24 14:10:05 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.10.misc

for you to fetch changes up to da0e01cc7079124cb1e86a2c35dd90ba12897e1a:

  afs: Fix fileserver rotation getting stuck (2024-05-10 08:49:17 +0200)

Please consider pulling these changes from the signed vfs-6.10.misc tag.

Thanks!
Christian

----------------------------------------------------------------
vfs-6.10.misc

----------------------------------------------------------------
Alexey Dobriyan (1):
      vfs, swap: compile out IS_SWAPFILE() on swapless configs

Arnd Bergmann (1):
      nilfs2: fix out-of-range warning

Brian Kubisiak (1):
      ecryptfs: Fix buffer size for tag 66 packet

Christian Brauner (7):
      Merge series 'Fixes and cleanups to fs-writeback' of https://lore.kernel.org/r/20240228091958.288260-1-shikemeng@huaweicloud.com
      Merge patch series 'fs: aio: more folio conversion' of https://lore.kernel.org/r/20240321131640.948634-1-wangkefeng.wang@huawei.com
      fs: claw back a few FMODE_* bits
      fs: use bit shifts for FMODE_* flags
      Merge patch series 'Fix shmem_rename2 directory offset calculation' of https://lore.kernel.org/r/20240415152057.4605-1-cel@kernel.org
      file: add fd_raw cleanup class
      selftests: add F_DUPDFD_QUERY selftests

Christoph Hellwig (3):
      xfs: fix overly long line in the file_operations
      xfs: drop fop_flags for directories
      xfs: don't call xfs_file_open from xfs_dir_open

Christophe JAILLET (2):
      seq_file: Optimize seq_puts()
      seq_file: Simplify __seq_puts()

Chuck Lever (3):
      libfs: Fix simple_offset_rename_exchange()
      libfs: Add simple_offset_rename() API
      shmem: Fix shmem_rename2()

Colin Ian King (1):
      fs/direct-io: remove redundant assignment to variable retval

David Howells (1):
      afs: Fix fileserver rotation getting stuck

Dawid Osuchowski (1):
      fs: Create anon_inode_getfile_fmode()

Gustavo A. R. Silva (1):
      fs: Annotate struct file_handle with __counted_by() and use struct_size()

Ilya Denisyev (1):
      jffs2: prevent xattr node from overflowing the eraseblock

Justin Stitt (1):
      orangefs: cleanup uses of strncpy

Kees Cook (1):
      fs: WARN when f_count resurrection is attempted

Kefeng Wang (3):
      fs: aio: use a folio in aio_setup_ring()
      fs: aio: use a folio in aio_free_ring()
      fs: aio: convert to ring_folios and internal_folios

Kemeng Shi (6):
      fs/writeback: avoid to writeback non-expired inode in kupdate writeback
      fs/writeback: bail out if there is no more inodes for IO and queued once
      fs/writeback: remove unused parameter wb of finish_writeback_work
      fs/writeback: only calculate dirtied_before when b_io is empty
      fs/writeback: correct comment of __wakeup_flusher_threads_bdi
      fs/writeback: remove unnecessary return in writeback_inodes_sb

Kent Overstreet (1):
      statx: stx_subvol

Linus Torvalds (2):
      vfs: relax linkat() AT_EMPTY_PATH - aka flink() - requirements
      fcntl: add F_DUPFD_QUERY fcntl()

Luis Henriques (SUSE) (1):
      fs_parser: move fsparam_string_empty() helper into header

Matthew Wilcox (Oracle) (1):
      fs: Add FOP_HUGE_PAGES

Tyler Hicks (Microsoft) (1):
      proc: Move fdinfo PTRACE_MODE_READ check into the inode .permission operation

Yang Li (1):
      fs: Add kernel-doc comments to proc_create_net_data_write()

linke li (1):
      fs/dcache: Re-use value stored to dentry->d_flags instead of re-reading

 block/bdev.c                                    |  2 +-
 block/fops.c                                    |  1 +
 drivers/dax/device.c                            |  2 +-
 fs/afs/rotate.c                                 |  8 ++-
 fs/aio.c                                        | 91 ++++++++++++------------
 fs/anon_inodes.c                                | 33 +++++++++
 fs/bcachefs/fs.c                                |  3 +
 fs/btrfs/file.c                                 |  4 +-
 fs/btrfs/inode.c                                |  3 +
 fs/dcache.c                                     |  2 +-
 fs/direct-io.c                                  |  1 -
 fs/ecryptfs/keystore.c                          |  4 +-
 fs/ext4/file.c                                  |  6 +-
 fs/ext4/super.c                                 |  4 --
 fs/f2fs/file.c                                  |  3 +-
 fs/fcntl.c                                      | 20 ++++++
 fs/fhandle.c                                    |  6 +-
 fs/fs-writeback.c                               | 57 ++++++++-------
 fs/hugetlbfs/inode.c                            |  5 +-
 fs/jffs2/xattr.c                                |  3 +
 fs/libfs.c                                      | 55 +++++++++++++--
 fs/namei.c                                      | 19 +++--
 fs/nilfs2/ioctl.c                               |  2 +-
 fs/orangefs/dcache.c                            |  4 +-
 fs/orangefs/namei.c                             | 26 +++----
 fs/orangefs/super.c                             | 17 ++---
 fs/overlayfs/params.c                           |  4 --
 fs/proc/fd.c                                    | 42 ++++++-----
 fs/proc/proc_net.c                              |  1 +
 fs/read_write.c                                 |  2 +-
 fs/seq_file.c                                   | 13 +---
 fs/stat.c                                       |  1 +
 fs/xfs/xfs_file.c                               | 10 +--
 include/linux/anon_inodes.h                     |  5 ++
 include/linux/file.h                            |  1 +
 include/linux/fs.h                              | 92 +++++++++++++++----------
 include/linux/fs_parser.h                       |  4 ++
 include/linux/hugetlb.h                         |  8 +--
 include/linux/namei.h                           |  1 +
 include/linux/seq_file.h                        | 13 +++-
 include/linux/shm.h                             |  5 --
 include/linux/stat.h                            |  1 +
 include/uapi/linux/fcntl.h                      | 14 ++--
 include/uapi/linux/stat.h                       |  4 +-
 io_uring/io_uring.c                             |  2 +-
 io_uring/rw.c                                   |  9 +--
 ipc/shm.c                                       | 10 +--
 mm/mmap.c                                       |  4 +-
 mm/shmem.c                                      |  3 +-
 tools/testing/selftests/core/close_range_test.c | 55 ++++++++++++++-
 50 files changed, 437 insertions(+), 248 deletions(-)

             reply	other threads:[~2024-05-10 11:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-10 11:46 Christian Brauner [this message]
2024-05-13 19:38 ` [GIT PULL] vfs misc pr-tracker-bot
  -- strict thread matches above, loose matches on Subject: below --
2025-03-22 10:12 Christian Brauner
2025-03-24 16:20 ` Linus Torvalds
2025-03-24 17:09   ` Mateusz Guzik
2025-03-24 21:00 ` pr-tracker-bot
2025-01-18 12:58 Christian Brauner
2025-01-20 18:59 ` pr-tracker-bot
2024-11-15 13:56 Christian Brauner
2024-11-18 19:49 ` pr-tracker-bot
2024-09-13 14:41 Christian Brauner
2024-09-16  7:34 ` pr-tracker-bot
2024-03-08 10:09 Christian Brauner
2024-03-11 18:33 ` pr-tracker-bot
2023-06-23 11:01 [GIT PULL] vfs: misc Christian Brauner
2023-06-26 17:34 ` pr-tracker-bot
2020-06-10 20:30 [git pull] vfs misc Al Viro
2020-06-11  1:50 ` pr-tracker-bot

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=20240510-vfs-misc-22ed27ba6cd7@brauner \
    --to=brauner@kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.