Linux/linux 95e56f0include/linux kcsan-checks.h

Merge tag 'kcsan-20260612-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/melver/linux

Pull KCSAN update from Marco Elver:

 - Silence -Wmaybe-uninitialized when calling __kcsan_check_access()

* tag 'kcsan-20260612-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/melver/linux:
  kcsan: Silence -Wmaybe-uninitialized when calling __kcsan_check_access()
DeltaFile
+3-3include/linux/kcsan-checks.h
+3-31 files

Linux/linux 2bfc56darch/x86/xen xen-ops.h mmu_pv.c, include/linux pgtable.h

Merge tag 'for-linus-7.2-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen updates from Juergen Gross:

 - Several small cleanups of various Xen related drivers
   (xen/platform-pci, xen-balloon, xenbus, xen/mcelog)

 - Cleanup for Xen PV-mode related code (includes dropping the Xen
   debugfs code)

 - Drop the additional lazy mmu mode tracking done by Xen specific code

* tag 'for-linus-7.2-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen/xenbus: Replace strcpy() with memcpy()
  x86/xen: Replace generic lazy tracking with cpu specific one
  x86/xen: Get rid of last XEN_LAZY_MMU uses
  mm: Refactor lazy_mmu_mode_pause() and lazy_mmu_mode_resume()
  x86/xen: Change interface of xen_mc_issue()
  x86/xen: Drop lazy mode from trace entries

    [7 lines not shown]
DeltaFile
+117-127arch/x86/xen/xen-ops.h
+22-73include/trace/events/xen.h
+30-44arch/x86/xen/mmu_pv.c
+45-11include/linux/pgtable.h
+0-45arch/x86/xen/p2m.c
+12-18arch/x86/xen/enlighten_pv.c
+226-31812 files not shown
+252-40718 files

Linux/linux 73f3994. Makefile, Documentation/dev-tools propeller.rst autofdo.rst

Merge tag 'kbuild-7.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux

Pull Kbuild / Kconfig updates from Nathan Chancellor:
 "Kbuild:

   - Remove broken module linking exclusion for BTF

   - Add documentation around how offset header files work

   - Include unstripped vDSO libraries in pacman packages

   - Bump minimum version of LLVM for building the kernel to 17.0.1 and
     clean up unnecessary workarounds

   - Use a context manager in run-clang-tools

   - Add dist macro value if present to release tag for RPM packages

   - Detect and report truncated buf_printf() output in modpost

    [39 lines not shown]
DeltaFile
+132-0scripts/kconfig/kconfig-sym-check.pl
+82-0scripts/Makefile.vmlinux_a
+31-24Makefile
+37-12Documentation/dev-tools/propeller.rst
+41-0Documentation/dev-tools/autofdo.rst
+33-8Documentation/kbuild/makefiles.rst
+356-4429 files not shown
+491-17035 files

Linux/linux de02909fs/configfs dir.c inode.c

Merge tag 'pull-configfs-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull configfs updates from Al Viro:
 "A couple of fixes (UAF in configfs_lookup() and really old races
  introduced when lseek() on configfs directories stopped locking those
  directories; impact up to and including UAF).

  Fixes aside, the main result is that configfs is finally switched to
  tree-in-dcache machinery. It's *not* making use of recursive removal
  helpers yet, and it still does the bloody awful "build subtree in full
  sight of userland, with possibility of failure halfway through and
  need to unroll" that forces the locking model from hell; dealing with
  that is a separate patch series, once this one is out of the way.
  However, it is using DCACHE_PERSISTENT properly now. And apparmorfs is
  the sole remaining user of __simple_{unlink,rmdir}() at that point"

* tag 'pull-configfs-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  create_default_group(): pass parent's dentry instead of config_group
  configfs_attach_group(): drop the unused parent_item argument

    [16 lines not shown]
DeltaFile
+160-163fs/configfs/dir.c
+0-25fs/configfs/inode.c
+1-2fs/configfs/symlink.c
+0-1fs/configfs/configfs_internal.h
+161-1914 files

Linux/linux 8ab34affs libfs.c, fs/configfs dir.c

