* [git pull] vfs misc
@ 2020-06-10 20:30 Al Viro
2020-06-11 1:50 ` pr-tracker-bot
0 siblings, 1 reply; 18+ messages in thread
From: Al Viro @ 2020-06-10 20:30 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
A couple of trivial patches that fell through the cracks last cycle
The following changes since commit 8f3d9f354286745c751374f5f1fcafee6b3f3136:
Linux 5.7-rc1 (2020-04-12 12:35:55 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.misc
for you to fetch changes up to cc23402c1c2de8b1815212f3924cdbc3cda02b94:
fs: fix indentation in deactivate_super() (2020-05-29 10:35:25 -0400)
----------------------------------------------------------------
Nikolay Borisov (1):
vfs: Remove duplicated d_mountpoint check in __is_local_mountpoint
Yufen Yu (1):
fs: fix indentation in deactivate_super()
fs/namespace.c | 5 +----
fs/super.c | 2 +-
2 files changed, 2 insertions(+), 5 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL] vfs: misc
@ 2023-06-23 11:01 Christian Brauner
2023-06-26 17:34 ` pr-tracker-bot
0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2023-06-23 11:01 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains miscellaneous features, cleanups, and fixes for vfs and
individual fs.
Features
========
* Use mode 0600 for file created by cachefilesd so it can be run by
unprivileged users. This aligns them with directories which are
already created with mode 0700 by cachefilesd.
* Reorder a few members in struct file to prevent some false sharing
scenarios.
* Indicate that an eventfd is used a semaphore in the eventfd's fdinfo
procfs file.
* Add a missing uapi header for eventfd exposing relevant uapi defines.
* Let the VFS protect transitions of a superblock from read-only to
read-write in addition to the protection it already provides for
transitions from read-write to read-only. Protecting read-only to
read-write transitions allows filesystems such as ext4 to perform
internal writes, keeping writers away until the transition is
completed.
Cleanups
========
* Arnd removed the architecture specific arch_report_meminfo()
prototypes and added a generic one into procfs.h.
Note, we got a report about a warning in amdpgpu codepaths that
suggested this was bisectable to this change but we concluded it was a
false positive.
* Remove unused parameters from split_fs_names().
* Rename put_and_unmap_page() to unmap_and_put_page() to let the name
reflect the order of the cleanup operation that has to unmap before
the actual put.
* Unexport buffer_check_dirty_writeback() as it is not used outside of
block device aops.
* Stop allocating aio rings from highmem.
* Protecting read-{only,write} transitions in the VFS used open-coded
barriers in various places. Replace them with proper little helpers
and document both the helpers and all barrier interactions involved
when transitioning between read-{only,write} states.
* Use flexible array members in old readdir codepaths.
Fixes
=====
* Use the correct type __poll_t for epoll and eventfd.
* Replace all deprecated strlcpy() invocations, whose return value isn't
checked with an equivalent strscpy() call.
* Fix some kernel-doc warnings in fs/open.c
* Reduce the stack usage in jffs2's xattr codepaths finally getting
rid of this:
fs/jffs2/xattr.c:887:1: error: the frame size of 1088 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
royally annoying compilation warning.
* Use __FMODE_NONOTIFY instead of FMODE_NONOTIFY where an int and not
fmode_t is required to avoid fmode_t to integer degradation warnings.
* Create coredumps with O_WRONLY instead of O_RDWR. There's a long
explanation in that commit how O_RDWR is actually a bug which we found
out with the help of Linus and git archeology.
* Fix "no previous prototype" warnings in the pipe codepaths.
* Add overflow calculations for remap_verify_area() as a signed addition
overflow could be triggered in xfstests.
* Fix a null pointer dereference in sysv.
* Use an unsigned variable for length calculations in jfs avoiding
compilation warnings with gcc 13.
* Fix a dangling pipe pointer in the watch queue codepath.
* The legacy mount option parser provided as a fallback by the VFS for
filesystems not yet converted to the new mount api did prefix the
generated mount option string with a leading ',' causing issues for
some filesystems.
* Fix a repeated word in a comment in fs.h.
* autofs: Update the ctime when mtime is updated as mandated by POSIX.
/* Testing */
clang: Ubuntu clang version 15.0.7
gcc: (Ubuntu 12.2.0-3ubuntu1) 12.2.0
All patches are based on v6.4-rc2 and have been sitting in linux-next.
No build failures or warnings were observed. All old and new tests in
fstests, selftests, and LTP pass without regressions.
/* Conflicts */
There are two merge conflicts:
(1) This will cause a minor merge conflict with my v6.5/vfs.file pull
request which renames an internal helper that's used in cachefiles.
I would suggest to merge v6.5/vfs.misc first.
(2) linux-next: manual merge of the tip tree with the vfs-brauner tree
https://lore.kernel.org/all/20230622131108.19059f3c@canb.auug.org.au
At the time of creating this PR no merge conflicts showed up doing a
test-merge with current mainline.
The following changes since commit f1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6:
Linux 6.4-rc2 (2023-05-14 12:51:40 -0700)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/v6.5/vfs.misc
for you to fetch changes up to 2507135e4ff231a368eae38000a501da0b96c662:
readdir: Replace one-element arrays with flexible-array members (2023-06-21 09:06:59 +0200)
Please consider pulling these changes from the signed v6.5/vfs.misc tag.
Thanks!
Christian
----------------------------------------------------------------
v6.5/vfs.misc
----------------------------------------------------------------
Anuradha Weeraman (1):
fs/open.c: Fix W=1 kernel doc warnings
Arnd Bergmann (3):
fs: d_path: include internal.h
fs: pipe: reveal missing function protoypes
procfs: consolidate arch_report_meminfo declaration
Azeem Shaikh (1):
vfs: Replace all non-returning strlcpy with strscpy
Christoph Hellwig (1):
fs: unexport buffer_check_dirty_writeback
David Howells (1):
cachefiles: Allow the cache to be non-root
David Sterba (1):
fs: use UB-safe check for signed addition overflow in remap_verify_area
Fabian Frederick (1):
jffs2: reduce stack usage in jffs2_build_xattr_subsystem()
Fabio M. De Francesco (2):
highmem: Rename put_and_unmap_page() to unmap_and_put_page()
fs/aio: Stop allocating aio rings from HIGHMEM
Gustavo A. R. Silva (1):
readdir: Replace one-element arrays with flexible-array members
Jan Kara (2):
fs: Protect reconfiguration of sb read-write from racing writes
fs: Provide helpers for manipulating sb->s_readonly_remount
Jeff Layton (1):
autofs: set ctime as well when mtime changes on a dir
Kees Cook (1):
jfs: Use unsigned variable for length calculations
Mao Zhu (1):
fs: Fix comment typo
Min-Hua Chen (2):
fs: use correct __poll_t type
fs: fix incorrect fmode_t casts
Prince Kumar Maurya (1):
fs/sysv: Null check to prevent null-ptr-deref bug
Siddh Raman Pant (1):
watch_queue: prevent dangling pipe pointer
Thomas Weißschuh (1):
fs: avoid empty option when generating legacy mount string
Vladimir Sementsov-Ogievskiy (1):
coredump: require O_WRONLY instead of O_RDWR
Wen Yang (2):
eventfd: show the EFD_SEMAPHORE flag in fdinfo
eventfd: add a uapi header for eventfd userspace APIs
Yihuan Pan (1):
init: remove unused names parameter in split_fs_names()
chenzhiyin (1):
fs.h: Optimize file struct to prevent false sharing
arch/parisc/include/asm/pgtable.h | 3 ---
arch/powerpc/include/asm/pgtable.h | 3 ---
arch/s390/include/asm/pgtable.h | 3 ---
arch/s390/mm/pageattr.c | 1 +
arch/x86/include/asm/pgtable.h | 1 +
arch/x86/include/asm/pgtable_types.h | 3 ---
arch/x86/mm/pat/set_memory.c | 1 +
fs/aio.c | 26 ++++++++---------------
fs/autofs/root.c | 6 +++---
fs/buffer.c | 1 -
fs/cachefiles/namei.c | 3 ++-
fs/char_dev.c | 2 +-
fs/coredump.c | 2 +-
fs/d_path.c | 1 +
fs/eventfd.c | 12 ++++++-----
fs/eventpoll.c | 2 +-
fs/fs_context.c | 3 ++-
fs/internal.h | 41 ++++++++++++++++++++++++++++++++++++
fs/jffs2/build.c | 5 ++++-
fs/jffs2/xattr.c | 13 ++++++++----
fs/jffs2/xattr.h | 4 ++--
fs/jfs/namei.c | 6 +++---
fs/namespace.c | 25 ++++++++++++++--------
fs/open.c | 14 +++---------
fs/overlayfs/file.c | 2 +-
fs/readdir.c | 8 +++----
fs/remap_range.c | 5 ++++-
fs/super.c | 22 +++++++++++--------
fs/sysv/dir.c | 22 +++++++++----------
fs/sysv/itree.c | 4 ++++
fs/sysv/namei.c | 8 +++----
include/linux/eventfd.h | 8 ++-----
include/linux/fs.h | 20 ++++++++++++------
include/linux/highmem.h | 2 +-
include/linux/pipe_fs_i.h | 4 ----
include/linux/proc_fs.h | 2 ++
include/linux/watch_queue.h | 3 +--
include/uapi/linux/eventfd.h | 11 ++++++++++
init/do_mounts.c | 6 +++---
kernel/watch_queue.c | 12 +++++------
40 files changed, 188 insertions(+), 132 deletions(-)
create mode 100644 include/uapi/linux/eventfd.h
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2024-03-08 10:09 Christian Brauner
2024-03-11 18:33 ` pr-tracker-bot
0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2024-03-08 10:09 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains the usual miscellaneous features, cleanups, and fixes for vfs and
individual fses.
Features
========
* Support idmapped mounts for hugetlbfs.
* Add RWF_NOAPPEND flag for pwritev2(). This allows to fix a bug where
the passed offset is ignored if the file is O_APPEND. The new flag
allows a caller to enforce that the offset is honored to conform to
posix even if the file was opened in append mode.
* Move i_mmap_rwsem in struct address_space to avoid false sharing
between i_mmap and i_mmap_rwsem.
* Convert efs, qnx4, and coda to use the new mount api.
* Add a generic is_dot_dotdot() helper that's used by various
filesystems and the VFS code instead of open-coding it mutliple times.
* Recently we've added stable offsets which allows stable ordering
when iterating directories exported through NFS on e.g., tmpfs
filesystems. Originally an xarray was used for the offset map but that
caused slab fragmentation issues over time. Tis switches the offset
map to the maple tree which has a dense mode that handles this
scenario a lot better. Includes tests.
* Finally merge the case-insensitive improvement series Gabriel has been
working on for a long time. This cleanly propagates case insensitive
operations through ->s_d_op which in turn allows us to remove the
quite ugly generic_set_encrypted_ci_d_ops() operations. It also
improves performance by trying a case-sensitive comparison first and
then fallback to case-insensitive lookup if that fails. This also
fixes a bug where overlayfs would be able to be mounted over a case
insensitive directory which would lead to all sort of odd behaviors.
Cleanups
========
* Make file_dentry() a simple accessor now that ->d_real() is
simplified because of the backing file work we did the last two
cycles.
* Use the dedicated file_mnt_idmap helper in ntfs3.
* Use smp_load_acquire/store_release() in the i_size_read/write helpers
and thus remove the hack to handle i_size reads in the filemap code.
* The SLAB_MEM_SPREAD is a nop now. Remove it from various places in fs/
* It's no longer necessary to perform a second built-in initramfs unpack
call because we retain the contents of the previous extraction. Remove it.
* Now that we have removed various allocators kfree_rcu() always works
with kmem caches and kmalloc(). So simplify various places that only
use an rcu callback in order to handle the kmem cache case.
* Convert the pipe code to use a lockdep comparison function instead of
open-coding the nesting making lockdep validation easier.
* Move code into fs-writeback.c that was located in a header but can be
made static as it's only used in that one file.
* Rewrite the alignment checking iterators for iovec and bvec to be
easier to read, and also significantly more compact in terms of
generated code. This saves 270 bytes of text on x86-64 (with clang-18)
and 224 bytes on arm64 (with gcc-13). In profiles it also saves a bit
of time for the same workload.
* Switch various places to use KMEM_CACHE instead of kmem_cache_create().
* Use inode_set_ctime_to_ts() in inode_set_ctime_current()
* Use kzalloc() in name_to_handle_at() to avoid kernel infoleak.
* Various smaller cleanups for eventfds.
Fixes
=====
* Fix various comments and typos, and unneeded initializations.
* Fix stack allocation hack for clang in the select code.
* Improve dump_mapping() debug code on a best-effort basis.
* Fix build errors in various selftests.
* Avoid wrap-around instrumentation in various places.
* Don't allow user namespaces without an an idmapping written to be used
for idmapped mounts.
* Fix sysv sb_read() call.
* Fix fallback implementation of the get_name() export operation.
/* Testing */
clang: Debian clang version 16.0.6 (19)
gcc: (Debian 13.2.0-7) 13.2.0
All patches are based on v6.8-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 scsi-mkp tree with the vfs-brauner tree
https://lore.kernel.org/linux-next/20240227153716.43e5cbad@canb.auug.org.au
Merge conflicts with mainline
=============================
No known conflicts.
The following changes since commit 6613476e225e090cc9aad49be7fa504e290dd33d:
Linux 6.8-rc1 (2024-01-21 14:11:32 -0800)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.9.misc
for you to fetch changes up to 09406ad8e5105729291a7639160e0cd51c9e0c6c:
Merge tag 'for-next-6.9' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krisman/unicode into vfs.misc (2024-03-07 11:55:41 +0100)
Please consider pulling these changes from the signed vfs-6.9.misc tag.
Thanks!
Christian
----------------------------------------------------------------
vfs-6.9.misc
----------------------------------------------------------------
Alexander Mikhalitsyn (1):
ntfs3: use file_mnt_idmap helper
Amir Goldstein (2):
fs: make file_dentry() a simple accessor
fs: remove the inode argument to ->d_real() method
Andreas Gruenbacher (1):
fs: Wrong function name in comment
Arnd Bergmann (1):
fs/select: rework stack allocation hack for clang
Baokun Li (3):
fs: make the i_size_read/write helpers be smp_load_acquire/store_release()
Revert "mm/filemap: avoid buffered read/write race to read inconsistent data"
asm-generic: remove extra type checking in acquire/release for non-SMP case
Baolin Wang (1):
fs: improve dump_mapping() robustness
Bill O'Donnell (2):
efs: convert efs to use the new mount api
qnx4: convert qnx4 to use the new mount api
Chen Hanxiao (1):
__fs_parse: Correct a documentation comment
Chengming Zhou (10):
vfs: remove SLAB_MEM_SPREAD flag usage
sysv: remove SLAB_MEM_SPREAD flag usage
romfs: remove SLAB_MEM_SPREAD flag usage
reiserfs: remove SLAB_MEM_SPREAD flag usage
qnx6: remove SLAB_MEM_SPREAD flag usage
proc: remove SLAB_MEM_SPREAD flag usage
openpromfs: remove SLAB_MEM_SPREAD flag usage
minix: remove SLAB_MEM_SPREAD flag usage
jfs: remove SLAB_MEM_SPREAD flag usage
efs: remove SLAB_MEM_SPREAD flag usage
Christian Brauner (3):
Merge tag 'exportfs-6.9' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/cel/linux
Merge series 'Use Maple Trees for simple_offset utilities' of https://lore.kernel.org/r/170820083431.6328.16233178852085891453.stgit@91.116.238.104.host.secureserver.net
Merge tag 'for-next-6.9' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krisman/unicode into vfs.misc
Chuck Lever (6):
fs: Create a generic is_dot_dotdot() utility
libfs: Re-arrange locking in offset_iterate_dir()
libfs: Define a minimum directory offset
libfs: Add simple_offset_empty()
maple_tree: Add mtree_alloc_cyclic()
libfs: Convert simple directory offsets to use a Maple Tree
David Disseldorp (1):
initramfs: remove duplicate built-in __initramfs_start unpacking
David Howells (1):
Convert coda to use the new mount API
Dmitry Antipov (2):
fs: prefer kfree_rcu() in fasync_remove_entry()
eventpoll: prefer kfree_rcu() in __ep_remove()
Gabriel Krisman Bertazi (11):
libfs: Attempt exact-match comparison first during casefolded lookup
ovl: Always reject mounting over case-insensitive directories
fscrypt: Factor out a helper to configure the lookup dentry
fscrypt: Drop d_revalidate for valid dentries during lookup
fscrypt: Drop d_revalidate once the key is added
libfs: Merge encrypted_ci_dentry_ops and ci_dentry_ops
libfs: Add helper to choose dentry operations at mount-time
ext4: Configure dentry operations at dentry-creation time
f2fs: Configure dentry operations at dentry-creation time
ubifs: Configure dentry operations at dentry-creation time
libfs: Drop generic_set_encrypted_ci_d_ops
Giuseppe Scrivano (1):
hugetlbfs: support idmapped mounts
Hu Yadi (1):
selftests/filesystems:fix build error in overlayfs
Hu.Yadi (1):
selftests/move_mount_set_group:Make tests build with old libc
Huang Xiaojia (1):
epoll: Remove ep_scan_ready_list() in comments
Jay (1):
fs: fix a typo in attr.c
Jens Axboe (1):
iov_iter: streamline iovec/bvec alignment iteration
JonasZhou (1):
fs/address_space: move i_mmap_rwsem to mitigate a false sharing with i_mmap.
Kees Cook (2):
iov_iter: Avoid wrap-around instrumentation in copy_compat_iovec_from_user()
select: Avoid wrap-around instrumentation in do_sys_poll()
Kemeng Shi (1):
writeback: move wb_wakeup_delayed defination to fs-writeback.c
Kent Overstreet (1):
fs/pipe: Convert to lockdep_cmp_fn
Kunwu Chan (3):
buffer: Use KMEM_CACHE instead of kmem_cache_create()
fs: Use KMEM_CACHE instead of kmem_cache_create
mbcache: Simplify the allocation of slab caches
Li zeming (1):
libfs: Remove unnecessary ‘0’ values from ret
Liam R. Howlett (1):
test_maple_tree: testing the cyclic allocation
Nguyen Dinh Phi (1):
fs: use inode_set_ctime_to_ts to set inode ctime to current time
Nikita Zhandarovich (1):
do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak
Randy Dunlap (1):
fs/hfsplus: use better @opf description
Rich Felker (1):
vfs: add RWF_NOAPPEND flag for pwritev2
Taylor Jackson (1):
fs/mnt_idmapping.c: Return -EINVAL when no map is written
Tetsuo Handa (1):
sysv: don't call sb_bread() with pointers_lock held
Trond Myklebust (1):
exportfs: fix the fallback implementation of the get_name export operation
Vincenzo Mezzela (1):
docs: filesystems: fix typo in docs
Wen Yang (3):
eventfd: add a BUILD_BUG_ON() to ensure consistency between EFD_SEMAPHORE and the uapi
eventfd: move 'eventfd-count' printing out of spinlock
eventfd: strictly check the count parameter of eventfd_write to avoid inputting illegal strings
Documentation/filesystems/files.rst | 2 +-
Documentation/filesystems/locking.rst | 2 +-
Documentation/filesystems/vfs.rst | 16 +-
fs/attr.c | 2 +-
fs/backing-file.c | 4 +-
fs/buffer.c | 10 +-
fs/coda/inode.c | 143 ++++++++++-----
fs/crypto/fname.c | 8 +-
fs/crypto/hooks.c | 15 +-
fs/dcache.c | 2 +-
fs/ecryptfs/crypto.c | 10 --
fs/efs/super.c | 118 ++++++++----
fs/eventfd.c | 16 +-
fs/eventpoll.c | 16 +-
fs/exportfs/expfs.c | 2 +-
fs/ext4/namei.c | 1 -
fs/ext4/super.c | 1 +
fs/f2fs/f2fs.h | 11 --
fs/f2fs/namei.c | 1 -
fs/f2fs/super.c | 1 +
fs/fcntl.c | 8 +-
fs/fhandle.c | 2 +-
fs/fs-writeback.c | 25 +++
fs/fs_parser.c | 4 +-
fs/hfsplus/wrapper.c | 2 +-
fs/hugetlbfs/inode.c | 23 ++-
fs/inode.c | 7 +-
fs/jfs/super.c | 2 +-
fs/libfs.c | 200 +++++++++++----------
fs/mbcache.c | 4 +-
fs/minix/inode.c | 2 +-
fs/mnt_idmapping.c | 2 +-
fs/namei.c | 6 +-
fs/ntfs3/namei.c | 2 +-
fs/openpromfs/inode.c | 2 +-
fs/overlayfs/params.c | 14 +-
fs/overlayfs/super.c | 52 +++---
fs/pipe.c | 81 ++++-----
fs/proc/inode.c | 2 +-
fs/qnx4/inode.c | 47 +++--
fs/qnx6/inode.c | 2 +-
fs/reiserfs/super.c | 1 -
fs/romfs/super.c | 4 +-
fs/select.c | 15 +-
fs/sysv/inode.c | 2 +-
fs/sysv/itree.c | 10 +-
fs/ubifs/dir.c | 1 -
fs/ubifs/super.c | 1 +
include/asm-generic/barrier.h | 2 -
include/linux/backing-dev.h | 1 -
include/linux/dcache.h | 18 +-
include/linux/fs.h | 61 ++++++-
include/linux/fscrypt.h | 66 ++++++-
include/linux/maple_tree.h | 7 +
include/linux/poll.h | 4 -
include/uapi/linux/fs.h | 5 +-
init/initramfs.c | 2 -
lib/iov_iter.c | 60 ++++---
lib/maple_tree.c | 93 ++++++++++
lib/test_maple_tree.c | 44 +++++
mm/backing-dev.c | 25 ---
mm/filemap.c | 9 -
mm/shmem.c | 4 +-
.../selftests/filesystems/overlayfs/dev_in_maps.c | 10 +-
.../move_mount_set_group_test.c | 4 +-
65 files changed, 816 insertions(+), 503 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2024-05-10 11:46 Christian Brauner
2024-05-13 19:38 ` pr-tracker-bot
0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2024-05-10 11:46 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
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(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2024-09-13 14:41 Christian Brauner
2024-09-16 7:34 ` pr-tracker-bot
0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2024-09-13 14:41 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains the usual pile of misc updates:
Features:
- Add F_CREATED_QUERY fcntl() that allows userspace to query whether a
file was actually created. Often userspace wants to know whether an
O_CREATE request did actually create a file without using O_EXCL. The
current logic is that to first attempts to open the file without
O_CREAT | O_EXCL and if ENOENT is returned userspace tries again with
both flags. If that succeeds all is well. If it now reports EEXIST it
retries.
That works fairly well but some corner cases make this more involved.
If this operates on a dangling symlink the first openat() without
O_CREAT | O_EXCL will return ENOENT but the second openat() with
O_CREAT | O_EXCL will fail with EEXIST. The reason is that openat()
without O_CREAT | O_EXCL follows the symlink while O_CREAT | O_EXCL
doesn't for security reasons. So it's not something we can really
change unless we add an explicit opt-in via O_FOLLOW which seems
really ugly.
All available workarounds are really nasty (fanotify, bpf lsm etc) so
add a simple fcntl().
- Try an opportunistic lookup for O_CREAT. Today, when opening a file
we'll typically do a fast lookup, but if O_CREAT is set, the kernel
always takes the exclusive inode lock. This was likely done with the
expectation that O_CREAT means that we always expect to do the create,
but that's often not the case. Many programs set O_CREAT even in
scenarios where the file already exists (see related F_CREATED_QUERY
patch motivation above).
The series contained in the pr rearranges the pathwalk-for-open code
to also attempt a fast_lookup in certain O_CREAT cases. If a positive
dentry is found, the inode_lock can be avoided altogether and it can
stay in rcuwalk mode for the last step_into.
- Expose the 64 bit mount id via name_to_handle_at().
Now that we provide a unique 64-bit mount ID interface in statx(2), we
can now provide a race-free way for name_to_handle_at(2) to provide a
file handle and corresponding mount without needing to worry about
racing with /proc/mountinfo parsing or having to open a file just to
do statx(2).
While this is not necessary if you are using AT_EMPTY_PATH and don't
care about an extra statx(2) call, users that pass full paths into
name_to_handle_at(2) need to know which mount the file handle comes
from (to make sure they don't try to open_by_handle_at a file handle
from a different filesystem) and switching to AT_EMPTY_PATH would
require allocating a file for every name_to_handle_at(2) call
- Add a per dentry expire timeout to autofs.
There are two fairly well known automounter map formats, the autofs
format and the amd format (more or less System V and Berkley).
Some time ago Linux autofs added an amd map format parser that
implemented a fair amount of the amd functionality. This was done
within the autofs infrastructure and some functionality wasn't
implemented because it either didn't make sense or required extra
kernel changes. The idea was to restrict changes to be within the
existing autofs functionality as much as possible and leave changes
with a wider scope to be considered later.
One of these changes is implementing the amd options:
1) "unmount", expire this mount according to a timeout (same as the
current autofs default).
2) "nounmount", don't expire this mount (same as setting the autofs
timeout to 0 except only for this specific mount) .
3) "utimeout=<seconds>", expire this mount using the specified
timeout (again same as setting the autofs timeout but only for
this mount).
To implement these options per-dentry expire timeouts need to be
implemented for autofs indirect mounts. This is because all map keys
(mounts) for autofs indirect mounts use an expire timeout stored in
the autofs mount super block info. structure and all indirect mounts
use the same expire timeout.
Fixes:
- Fix missing fput for FSCONFIG_SET_FD in autofs.
- Use param->file for FSCONFIG_SET_FD in coda.
- Delete the 'fs/netfs' proc subtreee when netfs module exits.
- Make sure that struct uid_gid_map fits into a single cacheline.
- Don't flush in-flight wb switches for superblocks without cgroup writeback.
- Correcting the idmapping mount example in the idmapping documentation.
- Fix a race between evice_inodes() and find_inode() and iput().
- Refine the show_inode_state() macro definition in writeback code.
- Prevent dump_mapping() from accessing invalid dentry.d_name.name.
- Show actual source for debugfs in /proc/mounts.
- Annotate data-race of busy_poll_usecs in eventpoll.
- Don't WARN for racy path_noexec check in exec code.
- Handle OOM on mnt_warn_timestamp_expiry().
- Fix some spelling in the iomap design documentation.
- Fix typo in procfs comment.
- Fix typo in fs/namespace.c comment
Cleanups:
- Add the VFS git tree to the MAINTAINERS file.
- Move FMODE_UNSIGNED_OFFSET to fop_flags freeing up another f_mode bit
in struct file bringing us to 5 free f_mode bits.
- Remove the __I_DIO_WAKEUP bit from i_state flags as we can simplify
the wait mechanism.
- Remove the unused path_put_init() helper.
- Replace a __u32 with u32 for s_fsnotify_mask as __u32 is uapi specific.
- Replace the unsigned long i_state member with a u32 i_state member in
struct inode freeing up 4 bytes in struct inode. Instead of using
the bit based wait apis we're now using the var event apis and using
the individual bytes of the i_state member to wait on state changes.
- Explain how per-syscall AT_* flags should be allocated.
- Use in_group_or_capable() helper to simplify the posix acl mode update
code.
- Switch to LIST_HEAD() in fsync_buffers_list() to simplify the code.
- Removed comment about d_rcu_to_refcount() as that function doesn't
exist anymore.
- Add kernel documentation for lookup_fast().
- Don't re-zero evenpoll fields.
- Remove outdated comment after close_fd().
- Fix imprecise wording in comment about the pipe filesystem.
- Drop GFP_NOFAIL mode from alloc_page_buffers.
- Missing blank line warnings and struct declaration improved in file_table.
- Annotate struct poll_list with __counted_by()
- Remove the unused read parameter in percpu-rwsem.
- Remove linux/prefetch.h include from direct-io code.
- Use kmemdup_array instead of kmemdup for multiple allocation in
mnt_idmapping code.
- Remove unused mnt_cursor_del() declaration.
Performance tweaks:
- Dodge smp_mb in break_lease and break_deleg in the common case.
- Only read fops once in fops_{get,put}().
- Use RCU in ilookup().
- Elide smp_mb in iversion handling in the common case.
- Drop one lock trip in evict().
/* Testing */
gcc version 14.2.0 (Debian 14.2.0-3)
Debian clang version 16.0.6 (27+b1)
All patches are based on v6.11-rc4 and have been sitting in linux-next.
No build failures or warnings were observed.
/* Conflicts */
Merge conflicts with mainline
=============================
No known conflicts.
Merge conflicts with other trees
================================
(1) This will have merge conflict with the vfs.file pull request sent as:
https://lore.kernel.org/r/20240913-vfs-file-53bf57c94647@brauner
I've provided the conflict resolution there.
(2) This will also very likely cause a merge conflict with the series
to convert everything to fd_file() accessors. Because we change:
-static int coda_parse_fd(struct fs_context *fc, int fd)
+static int coda_set_idx(struct fs_context *fc, struct file *file)
{
struct coda_fs_context *ctx = fc->fs_private;
- struct fd f;
struct inode *inode;
int idx;
- f = fdget(fd);
- if (!f.file)
- return -EBADF;
- inode = file_inode(f.file);
+ inode = file_inode(file);
if (!S_ISCHR(inode->i_mode) || imajor(inode) != CODA_PSDEV_MAJOR) {
- fdput(f);
- return invalf(fc, "code: Not coda psdev");
+ return invalf(fc, "coda: Not coda psdev");
}
-
idx = iminor(inode);
- fdput(f);
-
if (idx < 0 || idx >= MAX_CODADEVS)
return invalf(fc, "coda: Bad minor number");
ctx->idx = idx;
return 0;
}
which removes the raw f.file access so the fd_file() replacement becomes mute.
The following changes since commit 47ac09b91befbb6a235ab620c32af719f8208399:
Linux 6.11-rc4 (2024-08-18 13:17:27 -0700)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.12.misc
for you to fetch changes up to 2077006d4725c82c6e9612cec3a6c140921b067f:
uidgid: make sure we fit into one cacheline (2024-09-12 12:16:09 +0200)
Please consider pulling these changes from the signed vfs-6.12.misc tag.
Thanks!
Christian
----------------------------------------------------------------
vfs-6.12.misc
----------------------------------------------------------------
Aleksa Sarai (4):
autofs: fix missing fput for FSCONFIG_SET_FD
coda: use param->file for FSCONFIG_SET_FD
uapi: explain how per-syscall AT_* flags should be allocated
fhandle: expose u64 mount id to name_to_handle_at(2)
Baokun Li (1):
netfs: Delete subtree of 'fs/netfs' when netfs module exits
Christian Brauner (20):
fcntl: add F_CREATED_QUERY
selftests: add F_CREATED_QUERY tests
Merge patch series "Add an fcntl() to check file creation"
fs: move audit parent inode
fs: pull up trailing slashes check for O_CREAT
fs: remove audit dummy context check
fs: rearrange general fastpath check now that O_CREAT uses it
fs: move FMODE_UNSIGNED_OFFSET to fop_flags
inode: remove __I_DIO_WAKEUP
fs: remove unused path_put_init()
fs: s/__u32/u32/ for s_fsnotify_mask
fs: add i_state helpers
fs: reorder i_state bits
inode: port __I_SYNC to var event
inode: port __I_NEW to var event
inode: port __I_LRU_ISOLATING to var event
inode: make i_state a u32
Merge patch series "fs: add i_state helpers"
Merge patch series "fhandle: expose u64 mount id to name_to_handle_at(2)"
uidgid: make sure we fit into one cacheline
Eric Biggers (1):
MAINTAINERS: add the VFS git tree
Haifeng Xu (1):
fs: don't flush in-flight wb switches for superblocks without cgroup writeback
Hongbo Li (3):
fs: Use in_group_or_capable() helper to simplify the code
doc: correcting the idmapping mount example
fs: use LIST_HEAD() to simplify code
Ian Kent (1):
autofs: add per dentry expire timeout
Jeff Layton (3):
fs: remove comment about d_rcu_to_refcount
fs: add a kerneldoc header over lookup_fast
fs: try an opportunistic lookup for O_CREAT opens too
Joe Damato (1):
eventpoll: Don't re-zero eventpoll fields
Joel Savitz (1):
file: remove outdated comment after close_fd()
Julian Sun (2):
vfs: fix race between evice_inodes() and find_inode()&iput()
writeback: Refine the show_inode_state() macro definition
Kienan Stewart (1):
fs/pipe: Correct imprecise wording in comment
Li Zhijian (1):
fs/inode: Prevent dump_mapping() accessing invalid dentry.d_name.name
Marc Aurèle La France (1):
debugfs show actual source in /proc/mounts
Martin Karsten (1):
eventpoll: Annotate data-race of busy_poll_usecs
Mateusz Guzik (6):
exec: don't WARN for racy path_noexec check
vfs: dodge smp_mb in break_lease and break_deleg in the common case
vfs: only read fops once in fops_get/put
vfs: use RCU in ilookup
vfs: elide smp_mb in iversion handling in the common case
vfs: drop one lock trip in evict()
Michal Hocko (1):
fs: drop GFP_NOFAIL mode from alloc_page_buffers
Mohit0404 (1):
Fixed: fs: file_table_c: Missing blank line warnings and struct declaration improved
Olaf Hering (1):
mount: handle OOM on mnt_warn_timestamp_expiry
Thorsten Blum (1):
fs/select: Annotate struct poll_list with __counted_by()
Uros Bizjak (1):
fs/aio: Fix __percpu annotation of *cpu pointer in struct kioctx
Wang Long (1):
percpu-rwsem: remove the unused parameter 'read'
Xiaxi Shen (1):
Fix spelling and gramatical errors
Yan Zhen (1):
proc: Fix typo in the comment
Youling Tang (1):
fs/direct-io: Remove linux/prefetch.h include
Yu Jiaoliang (1):
mnt_idmapping: Use kmemdup_array instead of kmemdup for multiple allocation
Yue Haibing (1):
fs: mounts: Remove unused declaration mnt_cursor_del()
Yuesong Li (1):
fs/namespace.c: Fix typo in comment
Documentation/filesystems/idmappings.rst | 8 +-
Documentation/filesystems/iomap/design.rst | 6 +-
MAINTAINERS | 1 +
drivers/char/adi.c | 8 +-
drivers/char/mem.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1 +
drivers/gpu/drm/drm_file.c | 3 +-
drivers/gpu/drm/gma500/psb_drv.c | 1 +
drivers/gpu/drm/i915/i915_driver.c | 1 +
drivers/gpu/drm/nouveau/nouveau_drm.c | 1 +
drivers/gpu/drm/radeon/radeon_drv.c | 1 +
drivers/gpu/drm/tegra/drm.c | 1 +
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 1 +
drivers/gpu/drm/xe/xe_device.c | 1 +
drivers/md/md-bitmap.c | 2 +-
fs/aio.c | 2 +-
fs/autofs/autofs_i.h | 4 +
fs/autofs/dev-ioctl.c | 97 +++++++++++++++++++-
fs/autofs/expire.c | 7 +-
fs/autofs/inode.c | 5 +-
fs/bcachefs/fs.c | 10 +-
fs/buffer.c | 8 +-
fs/coda/inode.c | 43 ++++++---
fs/dcache.c | 10 +-
fs/debugfs/inode.c | 8 ++
fs/direct-io.c | 6 --
fs/eventpoll.c | 7 +-
fs/exec.c | 31 +++----
fs/fcntl.c | 10 ++
fs/fhandle.c | 29 ++++--
fs/file.c | 2 +-
fs/file_table.c | 5 +-
fs/fs-writeback.c | 67 ++++++++------
fs/inode.c | 116 ++++++++++++++++--------
fs/libfs.c | 28 ++++--
fs/mnt_idmapping.c | 12 +--
fs/mount.h | 1 -
fs/namei.c | 75 ++++++++++++---
fs/namespace.c | 18 +++-
fs/netfs/locking.c | 22 +----
fs/netfs/main.c | 4 +-
fs/pipe.c | 2 +-
fs/posix_acl.c | 4 +-
fs/proc/base.c | 10 +-
fs/proc/fd.c | 2 +-
fs/proc/kcore.c | 2 +-
fs/read_write.c | 2 +-
fs/select.c | 2 +-
fs/super.c | 4 +-
include/drm/drm_accel.h | 3 +-
include/drm/drm_gem.h | 3 +-
include/drm/drm_gem_dma_helper.h | 1 +
include/linux/buffer_head.h | 3 +-
include/linux/filelock.h | 14 ++-
include/linux/fs.h | 88 +++++++++++-------
include/linux/path.h | 6 --
include/linux/percpu-rwsem.h | 2 +-
include/linux/syscalls.h | 2 +-
include/linux/user_namespace.h | 6 +-
include/linux/writeback.h | 7 +-
include/trace/events/writeback.h | 10 +-
include/uapi/linux/auto_fs.h | 2 +-
include/uapi/linux/fcntl.h | 84 ++++++++++++-----
kernel/user.c | 6 +-
mm/mmap.c | 2 +-
tools/testing/selftests/core/close_range_test.c | 39 ++++++++
66 files changed, 662 insertions(+), 310 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2024-11-15 13:56 Christian Brauner
2024-11-18 19:49 ` pr-tracker-bot
0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2024-11-15 13:56 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
Features:
- Fixup and improve NLM and kNFSD file lock callbacks.
Last year both GFS2 and OCFS2 had some work done to make their
locking more robust when exported over NFS. Unfortunately, part of
that work caused both NLM (for NFS v3 exports) and kNFSD (for
NFSv4.1+ exports) to no longer send lock notifications to clients.
This in itself is not a huge problem because most NFS clients will
still poll the server in order to acquire a conflicted lock.
Its important for NLM and kNFSD that they do not block their
kernel threads inside filesystem's file_lock implementations
because that can produce deadlocks. We used to make sure of this
by only trusting that posix_lock_file() can correctly handle
blocking lock calls asynchronously, so the lock managers would
only setup their file_lock requests for async callbacks if the
filesystem did not define its own lock() file operation.
However, when GFS2 and OCFS2 grew the capability to correctly
handle blocking lock requests asynchronously, they started
signalling this behavior with EXPORT_OP_ASYNC_LOCK, and the check
for also trusting posix_lock_file() was inadvertently dropped, so
now most filesystems no longer produce lock notifications when
exported over NFS.
Fix this by using an fop_flag which greatly simplifies the problem
and grooms the way for future uses by both filesystems and lock
managers alike.
- Add a sysctl to delete the dentry when a file is removed instead
of making it a negative dentry.
Commit 681ce8623567 ("vfs: Delete the associated dentry when
deleting a file") introduced an unconditional deletion of the
associated dentry when a file is removed. However, this led to
performance regressions in specific benchmarks, such as
ilebench.sum_operations/s, prompting a revert in commit
4a4be1ad3a6e ("Revert "vfs: Delete the associated dentry when
deleting a file""). This reintroduces the concept conditionally
through a sysctl.
- Expand the statmount() system call:
* Report the filesystem subtype in a new fs_subtype field to
e.g., report fuse filesystem subtypes.
* Report the superblock source in a new sb_source field.
* Add a new way to return filesystem specific mount options in
an option array that returns filesystem specific mount
options separated by zero bytes and unescaped. This allows
caller's to retrieve filesystem specific mount options and
immediately pass them to e.g., fsconfig() without having to
unescape or split them.
* Report security (LSM) specific mount options in a separate
security option array. We don't lump them together with
filesystem specific mount options as security mount options
are generic and most users aren't interested in them.
The format is the same as for the filesystem specific mount
option array.
- Support relative paths in fsconfig()'s FSCONFIG_SET_STRING command.
- Optimize acl_permission_check() to avoid costly {g,u}id ownership
checks if possible.
- Use smp_mb__after_spinlock() to avoid full smp_mb() in evict().
- Add synchronous wakeup support for ep_poll_callback.
Currently, epoll only uses wake_up() to wake up task. But
sometimes there are epoll users which want to use
the synchronous wakeup flag to give a hint to the scheduler, e.g.,
the Android binder driver. So add a wake_up_sync() define, and use
wake_up_sync() when sync is true in ep_poll_callback().
Fixes:
- Fix kernel documentation for inode_insert5() and iget5_locked().
- Annotate racy epoll check on file->f_ep.
- Make F_DUPFD_QUERY associative.
- Avoid filename buffer overrun in initramfs.
- Don't let statmount() return empty strings.
- Add a cond_resched() to dump_user_range() to avoid hogging the CPU.
- Don't query the device logical blocksize multiple times for hfsplus.
- Make filemap_read() check that the offset is positive or zero.
Cleanups:
- Various typo fixes.
- Cleanup wbc_attach_fdatawrite_inode().
- Add __releases annotation to wbc_attach_and_unlock_inode().
- Add hugetlbfs tracepoints.
- Fix various vfs kernel doc parameters.
- Remove obsolete TODO comment from io_cancel().
- Convert wbc_account_cgroup_owner() to take a folio.
- Fix comments for BANDWITH_INTERVAL and wb_domain_writeout_add().
- Reorder struct posix_acl to save 8 bytes.
- Annotate struct posix_acl with __counted_by().
- Replace one-element array with flexible array member in freevxfs.
- Use idiomatic atomic64_inc_return() in alloc_mnt_ns().
/* Testing */
gcc version 14.2.0 (Debian 14.2.0-6)
Debian clang version 16.0.6 (27+b1)
All patches are based on v6.12-rc1 and have been sitting in linux-next.
No build failures or warnings were observed.
/* Conflicts */
Merge conflicts with mainline
=============================
No known conflicts.
Merge conflicts with other trees
================================
No known conflicts.
(1) linux-next: manual merge of the vfs-brauner tree with the nfsd tree
https://lore.kernel.org/r/20241024081515.1cd254a0@canb.auug.org.au
The following changes since commit 9852d85ec9d492ebef56dc5f229416c925758edc:
Linux 6.12-rc1 (2024-09-29 15:06:19 -0700)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.13.misc
for you to fetch changes up to aefff51e1c2986e16f2780ca8e4c97b784800ab5:
statmount: retrieve security mount options (2024-11-14 17:03:25 +0100)
Please consider pulling these changes from the signed vfs-6.13.misc tag.
Thanks!
Christian
----------------------------------------------------------------
vfs-6.13.misc
----------------------------------------------------------------
Andreas Gruenbacher (1):
vfs: inode insertion kdoc corrections
Andrew Kreimer (1):
fs/inode: Fix a typo
Benjamin Coddington (4):
fs: Introduce FOP_ASYNC_LOCK
gfs2/ocfs2: set FOP_ASYNC_LOCK
NLM/NFSD: Fix lock notifications for async-capable filesystems
exportfs: Remove EXPORT_OP_ASYNC_LOCK
Christian Brauner (7):
Merge patch series "Fixup NLM and kNFSD file lock callbacks"
Merge patch series "Introduce tracepoint for hugetlbfs"
epoll: annotate racy check
fcntl: make F_DUPFD_QUERY associative
Merge patch series "fs: allow statmount to fetch the fs_subtype and sb_source"
Merge patch series "two little writeback cleanups v2"
statmount: retrieve security mount options
Christoph Hellwig (2):
writeback: add a __releases annoation to wbc_attach_and_unlock_inode
writeback: wbc_attach_fdatawrite_inode out of line
David Disseldorp (1):
initramfs: avoid filename buffer overrun
Hongbo Li (3):
hugetlbfs: support tracepoint
hugetlbfs: use tracepoints in hugetlbfs functions.
fs: support relative paths with FSCONFIG_SET_STRING
Jeff Layton (3):
fs: don't let statmount return empty strings
fs: add the ability for statmount() to report the fs_subtype
fs: add the ability for statmount() to report the sb_source
Julia Lawall (1):
fs: Reorganize kerneldoc parameter names
Linus Torvalds (1):
fs: optimize acl_permission_check()
Mateusz Guzik (1):
vfs: make evict() use smp_mb__after_spinlock instead of smp_mb
Miklos Szeredi (1):
statmount: add flag to retrieve unescaped options
Mohammed Anees (1):
fs:aio: Remove TODO comment suggesting hash or array usage in io_cancel()
Pankaj Raghav (1):
fs/writeback: convert wbc_account_cgroup_owner to take a folio
Rik van Riel (1):
coredump: add cond_resched() to dump_user_range
Tang Yizhou (2):
mm/page-writeback.c: Update comment for BANDWIDTH_INTERVAL
mm/page-writeback.c: Fix comment of wb_domain_writeout_add()
Thadeu Lima de Souza Cascardo (1):
hfsplus: don't query the device logical block size multiple times
Thorsten Blum (3):
acl: Realign struct posix_acl to save 8 bytes
acl: Annotate struct posix_acl with __counted_by()
freevxfs: Replace one-element array with flexible array member
Trond Myklebust (1):
filemap: filemap_read() should check that the offset is positive or zero
Uros Bizjak (1):
namespace: Use atomic64_inc_return() in alloc_mnt_ns()
Xuewen Yan (1):
epoll: Add synchronous wakeup support for ep_poll_callback
Yafang Shao (1):
vfs: Add a sysctl for automated deletion of dentry
Documentation/admin-guide/cgroup-v2.rst | 2 +-
Documentation/admin-guide/sysctl/fs.rst | 5 +
Documentation/filesystems/nfs/exporting.rst | 7 --
MAINTAINERS | 1 +
fs/aio.c | 1 -
fs/btrfs/extent_io.c | 7 +-
fs/btrfs/inode.c | 2 +-
fs/buffer.c | 4 +-
fs/char_dev.c | 2 +-
fs/coredump.c | 1 +
fs/dcache.c | 16 ++-
fs/eventpoll.c | 11 +-
fs/ext4/page-io.c | 2 +-
fs/f2fs/data.c | 9 +-
fs/fcntl.c | 3 +
fs/freevxfs/vxfs_dir.h | 2 +-
fs/fs-writeback.c | 40 +++++--
fs/fs_parser.c | 1 +
fs/gfs2/export.c | 1 -
fs/gfs2/file.c | 2 +
fs/hfsplus/hfsplus_fs.h | 3 +-
fs/hfsplus/wrapper.c | 2 +
fs/hugetlbfs/inode.c | 17 ++-
fs/inode.c | 29 +++--
fs/iomap/buffered-io.c | 2 +-
fs/lockd/svclock.c | 7 +-
fs/mpage.c | 2 +-
fs/namei.c | 41 +++++++
fs/namespace.c | 161 ++++++++++++++++++++++++++--
fs/nfsd/nfs4state.c | 19 +---
fs/ocfs2/export.c | 1 -
fs/ocfs2/file.c | 2 +
fs/posix_acl.c | 13 ++-
fs/seq_file.c | 2 +-
include/linux/eventpoll.h | 2 +-
include/linux/exportfs.h | 13 ---
include/linux/filelock.h | 5 +
include/linux/fs.h | 2 +
include/linux/posix_acl.h | 6 +-
include/linux/wait.h | 1 +
include/linux/writeback.h | 32 +-----
include/trace/events/hugetlbfs.h | 156 +++++++++++++++++++++++++++
include/uapi/linux/mount.h | 14 ++-
init/initramfs.c | 15 +++
mm/filemap.c | 2 +
mm/page-writeback.c | 4 +-
46 files changed, 531 insertions(+), 141 deletions(-)
create mode 100644 include/trace/events/hugetlbfs.h
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2025-01-18 12:58 Christian Brauner
2025-01-20 18:59 ` pr-tracker-bot
0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2025-01-18 12:58 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
Features:
- Support caching symlink lengths in inodes.
The size is stored in a new union utilizing the same space as
i_devices, thus avoiding growing the struct or taking up any more
space.
When utilized it dodges strlen() in vfs_readlink(), giving about 1.5%
speed up when issuing readlink on /initrd.img on ext4.
- Add RWF_DONTCACHE iocb and FOP_DONTCACHE file_operations flag.
If a file system supports uncached buffered IO, it may set
FOP_DONTCACHE and enable support for RWF_DONTCACHE. If RWF_DONTCACHE
is attempted without the file system supporting it, it'll get errored
with -EOPNOTSUPP.
- Enable VBOXGUEST and VBOXSF_FS on ARM64
Now that VirtualBox is able to run as a host on arm64 (e.g. the Apple
M3 processors) we can enable VBOXSF_FS (and in turn VBOXGUEST) for
this architecture. Tested with various runs of bonnie++ and dbench on
an Apple MacBook Pro with the latest Virtualbox 7.1.4 r165100
installed.
Cleanups:
- Delay sysctl_nr_open check in expand_files().
- Use kernel-doc includes in fiemap docbook.
- Use page->private instead of page->index in watch_queue.
- Use a consume fence in mnt_idmap() as it's heavily used in
link_path_walk().
- Replace magic number 7 with ARRAY_SIZE() in fc_log.
- Sort out a stale comment about races between fd alloc and dup2().
- Fix return type of do_mount() from long to int.
- Various cosmetic cleanups for the lockref code.
Fixes:
- Annotate spinning as unlikely() in __read_seqcount_begin.
The annotation already used to be there, but got lost in
52ac39e5db5148f7 ("seqlock: seqcount_t: Implement all read APIs as
statement expressions").
- Fix proc_handler for sysctl_nr_open.
- Flush delayed work in delayed fput().
- Fix grammar and spelling in propagate_umount().
- Fix ESP not readable during coredump.
In /proc/PID/stat, there is the kstkesp field which is the stack
pointer of a thread. While the thread is active, this field reads
zero. But during a coredump, it should have a valid value.
However, at the moment, kstkesp is zero even during coredump.
- Don't wake up the writer if the pipe is still full.
- Fix unbalanced user_access_end() in select code.
/* Testing */
gcc version 14.2.0 (Debian 14.2.0-6)
Debian clang version 16.0.6 (27+b1)
No build failures or warnings were observed.
/* Conflicts */
Merge conflicts with mainline
=============================
No known conflicts.
Merge conflicts with other trees
================================
No known conflicts.
The following changes since commit 40384c840ea1944d7c5a392e8975ed088ecf0b37:
Linux 6.13-rc1 (2024-12-01 14:28:56 -0800)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.14-rc1.misc
for you to fetch changes up to c859df526b203497227b2b16c9bebcede67221e4:
Merge patch series "lockref cleanups" (2025-01-16 11:48:12 +0100)
Please consider pulling these changes from the signed vfs-6.14-rc1.misc tag.
Thanks!
Christian
----------------------------------------------------------------
vfs-6.14-rc1.misc
----------------------------------------------------------------
Christian Brauner (4):
Merge patch series "symlink length caching"
Merge branch 'vfs-6.14.uncached_buffered_io'
Merge patch series "fix reading ESP during coredump"
Merge patch series "lockref cleanups"
Christian Kujau (1):
vbox: Enable VBOXGUEST and VBOXSF_FS on ARM64
Christoph Hellwig (8):
lockref: remove lockref_put_not_zero
lockref: improve the lockref_get_not_zero description
lockref: use bool for false/true returns
lockref: drop superfluous externs
lockref: add a lockref_init helper
dcache: use lockref_init for d_lockref
erofs: use lockref_init for pcl->lockref
gfs2: use lockref_init for qd_lockref
Christophe Leroy (1):
select: Fix unbalanced user_access_end()
Guo Weikang (1):
fs: fc_log replace magic number 7 with ARRAY_SIZE()
Jens Axboe (1):
fs: add RWF_DONTCACHE iocb and FOP_DONTCACHE file_operations flag
Jinliang Zheng (1):
fs: fix proc_handler for sysctl_nr_open
Mateusz Guzik (7):
fs: delay sysctl_nr_open check in expand_files()
vfs: support caching symlink lengths in inodes
seqlock: annotate spinning as unlikely() in __read_seqcount_begin
ext4: use inode_set_cached_link()
tmpfs: use inode_set_cached_link()
fs: use a consume fence in mnt_idmap()
fs: sort out a stale comment about races between fd alloc and dup2
Matthew Wilcox (Oracle) (1):
watch_queue: Use page->private instead of page->index
Nam Cao (2):
fs/proc: do_task_stat: Fix ESP not readable during coredump
selftests: coredump: Add stackdump test
Oleg Nesterov (1):
pipe_read: don't wake up the writer if the pipe is still full
Randy Dunlap (1):
fiemap: use kernel-doc includes in fiemap docbook
Sentaro Onizuka (1):
fs: Fix return type of do_mount() from long to int
Zhu Jun (1):
fs: Fix grammar and spelling in propagate_umount()
shao mingyin (1):
file: flush delayed work in delayed fput()
Documentation/filesystems/fiemap.rst | 49 +++----
drivers/virt/vboxguest/Kconfig | 2 +-
fs/dcache.c | 3 +-
fs/erofs/zdata.c | 3 +-
fs/ext4/inode.c | 3 +-
fs/ext4/namei.c | 4 +-
fs/file.c | 22 +---
fs/file_table.c | 7 +-
fs/fs_context.c | 2 +-
fs/gfs2/quota.c | 3 +-
fs/namei.c | 34 ++---
fs/namespace.c | 2 +-
fs/pipe.c | 19 +--
fs/pnode.c | 8 +-
fs/proc/array.c | 2 +-
fs/proc/namespaces.c | 2 +-
fs/select.c | 4 +-
fs/vboxsf/Kconfig | 2 +-
include/linux/fiemap.h | 16 ++-
include/linux/fs.h | 29 ++++-
include/linux/lockref.h | 26 ++--
include/linux/mount.h | 4 +-
include/linux/seqlock.h | 2 +-
include/uapi/linux/fiemap.h | 47 +++++--
include/uapi/linux/fs.h | 6 +-
kernel/watch_queue.c | 4 +-
lib/lockref.c | 60 +++------
mm/shmem.c | 6 +-
security/apparmor/apparmorfs.c | 2 +-
tools/testing/selftests/coredump/Makefile | 7 +
tools/testing/selftests/coredump/README.rst | 50 +++++++
tools/testing/selftests/coredump/stackdump | 14 ++
tools/testing/selftests/coredump/stackdump_test.c | 151 ++++++++++++++++++++++
33 files changed, 415 insertions(+), 180 deletions(-)
create mode 100644 tools/testing/selftests/coredump/Makefile
create mode 100644 tools/testing/selftests/coredump/README.rst
create mode 100755 tools/testing/selftests/coredump/stackdump
create mode 100644 tools/testing/selftests/coredump/stackdump_test.c
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2025-03-22 10:12 Christian Brauner
2025-03-24 16:20 ` Linus Torvalds
2025-03-24 21:00 ` pr-tracker-bot
0 siblings, 2 replies; 18+ messages in thread
From: Christian Brauner @ 2025-03-22 10:12 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
Features:
- Add CONFIG_DEBUG_VFS infrastucture:
- Catch invalid modes in open.
- Use the new debug macros in inode_set_cached_link().
- Use debug-only asserts around fd allocation and install.
- Place f_ref to 3rd cache line in struct file to resolve false sharing.
Cleanups:
- Start using anon_inode_getfile_fmode() helper in various places.
- Don't take f_lock during SEEK_CUR if exclusion is guaranteed by f_pos_lock.
- Add unlikely() to kcmp().
- Remove legacy ->remount_fs method from ecryptfs after port to the new mount api.
- Remove invalidate_inodes() in favour of evict_inodes().
- Simplify ep_busy_loopER by removing unused argument.
- Avoid mmap sem relocks when coredumping with many missing pages.
- Inline getname().
- Inline new_inode_pseudo() and de-staticize alloc_inode().
- Dodge an atomic in putname if ref == 1.
- Consistently deref the files table with rcu_dereference_raw().
- Dedup handling of struct filename init and refcounts bumps.
- Use wq_has_sleeper() in end_dir_add().
- Drop the lock trip around I_NEW wake up in evict().
- Load the ->i_sb pointer once in inode_sb_list_{add,del}.
- Predict not reaching the limit in alloc_empty_file().
- Tidy up do_sys_openat2() with likely/unlikely.
- Call inode_sb_list_add() outside of inode hash lock.
- Sort out fd allocation vs dup2 race commentary.
- Turn page_offset() into a wrapper around folio_pos().
- Remove locking in exportfs around ->get_parent() call.
- try_lookup_one_len() does not need any locks in autofs.
- Fix return type of several functions from long to int in open.
- Fix return type of several functions from long to int in ioctls.
Fixes:
- Fix watch queue accounting mismatch.
/* Testing */
gcc version 14.2.0 (Debian 14.2.0-6)
Debian clang version 16.0.6 (27+b1)
No build failures or warnings were observed.
/* Conflicts */
Merge conflicts with mainline
=============================
This contains a minor merge conflict for include/linux/fs.h.
Merge conflicts with other trees
================================
No known conflicts.
The following changes since commit 2014c95afecee3e76ca4a56956a936e23283f05b:
Linux 6.14-rc1 (2025-02-02 15:39:26 -0800)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.15-rc1.misc
for you to fetch changes up to 4dec4f91359c456a5eea26817ea151b42953432e:
fs: sort out fd allocation vs dup2 race commentary, take 2 (2025-03-20 15:17:56 +0100)
Please consider pulling these changes from the signed vfs-6.15-rc1.misc tag.
Thanks!
Christian
----------------------------------------------------------------
vfs-6.15-rc1.misc
----------------------------------------------------------------
Al Viro (1):
make use of anon_inode_getfile_fmode()
Christian Brauner (3):
Merge patch series "CONFIG_DEBUG_VFS at last"
Merge patch series "Fix the return type of several functions from long to int"
fs: don't needlessly acquire f_lock
Colin Ian King (1):
kcmp: improve performance adding an unlikely hint to task comparisons
Eric Sandeen (2):
watch_queue: fix pipe accounting mismatch
ecryptfs: remove NULL remount_fs from super_operations
Jan Kara (1):
vfs: Remove invalidate_inodes()
Lin Feng (1):
epoll: simplify ep_busy_loop by removing always 0 argument
Mateusz Guzik (17):
vfs: add initial support for CONFIG_DEBUG_VFS
vfs: catch invalid modes in may_open()
vfs: use the new debug macros in inode_set_cached_link()
fs: avoid mmap sem relocks when coredumping with many missing pages
vfs: inline getname()
vfs: inline new_inode_pseudo() and de-staticize alloc_inode()
fs: dodge an atomic in putname if ref == 1
fs: use debug-only asserts around fd allocation and install
fs: consistently deref the files table with rcu_dereference_raw()
fs: dedup handling of struct filename init and refcounts bumps
fs: use wq_has_sleeper() in end_dir_add()
fs: drop the lock trip around I_NEW wake up in evict()
fs: load the ->i_sb pointer once in inode_sb_list_{add,del}
fs: predict not reaching the limit in alloc_empty_file()
fs: tidy up do_sys_openat2() with likely/unlikely
fs: call inode_sb_list_add() outside of inode hash lock
fs: sort out fd allocation vs dup2 race commentary, take 2
Matthew Wilcox (Oracle) (1):
fs: Turn page_offset() into a wrapper around folio_pos()
NeilBrown (2):
exportfs: remove locking around ->get_parent() call.
VFS/autofs: try_lookup_one_len() does not need any locks
Pan Deng (1):
fs: place f_ref to 3rd cache line in struct file to resolve false sharing
Yuichiro Tsuji (2):
open: Fix return type of several functions from long to int
ioctl: Fix return type of several functions from long to int
Documentation/filesystems/porting.rst | 5 ++
arch/arm64/kernel/elfcore.c | 3 +-
arch/powerpc/platforms/pseries/papr-vpd.c | 7 +-
drivers/vfio/group.c | 16 +---
fs/autofs/dev-ioctl.c | 3 -
fs/cachefiles/ondemand.c | 7 +-
fs/coredump.c | 38 +++++++--
fs/dcache.c | 3 +-
fs/ecryptfs/super.c | 1 -
fs/eventfd.c | 5 +-
fs/eventpoll.c | 8 +-
fs/exportfs/expfs.c | 2 -
fs/file.c | 81 +++++++++++++------
fs/file_table.c | 3 +-
fs/inode.c | 127 +++++++++++-------------------
fs/internal.h | 6 +-
fs/ioctl.c | 10 +--
fs/namei.c | 42 +++++-----
fs/open.c | 29 +++----
fs/read_write.c | 13 ++-
fs/signalfd.c | 7 +-
fs/smb/client/file.c | 2 +-
fs/super.c | 2 +-
fs/timerfd.c | 6 +-
include/linux/fs.h | 36 ++++++---
include/linux/mm.h | 2 +-
include/linux/pagemap.h | 20 ++---
include/linux/syscalls.h | 4 +-
include/linux/vfsdebug.h | 45 +++++++++++
kernel/auditsc.c | 12 ++-
kernel/kcmp.c | 2 +-
kernel/watch_queue.c | 9 +++
lib/Kconfig.debug | 9 +++
mm/gup.c | 6 +-
security/landlock/fs.c | 2 +-
virt/kvm/kvm_main.c | 11 +--
36 files changed, 339 insertions(+), 245 deletions(-)
create mode 100644 include/linux/vfsdebug.h
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [GIT PULL] vfs misc
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
1 sibling, 1 reply; 18+ messages in thread
From: Linus Torvalds @ 2025-03-24 16:20 UTC (permalink / raw)
To: Christian Brauner, Mateusz Guzik; +Cc: linux-fsdevel, linux-kernel
On Sat, 22 Mar 2025 at 03:13, Christian Brauner <brauner@kernel.org> wrote:
>
> Merge conflicts with mainline
> =============================
>
> This contains a minor merge conflict for include/linux/fs.h.
Hmm. My resolution here was to just take the plain VFS_WARN_ON_INODE()
side, which basically drops commit 37d11cfc6360 ("vfs: sanity check
the length passed to inode_set_cached_link()") entirely, because that
one had a "TODO" that implies it's now replaced by the new
VFS_WARN_ON_INODE() interface.
This is just a note to make sure that if anybody was expecting
something else, you can now speak up and say "can you please do X".
Or, better yet, send a patch.
Linus
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [GIT PULL] vfs misc
2025-03-24 16:20 ` Linus Torvalds
@ 2025-03-24 17:09 ` Mateusz Guzik
0 siblings, 0 replies; 18+ messages in thread
From: Mateusz Guzik @ 2025-03-24 17:09 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
On Mon, Mar 24, 2025 at 5:20 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Sat, 22 Mar 2025 at 03:13, Christian Brauner <brauner@kernel.org> wrote:
> >
> > Merge conflicts with mainline
> > =============================
> >
> > This contains a minor merge conflict for include/linux/fs.h.
>
> Hmm. My resolution here was to just take the plain VFS_WARN_ON_INODE()
> side, which basically drops commit 37d11cfc6360 ("vfs: sanity check
> the length passed to inode_set_cached_link()") entirely, because that
> one had a "TODO" that implies it's now replaced by the new
> VFS_WARN_ON_INODE() interface.
>
> This is just a note to make sure that if anybody was expecting
> something else, you can now speak up and say "can you please do X".
>
> Or, better yet, send a patch.
>
That TODO thing was a temporary fixup for the release and indeed it is
sorted out in this pull request.
If inode_set_cached_link() looks like this:
static inline void inode_set_cached_link(struct inode *inode, char
*link, int linklen)
{
VFS_WARN_ON_INODE(strlen(link) != linklen, inode);
VFS_WARN_ON_INODE(inode->i_opflags & IOP_CACHED_LINK, inode);
inode->i_link = link;
inode->i_linklen = linklen;
inode->i_opflags |= IOP_CACHED_LINK;
}
then you got the right version.
--
Mateusz Guzik <mjguzik gmail.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [GIT PULL] vfs misc
2025-03-22 10:12 Christian Brauner
2025-03-24 16:20 ` Linus Torvalds
@ 2025-03-24 21:00 ` pr-tracker-bot
1 sibling, 0 replies; 18+ messages in thread
From: pr-tracker-bot @ 2025-03-24 21:00 UTC (permalink / raw)
To: Christian Brauner
Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel
The pull request you sent on Sat, 22 Mar 2025 11:12:49 +0100:
> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.15-rc1.misc
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/99c21beaab2db53d1ba17102b7cedc7a584dfe23
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2025-03-24 21:00 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-10 20:30 [git pull] vfs misc Al Viro
2020-06-11 1:50 ` pr-tracker-bot
-- strict thread matches above, loose matches on Subject: below --
2023-06-23 11:01 [GIT PULL] vfs: misc Christian Brauner
2023-06-26 17:34 ` pr-tracker-bot
2024-03-08 10:09 [GIT PULL] vfs misc Christian Brauner
2024-03-11 18:33 ` pr-tracker-bot
2024-05-10 11:46 Christian Brauner
2024-05-13 19:38 ` pr-tracker-bot
2024-09-13 14:41 Christian Brauner
2024-09-16 7:34 ` pr-tracker-bot
2024-11-15 13:56 Christian Brauner
2024-11-18 19:49 ` pr-tracker-bot
2025-01-18 12:58 Christian Brauner
2025-01-20 18:59 ` pr-tracker-bot
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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).