Merge tag 'pull-d_add' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull dentry d_add() cleanups from Al Viro:
 "This converts a bunch of unidiomatic uses of d_add() in ->lookup()
  instances to equivalent uses of d_splice_alias(), which is the normal
  mechanism for ->lookup()"

* tag 'pull-d_add' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  gfs2: use d_splice_alias() for ->lookup() return value
  ntfs: use d_splice_alias() for ->lookup() return value
  simple_lookup(): use d_splice_alias() for ->lookup() return value
  ecryptfs: use d_splice_alias() for ->lookup() return value
  configfs_lookup(): switch to d_splice_alias()
  tracefs: use d_splice_alias() in ->lookup() instances
DeltaFile
+3-5fs/ecryptfs/inode.c
+2-6fs/gfs2/inode.c
+2-4fs/tracefs/event_inode.c
+1-2fs/libfs.c
+1-2fs/ntfs/namei.c
+1-2fs/configfs/dir.c
+10-216 files

Linux/linux e8a56d6Documentation/filesystems porting.rst, fs dcache.c

Merge tag 'pull-dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull dcache updates from Al Viro:

 - d_alloc_parallel() API change (Neil's with my changes)

 - NORCU fixes

 - Reorganization and simplification of dentry eviction logic

 - Simplifying rcu_read_lock() scopes in fs/dcache.c

 - Secondary roots work - getting rid of NFS fake root dentries and
   dealing with remaining shrink_dcache_for_umount() and
   shrink_dentry_list() races

 - making cursors NORCU (surprisingly easy)

* tag 'pull-dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (22 commits)

    [21 lines not shown]
DeltaFile
+324-225fs/dcache.c
+2-33fs/nfs/getroot.c
+24-7include/linux/dcache.h
+17-0Documentation/filesystems/porting.rst
+4-5fs/exportfs/expfs.c
+2-4fs/nfs/dir.c
+373-27412 files not shown
+387-29418 files

Linux/linux 79169a1Documentation/filesystems proc.rst, fs filesystems.c namespace.c

Merge tag 'vfs-7.2-rc1.procfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull procfs updates from Christian Brauner:

 - Revamp fs/filesystems.c

   The file was a mess with a hand-rolled linked list in desperate need
   of a cleanup. The filesystems list is now RCU-ified, /proc files can
   be marked permanent from outside fs/proc/, and the string emitted
   when reading /proc/filesystems is pre-generated and cached instead of
   pointer-chasing and printfing entry by entry on every read.

   The file is read frequently because libselinux reads it and is linked
   into numerous frequently used programs (even ones you would not
   suspect, like sed!). Scalability also improves since reference
   maintenance on open/close is bypassed.

    open+read+close cycle single-threaded (ops/s):
      before: 442732

    [50 lines not shown]
DeltaFile
+224-106fs/filesystems.c
+70-92fs/proc/base.c
+26-8fs/namespace.c
+10-15fs/proc/fd.c
+18-6fs/proc/root.c
+18-1Documentation/filesystems/proc.rst
+366-22812 files not shown
+429-24918 files

Linux/linux 7e0e7bdDocumentation/filesystems adding-new-filesystems.rst, fs pipe.c

Merge tag 'vfs-7.2-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull misc vfs updates from Christian Brauner:
 "Features:

   - Reduce pipe->mutex contention by pre-allocating pages outside the
     lock in anon_pipe_write().

     anon_pipe_write() called alloc_page() once per page while holding
     pipe->mutex. The allocation can sleep doing direct reclaim and runs
     memcg charging, which extends the critical section and stalls any
     concurrent reader on the same mutex. Now up to 8 pages are
     pre-allocated before the mutex is taken, leftovers are recycled
     into the per-pipe tmp_page[] cache before unlock, and any remainder
     is released after unlock, keeping the allocator out of the critical
     section on both sides. On a writers x readers sweep with 64KB
     writes against a 1 MB pipe throughput improves 6-28% and average
     write latency drops 5-22%; under memory pressure - when the cost of
     holding the mutex across reclaim is highest - throughput improves

    [135 lines not shown]
DeltaFile
+616-0tools/testing/selftests/pipe/pipe_bench.c
+195-0Documentation/filesystems/adding-new-filesystems.rst
+102-4fs/pipe.c
+81-16init/initramfs_test.c
+38-30init/initramfs.c
+64-1include/linux/uaccess.h
+1,096-5176 files not shown
+1,463-38982 files

Linux/linux ff8747afs xattr.c pidfs.c, fs/kernfs inode.c

Merge tag 'vfs-7.2-rc1.xattr' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull simple_xattr updates from Christian Brauner:
 "This reworks the simple xattr api to make it more efficient and easier
  to use for all consumers.

  The simple_xattr hash table moves from the inode into a per-superblock
  cache, removing the per-inode overhead for the common case of few or
  no xattrs. The interface now passes struct simple_xattrs ** so lazy
  allocation is handled internally instead of by every caller, kernfs
  xattr operations on kernfs nodes shared between multiple superblocks
  are properly serialized, and tmpfs constructs "security.foo" xattr
  names with kasprintf() instead of kmalloc() plus two memcpy()s.

  A follow-up fix links kernfs nodes to their parent before the LSM init
  hook runs: with the per-sb cache kernfs_xattr_set() computes the cache
  via kernfs_root(kn), which faulted on a freshly allocated node when
  selinux_kernfs_init_security() called into it - reproducible as a NULL
  pointer dereference on the first cgroup mkdir on SELinux-enabled

    [16 lines not shown]
DeltaFile
+166-116fs/xattr.c
+237-19kernel/bpf/inode.c
+17-33mm/shmem.c
+12-33fs/pidfs.c
+20-19include/linux/xattr.h
+18-18fs/kernfs/inode.c
+470-2388 files not shown
+528-28814 files

Linux/linux ec5d1aefs/iomap buffered-io.c iter.c, fs/verity pagecache.c

Merge tag 'vfs-7.2-rc1.iomap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull iomap updates from Christian Brauner:

 - Add the vfs infrastructure required to implement fs-verity support
   for XFS with a post-EOF merkle tree: fsverity generates and stores a
   zero-block hash, and iomap learns to verify data on buffered reads,
   to handle fsverity during writeback via the new IOMAP_F_FSVERITY
   flag, and to write fsverity metadata through iomap_fsverity_write().

 - Skip the memset of the iomap in iomap_iter() once the iteration is
   done. In high-IOPS scenarios (4k randread NVMe polling via io_uring)
   the pointless memset wasted memory write bandwidth; this improves
   IOPS by about 5% on ext4 and xfs.

 - Add balance_dirty_pages_ratelimited() to iomap_zero_iter(), aligning
   it with iomap_write_iter(). This prepares for the exFAT iomap
   conversion where zeroing beyond valid_size can trigger large-scale
   zeroing operations that caused memory pressure without throttling.

    [28 lines not shown]
DeltaFile
+104-12fs/iomap/buffered-io.c
+17-10include/linux/iomap.h
+22-0fs/verity/pagecache.c
+0-14include/linux/bio.h
+6-6fs/iomap/iter.c
+8-0include/linux/fsverity.h
+157-426 files not shown
+170-4912 files

Linux/linux 5b7c3f0fs eventpoll.c, include/linux eventpoll.h

Merge tag 'vfs-7.2-rc1.eventpoll' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull eventpoll updates from Christian Brauner:

 - eventpoll clarity refactor

   The recent eventpoll UAF fixes (a6dc643c6931 and follow-ups) depended
   on invariants in fs/eventpoll.c that were nowhere documented and had
   to be reverse-engineered from the code: the lifetime relationships
   between struct eventpoll, struct epitem, and struct file, the three
   removal paths coordinating via epi_fget() pins and ep->mtx, the
   ovflist sentinel-encoded scan state machine, the POLLFREE
   release/acquire handshake, and the loop / path check globals
   serialized by epnested_mutex. The fixes were correct but the next
   person to touch this code would hit the same learning curve.

   This series codifies those invariants in source and tightens the
   surrounding structure. No functional changes intended:


    [79 lines not shown]
DeltaFile
+848-457fs/eventpoll.c
+45-0tools/testing/selftests/filesystems/epoll/epoll_wakeup_test.c
+8-0include/linux/eventpoll.h
+901-4573 files

Linux/linux c8ed3a1Documentation/filesystems locking.rst, drivers/md md-bitmap.c

Merge tag 'vfs-7.2-rc1.bh' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull buffer_head updates from Christian Brauner:
 "This removes b_end_io from struct buffer_head.

  Instead of setting bio->bi_end_io to end_bio_bh_io_sync() which then
  calls bh->b_end_io(), the new bh_submit() and __bh_submit() interfaces
  set bio->bi_end_io to the appropriate completion handler directly,
  replacing two indirect function calls in the completion path with one.
  It is also one fewer function pointer in the middle of a writable data
  structure that can be corrupted, it shrinks struct buffer_head from
  104 to 96 bytes allowing roughly 7% more buffer_heads to be cached in
  the same amount of memory, and it removes some atomic operations as
  the buffer refcount is no longer incremented before calling the end_io
  handler.

  All in-tree users (fs/buffer.c itself, ext4, jbd2, ocfs2, gfs2,
  nilfs2, and md-bitmap) are converted, and submit_bh(),
  mark_buffer_async_write(), and end_buffer_write_sync() are removed"

    [23 lines not shown]
DeltaFile
+205-186fs/buffer.c
+14-13drivers/md/md-bitmap.c
+8-10fs/ext4/super.c
+4-12fs/ocfs2/buffer_head_io.c
+9-7include/linux/buffer_head.h
+0-14Documentation/filesystems/locking.rst
+240-24215 files not shown
+291-29921 files

Linux/linux c17fdf6fs fs-writeback.c, include/linux fs.h backing-dev-defs.h

Merge tag 'vfs-7.2-rc1.writeback' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs writeback updates from Christian Brauner:

 - Fix a race between cgroup_writeback_umount() and inode_switch_wbs()

   When a container exits, a race between cgroup_writeback_umount() and
   inode_switch_wbs()/cleanup_offline_cgwb() can trigger "VFS: Busy
   inodes after unmount" followed by a use-after-free on percpu
   counters.

   There is a window between inode_prepare_wbs_switch() returning true
   (having passed the SB_ACTIVE check and grabbed the inode) and the
   subsequent wb_queue_isw() call: if cgroup_writeback_umount() observes
   the global isw_nr_in_flight counter as non-zero but flush_workqueue()
   finds nothing queued yet, it returns early - leaving a held inode
   reference that blocks evict_inodes() and a later iput() that hits
   freed percpu counters.


    [32 lines not shown]
DeltaFile
+112-26fs/fs-writeback.c
+13-2mm/filemap.c
+8-0include/linux/fs/super_types.h
+6-0mm/page-writeback.c
+2-4include/linux/fs.h
+3-0include/linux/backing-dev-defs.h
+144-322 files not shown
+147-338 files

Linux/linux 0793d39fs super.c, fs/ext4 extents-test.c mballoc-test.c

Merge tag 'vfs-7.2-rc1.super' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs superblock updates from Christian Brauner:
 "This retires sget().

  CIFS plus the two ext4 KUnit tests (extents-test, mballoc-test) were
  the last in-tree callers, and all three convert cleanly to sget_fc().

  That lets sget() and its prototype come out, taking ~60 lines that
  only existed to be kept in lockstep with sget_fc() on every
  publish-path change"

* tag 'vfs-7.2-rc1.super' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  fs: retire sget()
  smb: client: convert cifs_smb3_do_mount() to sget_fc()
  ext4: convert mballoc KUnit test to sget_fc()
  ext4: convert extents KUnit test to sget_fc()
DeltaFile
+5-66fs/super.c
+26-17fs/smb/client/cifsfs.c
+18-4fs/ext4/extents-test.c
+15-2fs/ext4/mballoc-test.c
+3-2fs/smb/client/connect.c
+0-4include/linux/fs.h
+67-954 files not shown
+73-9910 files

Linux/linux 50b900ctools/testing/selftests/filesystems/openat2 resolve_test.c openat2_test.c, tools/testing/selftests/openat2 resolve_test.c openat2_test.c

Merge tag 'vfs-7.2-rc1.openat2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull openat2 updates from Christian Brauner:
 "Features:

   - Add O_EMPTYPATH to openat(2)/openat2(2). To get an operable file
     descriptor from an O_PATH file descriptor it is possible to use
     openat(fd, ".", O_DIRECTORY) for directories, but other file types
     require going through open("/proc/<pid>/fd/<nr>") and thus depend
     on a functioning procfs.

     With O_EMPTYPATH an empty path string is accepted and LOOKUP_EMPTY
     is set at path resolution time, allowing to reopen the file behind
     the file descriptor directly. Selftests are included.

   - Add an OPENAT2_REGULAR flag for openat2(2) which refuses to open
     anything but regular files with the new EFTYPE error code.

     This implements the "ability to only open regular files" feature

    [41 lines not shown]
DeltaFile
+561-0tools/testing/selftests/filesystems/openat2/resolve_test.c
+0-523tools/testing/selftests/openat2/resolve_test.c
+362-0tools/testing/selftests/filesystems/openat2/openat2_test.c
+0-338tools/testing/selftests/openat2/openat2_test.c
+0-160tools/testing/selftests/openat2/rename_attack_test.c
+159-0tools/testing/selftests/filesystems/openat2/rename_attack_test.c
+1,082-1,02131 files not shown
+1,512-1,30137 files

Linux/linux 37c405ainclude/linux rhashtable-types.h, ipc sem.c

Merge tag 'kernel-7.2-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull misc kernel updates from Christian Brauner:
 "Fixes

   - rhashtable: give each instance its own lockdep class

     syzbot reported a circular locking dependency between ht->mutex and
     fs_reclaim via the simple_xattrs rhashtable being torn down during
     inode eviction.

     The predicted deadlock cannot occur: rhashtable_free_and_destroy()
     cancels the deferred worker before taking ht->mutex and
     acquisitions on distinct rhashtables are on distinct mutexes.

     Lockdep flags a cycle anyway because every ht->mutex in the kernel
     shared the single static lockdep class from
     rhashtable_init_noprof().


    [26 lines not shown]
DeltaFile
+124-32tools/testing/selftests/pid_namespace/pid_max.c
+5-19tools/testing/selftests/clone3/clone3_cap_checkpoint_restore.c
+18-4include/linux/rhashtable-types.h
+10-7lib/rhashtable.c
+3-3ipc/sem.c
+1-1tools/testing/selftests/Makefile
+161-666 files

Linux/linux 9c9e6bdfs exec.c, fs/proc base.c

Merge tag 'kernel-7.2-rc1.task_exec_state' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull task_exec_state updates from Christian Brauner:
 "This introduces a new per-task task_exec_state structure and relocates
  the dumpable mode and the user namespace captured at execve() from
  mm_struct onto it. It stays attached to the task for its full
  lifetime.

  __ptrace_may_access() and several /proc owner and visibility checks
  need to consult two pieces of state for any observable task, including
  zombies that have already gone through exit_mm(): the dumpable mode
  and the user namespace captured at execve(). Both live on mm_struct
  today, which exit_mm() clears from the task long before the task is
  reaped. A reader that races with do_exit() observes task->mm == NULL
  and either fails the check or falls back to init_user_ns - which
  denies legitimate access to non-dumpable zombies that were running in
  a nested user namespace.

  mm_struct loses ->user_ns and the dumpability bits in ->flags.

    [42 lines not shown]
DeltaFile
+119-0kernel/exec_state.c
+42-23fs/exec.c
+33-18kernel/ptrace.c
+10-35include/linux/sched/coredump.h
+14-21fs/proc/base.c
+27-6kernel/fork.c
+245-10317 files not shown
+326-15223 files

Linux/linux 5d15ab7fs/fat file.c, fs/nfsd nfs4xdr.c vfs.c

Merge tag 'vfs-7.2-rc1.casefold' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs casefolding updates from Christian Brauner:
 "This exposes the case folding behavior of local filesystems so that
  file servers - nfsd, ksmbd, and user space file servers - can report
  the actual behavior to clients instead of guessing.

  Filesystems report case-insensitive and case-nonpreserving behavior
  via new file_kattr flags in their fileattr_get implementations. fat,
  exfat, ntfs3, hfs, hfsplus, xfs, cifs, nfs, vboxsf, and isofs are
  wired up. Local filesystems that are not explicitly handled default to
  the usual POSIX behavior of case-sensitive and case-preserving.

  nfsd uses this to report case folding via NFSv3 PATHCONF and to
  implement the NFSv4 FATTR4_CASE_INSENSITIVE and FATTR4_CASE_PRESERVING
  attributes - both have been part of the NFS protocols for decades to
  support clients on non-POSIX systems - and ksmbd reports it via
  FS_ATTRIBUTE_INFORMATION. Exposing the information through the
  fileattr uapi covers user space file servers.

    [47 lines not shown]
DeltaFile
+91-8fs/nfsd/nfs4xdr.c
+86-0fs/nfsd/vfs.c
+53-0fs/smb/client/cifsfs.c
+31-8fs/nfsd/nfs3proc.c
+36-0fs/fat/file.c
+24-6fs/smb/server/smb2pdu.c
+321-2242 files not shown
+616-5648 files

Linux/linux 6b5b72afs locks.c namei.c, include/linux filelock.h

Merge tag 'vfs-7.2-rc1.directory.delegations' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs directory delegations from Christian Brauner:
 "This contains the VFS prerequisites for supporting directory
  delegations in nfsd via CB_NOTIFY callbacks.

  The filelock core gains support for ignoring delegation breaks for
  directory change events together with an inode_lease_ignore_mask()
  helper, and fsnotify gains fsnotify_modify_mark_mask() and a
  FSNOTIFY_EVENT_RENAME data type.

  With this in place nfsd can request delegations on directories and set
  up inotify watches to trigger sending CB_NOTIFY events to clients
  instead of having every directory change break the delegation.

  New tracepoints are added to fsnotify() and to the start of
  break_lease(), and trace_break_lease_block() is passed the currently
  blocking lease instead of the new one.


    [13 lines not shown]
DeltaFile
+92-26fs/locks.c
+43-23include/linux/filelock.h
+51-0include/trace/events/fsnotify.h
+37-1include/trace/events/filelock.h
+35-0include/trace/misc/fsnotify.h
+17-14fs/namei.c
+275-647 files not shown
+341-7113 files

Linux/linux fac863cfs inode.c dcache.c, fs/ext4 ialloc.c

Merge tag 'vfs-7.2-rc1.inode' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs inode updates from Christian Brauner:
 "This extends the lockless ->i_count handling.

  iput() could already decrement any value greater than one locklessly
  but acquiring a reference always required taking inode->i_lock. Now
  acquiring a reference is lockless as long as the count was already at
  least 1, i.e., only the 0->1 and 1->0 transitions take the lock.

  This avoids the lock for the common cases of nfs calling into the
  inode hash and btrfs using igrab(). Cleanup-wise icount_read_once() is
  added to line up with inode_state_read_once() and the open-coded
  ->i_count loads across the tree are converted, and ihold() is
  relocated and tidied up.

  On top of that some stale lock ordering annotations are retired from
  the inode hash code: iunique() no longer takes the hash lock since the
  inode hash became RCU-searchable and s_inode_list_lock is no longer

    [7 lines not shown]
DeltaFile
+81-19fs/inode.c
+13-0include/linux/fs.h
+2-2fs/nfs/inode.c
+4-0fs/dcache.c
+2-2fs/ext4/ialloc.c
+1-1fs/xfs/xfs_trace.h
+103-249 files not shown
+112-3315 files

Linux/linux 4d23bdcfs/nfsd blocklayout.c nfs4layouts.c, fs/xfs xfs_pnfs.c xfs_pnfs.h

Merge tag 'vfs-7.2-rc1.exportfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull exportfs updates from Christian Brauner:
 "This cleans up the exportfs support for block-style layouts that
  provide direct block device access: the operations for layout-based
  block device access are split out of struct export_operations into a
  separate header, ->commit_blocks() no longer takes a struct iattr
  argument, and the way support for layout-based block device access is
  detected is reworked.

  nfsd's blocklayout code also stops honoring loca_time_modify. This is
  preparation for supporting export of more than a single device per
  file system"

* tag 'vfs-7.2-rc1.exportfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  exportfs,nfsd: rework checking for layout-based block device access support
  exportfs: don't pass struct iattr to ->commit_blocks
  exportfs: split out the ops for layout-based block device access
  nfsd/blocklayout: always ignore loca_time_modify
DeltaFile
+88-0include/linux/exportfs_block.h
+32-12fs/xfs/xfs_pnfs.c
+17-20fs/nfsd/blocklayout.c
+8-21fs/nfsd/nfs4layouts.c
+8-17include/linux/exportfs.h
+5-6fs/xfs/xfs_pnfs.h
+158-763 files not shown
+162-819 files

Linux/linux d2cb5e6fs bpf_fs_kfuncs.c

Merge tag 'vfs-7.2-rc1.kfunc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull bpf filesystem kfunc fix from Christian Brauner:
 "The bpf_set_dentry_xattr() and bpf_remove_dentry_xattr() kfuncs locked
  the inode of the supplied dentry without checking whether the dentry
  is negative.

  Passing a negative dentry (e.g., from security_inode_create) caused a
  NULL pointer dereference. Negative dentries now fail with EINVAL. The
  WARN_ON(!inode) in the bpf xattr permission helpers is dropped as well
  since it could be triggered the same way, amounting to a denial of
  service on systems with panic_on_warn enabled"

* tag 'vfs-7.2-rc1.kfunc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  bpf: fix crash in bpf_[set|remove]_dentry_xattr for negative dentries
DeltaFile
+8-2fs/bpf_fs_kfuncs.c
+8-21 files

Linux/linux 8cd9520. Makefile

Linux 7.1
DeltaFile
+1-1Makefile
+1-11 files

Linux/linux 4242809arch/arm/include/asm io.h, arch/arm/kernel hibernate.c entry-armv.S

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rmk/linux

Pull ARM fixes from Russell King:

 - Avoid KASAN instrumentation of half-word IO

 - Use a byte load for KASAN shadow stack

 - Fix kexec and hibernation with PAN

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rmk/linux:
  ARM: 9476/1: mm: fix kexec and hibernation with CONFIG_CPU_TTBR0_PAN
  ARM: 9475/1: entry: use byte load for KASAN VMAP stack shadow
  ARM: 9474/1: io: avoid KASAN instrumentation of raw halfword I/O
DeltaFile
+13-2arch/arm/include/asm/io.h
+12-0arch/arm/mm/idmap.c
+10-0arch/arm/kernel/hibernate.c
+1-1arch/arm/kernel/entry-armv.S
+36-34 files

Linux/linux e21ee27drivers/clk/qcom dispcc-sc8280xp.c dispcc-x1e80100.c, drivers/clk/samsung clk-gs101.c

Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux

Pull clk fixes from Stephen Boyd:
 "Fixes for the Qualcomm and Google GS101 clk drivers:

   - Skip parking clks on some Qualcomm platforms so that the recovery
     console keeps working

   - Fix Google GS101 resume by using the correct div register"

* tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
  clk: qcom: dispcc-sc8280xp: Don't park mdp_clk_src at registration time
  clk: samsung: gs101: Fix missing USI7_USI DIV clock in peric0_clk_regs
  clk: qcom: x1e80100-dispcc: Stop disp_cc_mdss_mdp_clk_src from getting parked
DeltaFile
+2-2drivers/clk/qcom/dispcc-sc8280xp.c
+1-1drivers/clk/qcom/dispcc-x1e80100.c
+1-1drivers/clk/samsung/clk-gs101.c
+4-43 files

Linux/linux 2b07ea7lib debugobjects.c

Merge tag 'core-urgent-2026-06-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull debugobjects fix from Ingo Molnar:

 - Fix potential debugobjects deadlock on PREEMPT_RT kernels (Waiman
   Long)

* tag 'core-urgent-2026-06-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  debugobjects: Don't call fill_pool() in early boot hardirq context
DeltaFile
+37-9lib/debugobjects.c
+37-91 files

Linux/linux a5e98d1. MAINTAINERS, drivers/i2c/busses i2c-tegra.c i2c-imx-lpi2c.c

Merge tag 'i2c-for-7.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
 "The biggest news here is that this is my last pull request as I2C
  maintainer after 13.5 years. Starting with the 7.2 cycle, Andi Shyti
  is taking over who helped me greatly maintaining the host drivers for
  a while now. Thank you, Andi, and good luck with the subsystem. I'll
  be around for help, of course.

  Technically, there are two patches which might be a tad large for this
  late cycle, but most of them is explaining comments, so I think they
  are suitable.

   - MAINTAINERS:
      - hand over I2C maintainership to Andi
      - minor updates

   - rust: fix I2cAdapter refcount double increment


    [26 lines not shown]
DeltaFile
+34-27drivers/i2c/busses/i2c-tegra.c
+32-21drivers/i2c/busses/i2c-imx-lpi2c.c
+12-3drivers/i2c/busses/i2c-imx.c
+3-3MAINTAINERS
+3-3drivers/i2c/busses/i2c-stm32f7.c
+3-1drivers/i2c/busses/i2c-riic.c
+87-583 files not shown
+92-619 files

Linux/linux 062871fdrivers/pinctrl pinctrl-amd.c pinctrl-mcp23s08_spi.c

Merge tag 'pinctrl-v7.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control fixes from Linus Walleij:

 - Two fixes for the mcp23s08 driver.

 - Revert an earlier fix to the AMD pin controller that was all wrong. A
   proper fix is being developed.

* tag 'pinctrl-v7.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
  Revert "pinctrl-amd: enable IRQ for WACF2200 touchscreen on Lenovo Yoga 7 14AGP11"
  pinctrl: mcp23s08: Read spi-present-mask as u8 not u32
  pinctrl: mcp23s08: Initialize mcp->dev and mcp->addr before regmap init
DeltaFile
+0-35drivers/pinctrl/pinctrl-amd.c
+7-4drivers/pinctrl/pinctrl-mcp23s08_spi.c
+7-392 files

Linux/linux 4fa048edrivers/gpu/drm drm_atomic_uapi.c, drivers/gpu/drm/amd/display/amdgpu_dm amdgpu_dm.c

Merge tag 'drm-fixes-2026-06-13' of https://gitlab.freedesktop.org/drm/kernel

Pull drm fixes from Dave Airlie:
 "Looks like it's settled down a bit more thankfully. Small changes
  across the board, amdgpu/xe leading with some colorop changes in the
  core/amd. Otherwise some misc driver fixes.

  colorop:
   - make lut interpolation mutable
   - track colorop updates correctly

  amdgpu:
   - UserQ fix
   - Userptr fix
   - MCCS freesync fix
   - track colorop changes correctly

  amdkfd:
   - Fix an event information leak

    [49 lines not shown]
DeltaFile
+53-15drivers/gpu/drm/drm_atomic_uapi.c
+24-37drivers/gpu/drm/xe/xe_drm_ras.c
+35-14drivers/gpu/drm/xe/xe_guc_submit.c
+16-18include/drm/drm_colorop.h
+11-9drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+15-4drivers/gpu/drm/i915/gem/i915_gem_phys.c
+154-9718 files not shown
+241-13324 files

Linux/linux 7c62657drivers/gpu/drm drm_atomic_uapi.c drm_colorop.c, drivers/gpu/drm/amd/display/amdgpu_dm amdgpu_dm.c

Merge tag 'drm-misc-fixes-2026-06-12' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes

Short summary of fixes pull:

amd:
- track colorop changes correctly

amdxdna:
- fix possible leak of mm_struct

colorop:
- make lut interpolation mutable
- track colorop updates correctly

ivpu:
- fix integer truncation

vc4:
- fix leak in krealloc() error handling

    [8 lines not shown]
DeltaFile
+53-15drivers/gpu/drm/drm_atomic_uapi.c
+16-18include/drm/drm_colorop.h
+14-2drivers/gpu/drm/drm_colorop.c
+7-6drivers/gpu/drm/vc4/vc4_validate_shaders.c
+5-1drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+4-1drivers/gpu/drm/virtio/virtgpu_drv.c
+99-435 files not shown
+111-4811 files