aboutsummaryrefslogtreecommitdiff
path: root/Documentation/filesystems
AgeCommit message (Collapse)AuthorFilesLines
22 hoursMerge tag 'ntfs3_for_7.4' of ↵Linus Torvalds1-0/+23
https://github.com/Paragon-Software-Group/linux-ntfs3 Pull ntfs3 updates from Konstantin Komarov: "The bulk of this cycle is hardening against corrupted or maliciously crafted volumes. Most of these fixes come from fuzzing and KASAN reports. The main areas are: - $LogFile replay, where several unchecked on-disk sizes could make mount write past the MFT record buffer - MFT record and index parsing - extended attributes, where a bad $EA entry could leak up to 64K of kernel heap to userspace through getxattr() Reading a damaged compressed file could also return uninitialized page cache contents to userspace; that is fixed too. A few fixes affect healthy volumes as well: a heap overflow in fallocate(INSERT_RANGE) on small files, a use-after-free when a WOF-compressed file is opened for writing during a concurrent read, a lock-order deadlock in readdir, and stale disk data showing up in newly allocated clusters of compressed files. On the feature side there are new tracepoints covering mount, log replay, lookup, directory index, allocation, iomap and file I/O. There is also a new 'ugm' mount option (on by default): with ugm=0, newly created files don't get the WSL uid/gid/mode extended attributes, which Windows doesn't use. The rest is smaller correctness fixes and cleanups" * tag 'ntfs3_for_7.4' of https://github.com/Paragon-Software-Group/linux-ntfs3: (52 commits) ntfs3: add file I/O tracepoints ntfs3: add iomap tracepoints ntfs3: add allocation tracepoints ntfs3: add directory index tracepoints ntfs3: add create inode tracepoint ntfs3: add namei tracepoints ntfs3: add mount and log replay tracepoints fs/ntfs3: validate the EA value length in ntfs_read_ea() fs/ntfs3: handle partial allocation in attr_data_get_block_locked() ntfs3: fix mapping pairs bounds check for alignment fs/ntfs3: bound DeleteAttribute asize against rec->used in do_action ntfs3: release ni_lock before dir_emit in ntfs_readdir to fix deadlocks fs/ntfs3: bound CreateAttribute asize against record_size in do_action fs/ntfs3: do not mark frame pages uptodate on read error fs/ntfs3: prevent positive E_NTFS_NONRESIDENT from reaching writeback error handling fs/ntfs3: fix ntfs_fnd leak when compare function is missing fs/ntfs3: fix stale attr_b in attr_allocate_frame() fs/ntfs3: reject unaligned hole punching on compressed files fs/ntfs3: take ni_lock() once in ntfs_readdir() fs/ntfs3: reserve a compression unit in maxbytes_sparse ...
3 daysMerge tag 'mm-stable-2026-10-25-19-27' of ↵Linus Torvalds1-0/+81
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Pull more MM updates from Andrew Morton: - "mm: make VMA flag semantics explicit, eliminate VM_SPECIAL" (Lorenzo Stoakes): Replace VM_SPECIAL with helpers describing mapping ownership and behavior. Enforce the mmap flag rules and convert affected drivers, removing ambiguous tests shared by driver mappings and ordinary memory. - "support kselftest on nommu platform" (Hajime Tazaki): Add opt-in mmap and mremap tests for NOMMU systems. Teach the runner to avoid its fork-dependent timeout command and document the build and runtime requirements. - "mm/collapse: separate a collapse from its callers" (Kiryl Shutsemau): Separate huge-page collapse from caller policy. Replace khugepaged identity checks with explicit permissions, and separate scanning from collapse with the mmap_lock drop in one place. - "mm: implement and use vma_has_anon_rmap(), silence KCSAN" (Lorenzo Stoakes): Provide a common helper for testing whether a VMA has anonymous reverse mappings. Document the locking rules, annotate intentional concurrent reads for KCSAN, and convert the core MM callers. - "mm/sparse: remove SECTION_MARKED_PRESENT and further cleanups" (David Hildenbrand): Remove SECTION_MARKED_PRESENT in favor of the early-section flag. Simplify sparse memory initialization, section metadata handling and related PFN validity checks. - "sh: remove NUMA and SPARSEMEM support" (Mike Rapoport): Remove SuperH NUMA and SPARSEMEM support. The extra memory banks have been unusable since the NO_BOOTMEM conversion, leaving only the code and data overhead. - "mm: Unify device DAX and HugeTLB vmemmap population paths" (Muchun Song): Unify the generic device DAX and HugeTLB vmemmap population paths and shared tail-page handling. Remove the duplicate DAX machinery while retaining the powerpc radix implementation. - "kselftest: mm: fix some failure of split_huge_page_test" (Yeoreum Yun): Fix huge-page split tests racing with khugepaged recollapse. Use pagemap and page flags instead of VMA-boundary assumptions which fail when glibc has already enabled THP. - "memcg: move memcgid refcount to objcg to unpin dying memcgs" (Bingfang Guo): Let dying memcgs be freed while swapped-out shmem still holds their IDs. Move ID references to reparentable objcgs, with the necessary swap accounting and RCU lifetime changes. - "mm/truncate: fix data loss when truncating straddling large folios" (Zhang Yi): Preserve out-of-range data when truncating straddling large folios. Fix a lookup race and split-failure handling, and handle minimum folio orders for the forthcoming ext4 iomap buffered I/O path. - "mm/damon: introduce damos quota goal target metric complement flag" (SJ Park): Let DAMOS quota goals use a metric's complement, so utilization can also express free-memory goals without adding separate metrics. Add the sysfs interface, documentation and tests. - "arm64/mm: Standardize printing for pgtable entries" (Anshuman Khandual): Use the generic formatter for arm64 page-table entries, ready for future wider entries. Move the safe-PTE-update check out of the header to avoid an include cycle. - "mm: kmsan: fix iounmap metadata teardown" (Dima Koziuk): Fix KMSAN metadata leaks on iounmap and failed ioremap allocations. Free backing pages before removing their mappings, and share the teardown with partial-allocation cleanup. - "mm/damon/core: preserve quota state when constructing schemes" (Karl Mehltretter): Preserve running DAMOS quota state while validating parameter updates. Even rejected updates could reset accounting and exceed the quota window; add tests for both accepted and rejected updates. - "mm/vmalloc: fix vmalloc_dump_obj VA lookup" (Ye Liu): Fix vmalloc_dump_obj() lookups for last-page addresses and allocations spanning vmap zones. These allocations were being missed in diagnostic output. - "mm: various (urgent?) fixes" (David Hildenbrand): Fix mmap charge leaks and hugetlb use-after-free, wrong-address unmapping, stuck locks and endless faults. Also preserve reservations on failed mremap and handle stale userfaultfd bits. - "maple_tree: fix maple_range_64 crashes in RCU mode" (Dimitris Charisis): Fix pointer and metadata confusion during RCU destruction of maple_range_64 nodes, avoiding double frees and invalid accesses. Add a regression test; no in-tree user currently uses this combination. - "mm: fix hugetlb NR_HUGETLB accounting on folio migration" (Hongfu Li): Fix hugetlb migration and preallocation accounting so /proc/vmstat retains the correct count and memory.numa_stat follows the folio to its new node. - "mm/damon: fix a minor bug, clean code, and add a test" (SJ Park): Fix 32-bit DAMON age overflow which made old regions look young. Share hugetlb folio acquisition code and add a regression test for the previously fixed last-region skipping bug. - "mm/damon/core: cleanup code, reduce stack usage, and add kunit" (SJ Park): Reduce kdamond stack usage and remove unused enums. Add deterministic PSI quota-goal tests which do not depend on the machine's current memory pressure. - "mm/damon: fix the temporal goal tuner's size quota conversion" (Donggeun Yoo): Bound the temporal tuner's quota conversion to prevent overflow and zero effective quotas, which could stop schemes making progress. Add boundary tests. - "Don't use GFP_DMA when calling dma_alloc_coherent" (Baoquan He): Remove redundant GFP_DMA flags from coherent DMA allocation calls. The DMA API already selects the zone from device limits and ignores the caller's flag. - "kselftest: mm: fix intermittent failure khugepaged test" (Yeoreum Yun): Propagate child-process failures in the khugepaged tests and prevent background collapse from racing their checks. This removes false passes and intermittent failures. - "MAINTAINERS: cover all hugetlb headers under HUGETLB SUBSYSTEM" (Enze Li): Cover all hugetlb headers in MAINTAINERS so get_maintainer.pl finds the right maintainers. Also label the closing hugetlb_cgroup.h include guard. Summary of the 65 singletons in this merge: The singletons include a few worthwhile performance fixes. Avoiding unnecessary reverse-map tree updates gave a reported 15.9% improvement in UnixBench's execl test on a 192-core x86 system. A reclaim retry fix stops defrag_mode from spinning under memory.low protection; a reported file-creation stress test ran 5.7 times faster, with far less memory pressure. Narrower hugetlb invalidations also spare KVM guests needless refaults: the reported Redis-in-VM P99 QPS penalty while punching holes fell from 7.09% to 1.45%. Several fixes prevent lost data or corrupted memory. Lazyfree huge-page races with mremap()/munmap() could lose data or access freed memory, and MADV_COLD could lose a concurrent write's dirty bit. Another fix prevents stale migration entries from outliving large folios. On filesystems with blocks smaller than a page, extending a file by 4 GiB or more could expose bytes written past the old EOF through mmap instead of zeroes. That is fixed, along with use-after-free races in PAGEMAP_SCAN during process exit and in memory-cgroup accounting on PREEMPT_RT kernels. Other fixes stop UFFDIO_MOVE spinning forever on pinned large folios, which could wedge other memory operations, and stop mremap() leaking commit charges until allocations fail under strict overcommit. A further fix keeps userfaultfd tracking intact on neighboring mappings. NUMA binding no longer prevents long-term pins when the chosen node has only movable memory, fixing QEMU/VFIO startup and io_uring buffer registration failures. MGLRU also gets a fix for early-boot crashes with memory cgroups disabled at boot, notably in small crash kernels. * tag 'mm-stable-2026-10-25-19-27' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (213 commits) mm: multi-gen LRU: fix NULL lruvec->pgdat deref with memcg disabled on cmdline mm/page_counter: use WRITE_ONCE() for emin/elow when parent is the root mm/memcontrol: publish null pointer before dropping css reference test_maple_tree: test maple_range_64 node in RCU mode maple_tree: fix maple_range_64 crashes in RCU mode mm/vma: avoid broken uffd merge on mremap tools/testing/shared: catch a failed posix_memalign() mm/damon/core: remove unreachable damos charge_{target,addr}_from mm/shrinker: allocate shrinker_info_unit from a dedicated kmem_cache riscv: mm: exclude invalid THP PMDs from page table check mm/damon/core: filter out damos address filter-split failed region fs/proc/task_mmu: pin mm_users in do_pagemap_scan() mm/mempolicy: apply bind policies against the scoped allocation zone mm/vmscan: reclaim every zone in per-node proactive reclaim mm/mremap: correctly uncharge accountable VMAs in error path mm/mremap: populate calculated fields in vrm state correctly MAINTAINERS: add an entry for MEMORY MANAGEMENT - MEMORY MAP mm: bdi: reset min_ratio after the sysfs attributes are gone mm/page_vma_mapped: continue past nonmatching huge PMDs selftests/mm: skip hugetlb cgroup v2 tests without the needed controllers ...
3 daysMerge tag 'f2fs-for-7.4-rc1' of ↵Linus Torvalds1-1/+2
git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs Pull f2fs updates from Jaegeuk Kim: "In this round, key enhancements focus on introducing a dedicated metadata cache infrastructure and dynamically parameterizing on-disk block layouts and geometry macros. Moving meta, node, and compress blocks out of the VFS page cache removes the page == block size assumption for metadata, which along with dynamic block layout descriptions paves the way for large folio and page != block support in the future. We also opt in to multigrain timestamps, add bio entry-count throttling for asynchronous write_end_io completion, and expose the resizable_tail feature via sysfs. Alongside these features, critical bug fixes resolve race conditions across compression, mmap write faults, checkpoint/shutdown, and filesystem freeze, prevent write bio splitting and GC holes on sequential zoned devices, and strengthen on-disk sanity checks for SIT/NAT bitmaps, read-only curseg entries, and device aliasing. Additional stability patches address online resize, roll-forward recovery, atomic file operations, quota handling, and dirty inode syncing livelocks. Enhancements: - implement dedicated metadata cache for meta, node, and compress blocks to decouple metadata from page cache for large folio and page != block support - dynamically describe SIT, NAT, orphan, dentry, node, and xattr block layouts and parameterize block/sector/node conversion macros - opt in to multigrain timestamps - introduce max_atc_write_bio_entry_cnt sysfs node - expose resizable_tail feature via sysfs - avoid unnecessary reads in f2fs_update_meta_block() Bug fixes: - compress: force out-place update for all writes, allow pinning empty compressed files, and fix truncate/writeback and cache population races - zone: avoid bio split and GC target block grab failure on sequential zones - quota: convert inline quota files on quotaon, fix flush failure during freeze, and restore empty string mount options - atomic/mmap: disallow mmap write and data-modifying fallocate on atomic files, avoid truncate_inode_pages_final() on live inodes, and fix races in f2fs_vm_page_mkwrite() - resize/alias: refresh pinned allocation boundary and flush SIT journal during resize, and drop pending discards before reserving device alias - sanity check: bound SIT/NAT bitmaps by checkpoint pack, check all cur_*_segno[] on readonly images, and validate multi-device on device alias - recovery/cp: release removed xattr node in roll-forward recovery, invalidate curseg on change_curseg() failure, and return -EIO for lost inode block after cp_error - fix livelock in syncing dirty inodes and preserve APPEND/UPDATE ino entries - use bio_in_atomic() in f2fs_{read,write}_end_io() - fix 32-bit shift truncation in mount option bitmasks and defragment range And a number of minor bug fixes" * tag 'f2fs-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (79 commits) f2fs: compress: don't overwrite populated compress cache entry f2fs: fix to update superblock crc in sanity_check_area_boundary() f2fs: fix to fetch ino via ino_of_node() under cache lock f2fs: zone: fix to don't fail to grab GC target block on zoned device f2fs: don't use truncate_inode_pages_final() on live inodes f2fs: expose resizable_tail feature via sysfs f2fs: use BIT_ULL for mount option bitmasks f2fs: fix submit accounting for IPU writeback f2fs: fix to avoid potential reference count leak in do_garbage_collect() f2fs: refresh pinned allocation boundary after resize f2fs: flush SIT journal during filesystem resize f2fs: release a removed xattr node in roll-forward recovery f2fs: quota: fix quota flush failure during filesystem freeze f2fs: return -EIO for a lost inode block after cp_error f2fs: avoid unnecessary reads in f2fs_update_meta_block() f2fs: bound the SIT/NAT bitmaps by the checkpoint pack f2fs: opt in to multigrain timestamps f2fs: fix to use bio_in_atomic() in f2fs_read_end_io() f2fs: fix to use bio_in_atomic() in f2fs_write_end_io() f2fs: fix to invalidate curseg if change_curseg() fails ...
3 daysMerge tag 'fuse-update-7.4' of ↵Linus Torvalds2-0/+199
git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse Pull fuse updates from Miklos Szeredi: - Add dax backing and extent map support for famfs (John Groves, Miklos) - Support large folios (Joanne) - Add selftests and documentation of caching behavior (Luis Henriques) - Add FUSE_SYNCFS request (Jimmy Zuber) - Convert readdir cache to use folios (Tal Zussman) - Lots of bug fixes * tag 'fuse-update-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (53 commits) fuse: handle extent map files in fuse_passthrough_fadvise() fuse: resolve extent maps in O(1) when possible fuse: add support for striped backing fuse: add extent map I/O support fuse: add extent map data structure fuse: add support for opening dax device as backing fuse: support opening 64 bit backing ID fuse: support 64 bit, server allocated backing ID fuse: add helpers for EIO return value with kernel message dax: use READ_ONCE() in dax_holder() dax: add fsdev_dax_from_file() fuse: fix copy_file_range reply handling race virtiofs: validate fixed-output response length fuse: don't d_drop() before d_splice_alias() virtio_fs: read the vring size under virtio_fs_mutex in ->get_tree fuse: validate folio state before pipe_buf_try_steal() in fuse_try_move_folio() fuse: rename fuse_direct_io() to fuse_do_direct_io() fuse: Forward vfs_fadvise to backing_file in passthrough mode selftests/fuse: add the missing FUSE_HAS_SYNCFS privilege test fuse: don't launder folios of a bad inode ...
5 daysMerge tag 'ntfs-for-7.4-rc1' of ↵Linus Torvalds1-0/+65
git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/ntfs Pull ntfs updates from Namjae Jeon: "New features: - Implement ioctls to list, read, write, and remove named streams on files and directories. Provide optional file:stream pathname access through streams_interface=windows, exposing streams as regular file descriptors with support for mmap, locking, truncation, and allocation. - Support file attribute queries and updates through FS_IOC_GETFLAGS and FS_IOC_SETFLAGS. Store immutable, append-only, nodump, and noatime settings in the private $LINUXFLAGS extended attribute and restore them when loading inodes. Also report compression, encryption, and the mount-wide case-folding policy as read-only attributes. Other changes: - Expose the existing NTFS volume serial number through FS_IOC_GETFSUUID by registering it as an eight-byte filesystem identifier. - Validate MFT I/O geometry and write MFT records and mirror data through mapped I/O units, keeping neighboring records intact when multiple records share a native 4Kn block. Track folio writeback until all BIOs complete, serialize raw record updates against writeback, and use the caller's requested completion mode. - Discard stale uninitialized cache data before extending initialized size, ensure shared mmap writes update initialized size after native 4Kn size extension, and synchronize attribute inode sizes after internal resizes. Keep VFS and NTFS sizes consistent when write-error rollback fails and record the volume error. - Wait for existing folio writeback before updating attribute data, require page alignment for full-page write optimizations, and include the final partial cluster in synchronous writes. Skip duplicate VFS page-cache truncation under the MFT record lock to avoid a truncate and writeback deadlock. - Restart allocation zone searches after failed hints and prevent contiguous allocation requests from returning additional disjoint runs that callers leave uninitialized. Allow fallocate after MFT-zone exhaustion and interrupt allocation loops only for fatal signals, avoiding spurious interruptions from io_uring task-work notifications. - Wait for the initial bitmap scan before extending the MFT bitmap, bound direct allocation candidates by the volume size, update free-space accounting, and undo only newly allocated clusters after run coalescing. Update attribute-list inode size before reserving additional space. - Hold runlist locks while expanding non-resident attributes, balance locks during MFT extension error handling, and avoid pointers invalidated by runlist reallocation. Keep source runlists available for rollback and allocate enough room for runlist markers and terminators. - Return errors for unmappable runlist fragments instead of treating them as holes or delayed allocation. Check non-resident attribute sizes against their allocation and fail mounts when $MFT needs extent records outside the decoded runlist to describe itself, preventing silent zero reads and mount hangs. - Load and validate $BadClus:$Bad at mount time and reserve known bad clusters before the free-space scan. Fall back to read-only operation when bad-cluster metadata cannot be validated and prevent subsequent read-write remounts. - Serialize volume flag updates and retain the dirty bit after metadata changes while the volume remains mounted read-write. Persist recorded errors after final metadata commits, fail ordinary read-only remounts on sync, commit, or flush errors, and retain the dirty bit on forced remounts. - Flush the device write cache when syncing directories and report flush failures from both file and directory fsync. Drain in-flight direct I/O before buffered write fallback and keep nonblocking requests from entering the blocking fallback path. - Mount hibernated volumes, or volumes whose hibernation state cannot be determined, read-only regardless of the errors= policy. Prevent mount-time and dirty-state updates from modifying hibernated volumes. - Validate complete EA chains, link zero-terminated tails when appending entries, retain the EA presence flag, and distinguish empty values from removal. Propagate lookup, write, and truncate errors, restore both EA attributes after failed updates, and shut down the volume if restoration fails. - Restore the previous ACL xattr when a subsequent WSL mode update fails, including replacement and removal cases. Record rollback failures so an unsuccessful permission change cannot silently leave inconsistent ACL and mode state. - Apply MST fixups to individual index blocks on large-page systems and use fixed 512-byte VCN units when an index block is smaller than its cluster. Support lookup and removal of POSIX names containing Windows-invalid characters and identify directory symlinks and junctions during enumeration. - Report the stored creation time for symbolic links through statx() when querying the link itself with AT_SYMLINK_NOFOLLOW. - Use wider decompression offsets to avoid overflow on 64 KB pages, accept the standard sparse compression unit, and require the compressed-size field only on the first attribute extent. Block direct reads and skip readahead for encrypted files to prevent returning raw ciphertext. - Validate index entry offsets, logfile update sequence array counts, attribute-list sizes, and index collation key lengths to prevent out-of-bounds accesses, NULL pointer dereferences, and excessive allocations from corrupt volume metadata. - Derive FITRIM bitmap indexes from the page size and retain the full 64-bit minimum discard length. Balance highmem mappings in logfile and MFT mirror checks and propagate specific errors from extent, attribute, and reparse operations. - Compare streams_interface with the mounted volume's setting during remount, make named-stream UAPI padding explicit, document stream access and Linux file attributes, and add the NTFS UAPI header to MAINTAINERS" * tag 'ntfs-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/ntfs: (93 commits) ntfs: handle a failed size rollback in the write error path ntfs: fix u16 truncation of the update sequence array count check ntfs: reject index blocks with a too small entries offset ntfs: support persistent noatime attribute ntfs: roll back the ACL xattr commit when the WSL mode update fails ntfs: report birth time for symbolic links ntfs: support FS_IOC_GETFSUUID ntfs: avoid unnecessary padding in uapi structure ntfs: flush the block device when syncing a directory ntfs: report block device flush failures from fsync ntfs: fix NULL dereference on index allocation open failure ntfs: compare streams_interface with mounted volume on remount ntfs: widen the sub-block offsets in ntfs_decompress() ntfs: reject direct I/O reads of encrypted files ntfs: do not read ahead encrypted files ntfs: persist nodump in the $LINUXFLAGS EA ntfs: persist append-only in the $LINUXFLAGS EA ntfs: persist immutable in the $LINUXFLAGS EA ntfs: add fileattr query support ntfs: restore EA attributes when an update fails ...
5 daysMerge tag 'exfat-for-7.4-rc1' of ↵Linus Torvalds2-0/+118
git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat Pull exfat updates from Namjae Jeon: - Use the recalculated append position when advancing valid_size, dirty all pages involved in valid-data extension, and zero invalid tails on partial overwrites. Write-protect the folio spanning the old EOF and zero its post-EOF range when extending a file, ensuring subsequent mmap writes advance valid_size. - Make valid_size and zeroed_size atomic to prevent torn reads and lost updates. Hold the invalidate lock during truncation, and drain in-flight direct I/O before buffered writes, buffered fallback, and page-cache operations that extend valid_size. - Fall back to single-cluster allocation when a buffered write cannot allocate its entire range, allowing writes to consume the remaining free space and return a short count. - Free clusters allocated beyond EOF after failed or short writes to prevent leaked space and spurious ENOSPC errors on later writes or file extensions. - Clean block-device buffer aliases when allocating clusters so delayed directory metadata writeback cannot overwrite file data after cluster reuse. - Update used_clusters as each cluster is allocated so partial-allocation cleanup keeps free-space accounting consistent. Acquire bitmap_lock before checking available space to serialize the check with allocation. - Use swap-specific iomap operations to report allocated extents beyond valid_size as unwritten during swap activation, retaining byte-accurate SEEK_HOLE and SEEK_DATA reporting in regular I/O. - Check allocation flags, vendor GUIDs, cluster numbers, data lengths, and contiguous extents in Vendor Allocation directory entries. Read complete entry sets during lookup so malformed trailing entries cannot bypass validation. - Follow directory FAT chains to their actual end when the recorded size is too small, supporting devices that leave directory sizes stale. Handle reads after seeking past the directory end. - Clear the volume dirty flag during remount only when switching to read-only without SB_FORCE. Update percent_in_use when changing volume flags, reporting unknown usage while the volume is dirty or persistent flags prevent marking it clean. - Replace runtime division by powers of two with bit operations. - Document supported mount options, and exfatprogs, and add the documentation path to MAINTAINERS. * tag 'exfat-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat: exfat: fix reading a directory whose FAT chain is longer than its size exfat: free clusters beyond EOF when a write fails or is short exfat: clean stale bdev buffers of newly allocated clusters exfat: mark straddling folio RO and zero the post-EOF range exfat: fix a large buffered write failing when the volume is nearly full exfat: zero invalid tail on partial overwrites exfat: drain in-flight DIO before buffered writes exfat: make valid_size and zeroed_size atomic exfat: dirty all new pages when extending valid_size exfat: hold the invalidate lock while truncating exfat: advance valid_size to EOF for append writes MAINTAINERS: add exFAT documentation exfat: remove runtime integer division exfat: update percent_in_use field when updating volume flags exfat: clear the volume dirty flag only when remounting read-only exfat: doc: add documentation exfat: validate vendor allocation directory entries exfat: take bitmap_lock at the start of exfat_alloc_cluster() exfat: fix used_clusters accounting during cluster allocation exfat: map allocated extents for swap activation
5 daysMerge tag 'ksmbd-for-7.4-rc1' of ↵Linus Torvalds1-5/+9
git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/smb Pull smb server updates from Namjae Jeon: - Add extended SMB2 directory information support. Implement FileIdExtdDirectoryInformation, FileId64ExtdDirectoryInformation, FileId64ExtdBothDirectoryInformation, FileIdAllExtdDirectoryInformation, and FileIdAllExtdBothDirectoryInformation, including reparse tags, file attributes, and initialized response padding. - Track unsigned 64-bit lock ranges in the server lock index, with conflict detection, blocking waits, cancellation, rollback, and cleanup for ranges beyond the VFS signed-offset limit. - Add configurable per-connection session limits. Reserve slots for new sessions and multichannel bindings, release them during failure and cleanup, and expose the configured limit through procfs. - Validate POSIX negotiate and CREATE contexts, including payload lengths, extension tags, duplicate contexts, dialect requirements, and share eligibility. Require POSIX opens for POSIX file, directory, and filesystem information queries. - Apply requested POSIX create modes, including mode zero, and NFS mode ACEs with special permission bits. Enforce append-only writes and base byte-range lock checks on each open's POSIX state. - Complete POSIX metadata responses with filenames, file types, permission bits, and filesystem device identifiers. Query filesystem information through the requested open and report the filesystem fragment size and response length. - Validate SMB3 encryption transform flags and ensure decrypted compound requests use the session authenticated by the transform, including requests containing compressed payloads. - Serialize negotiation with receive processing, size CREATE responses for their contexts, reserve UTF-16 terminator space in stream information, and validate WRITE data against the active compound request to prevent buffer overruns and stale-data writes. - Validate security descriptor offsets before pointer arithmetic, handle DACL offset overflow on 32-bit systems, and propagate inode ACL lookup failures safely. - Deny access through empty DACLs while retaining the owner's implicit security-management rights. Add KUnit regression coverage for DACL walk boundaries and maximal-access calculations. - Validate RPC pipe ownership for IPC$ reads and writes, and fix FSCTL_PIPE_TRANSCEIVE handle lookup and response file IDs. - Fix durable reconnect path validation for symlinked share paths, shares exporting "/", and handles opened at the share root. Check path boundaries before comparisons to prevent out-of-bounds reads and cross-share confusion. - Rebind completed durable CREATE replays to surviving channels without draining unrelated requests on the old channel. Transfer open accounting with the binding and avoid consuming additional open-file budget during durable reconnects. - Scope AppInstanceId takeovers to the matching share, path, stream, and client identity. Check access and AppInstanceVersion before closing an existing open. - Retry oplock and lease break notifications through other live channels, track queued TCP delivery, serialize acknowledgment updates, and expire unacknowledged breaks while waking blocked requests. - Keep lease tables and byte-range lock indexes independent of their original connection so surviving channels and detached durable opens retain access to lease and lock state. - Reclaim ended sessions after logoff and expiration, hold connection references for session channels, and drain procfs readers before releasing session table references. Avoid deadlocks during previous-session teardown and connection scavenging. - Prevent file publication after tree disconnect and retain tree references until final file release. Take parent dentry references during directory enumeration and serialize directory emptiness checks with readdir. - Prevent share-root removal through empty removal paths and return appropriate errors for directory zero-data requests and temporary directory attributes. - Fix named-stream writes, EOF changes, end-of-file reads, and content copying into rename targets. Reuse existing xattr names, report sizes by exact xattr name, and avoid emptying streams after lookup or permission failures. - Round allocation requests to the advertised allocation unit and avoid allocation changes that leave on-disk EOF inconsistent with the in-memory size. - Inherit FileIds across related compound requests, including CHANGE_NOTIFY, and use the existing async request machinery for notify waiting and cancellation. - Restore share configuration and Kerberos authentication compatibility with released ksmbd-tools. Advertise extended session security for raw NTLMSSP when requested by the client. - Improve Windows chained-compression compatibility, synthesized AFP_AfpInfo headers, generated short names, and UTF-16 alignment in partial normalized-name responses. - Fix interface-query locking, response chaining, link-speed reporting, and independent IPv4/IPv6 address enumeration. Display native IPv6 client addresses accurately in procfs. - Improve SMB Direct socket cleanup by reclaiming failed pending connections, skipping failed sockets during accept, avoiding indefinite disconnect waits, and handling unexpected receive opcodes without triggering kernel warnings. - Select CRYPTO_AES for SMB3 encryption, replace deprecated system workqueues, and update feature status documentation and POSIX specification references. * tag 'ksmbd-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/smb: (95 commits) ksmbd: select CRYPTO_AES ksmbd: prevent share root removal through empty paths ksmbd: serialize directory emptiness checks with readdir ksmbd: fix parent dentry lifetime in directory enumeration smb/server: prevent file publication after tree disconnect ksmbd: restore Kerberos logins with released ksmbd-tools smb/server: replace deprecated system workqueues ksmbd: reject FILE_ATTRIBUTE_TEMPORARY on directories ksmbd: deny access for an empty DACL instead of granting the request ksmbd: reject foreign RPC pipe handles on IPC$ read and write ksmbd: fix fd_limit accounting across durable reconnects ksmbd: drain session procfs readers before dropping table references ksmbd: reclaim ended sessions on logoff and expiration ksmbd: limit sessions on each connection ksmbd: hold a connection reference for each session channel ksmbd: defer connection scavenging while session locks are busy ksmbd: accept share config responses from ksmbd-tools before 3.5.3 ksmbd: round SetAllocation to the advertised allocation unit ksmbd: avoid restoring only in-memory EOF after allocation change ksmbd: inherit FileIds in related compound requests ...
5 daysMerge tag 'nfs-for-7.4-1' of git://git.linux-nfs.org/projects/anna/linux-nfsLinus Torvalds2-0/+70
Pull nfs client updates from Anna Schumaker: "New Features: - Modernize the direct I/O path - Size the LAYOUTGET reply buffer for wide flexfiles layouts - Flexfiles device notifications and caching for wide striped layouts - isolate mTLS client credentials by network namespace Bugfixes: - Various localio, flexfiles, xprtrdma, and TLS fixes - Merged bugfixes from Trond that he was unable to send during the 7.3-rc cycle Other Cleanups and Improvements: - Split up pNFS block layout and SCSI layout support" * tag 'nfs-for-7.4-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (68 commits) nfs/localio: pin UUIDs during global invalidation NFSv4/flexfiles: fail I/O to the data server once a lock is lost pNFS/flexfiles: don't report an interrupted DS connect as a DS error pNFS/flexfiles: make pg_init retry loops killable nfsv4/pnfs: use the MDS authflavor for data server connections xprtrdma: trim head iovec when the payload arrives via a Write chunk nfs: set gencount on protocol-specific remove xprtrdma: prevent disconnect feedback during endpoint teardown NFS: add a key type that reveals the namespace .nfs keyring serial number NFS: name the namespace .nfs keyring in the x509 handshake SUNRPC: pass a keyring serial number to the TLS handshake NFS: allocate the .nfs keyring per network namespace NFS: name the init_nfs_fs() error labels NFS: return DENIED in decode_lock_denied if we cannot decode owner pNFS/flexfiles: don't reset to MDS for v4 error when previous layout forbid it pNFS/flexfiles: don't read through MDS when previous layout forbid it pNFS/flexfiles: honor FF_FLAGS_NO_IO_THRU_MDS over the mdsthreshold hint NFS/localio: report the stability a DIO WRITE actually has NFS/localio: detect a short read or write before the iterator has moved NFS/localio: fix nfs_local_dio_misaligned tracepoint ...
6 daysMerge tag 'efi-next-for-v7.4' of ↵Linus Torvalds1-0/+12
git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi Pull EFI updates from Ard Biesheuvel: - Set the LoaderDevicePartUUID EFI variable from the stub to help systemd discover the file system layout when booting straight into Linux without GRUB or systemd-boot (Vincent Mailhol) - Some GUID deduplication work from Vincent - Remove pointless UTF16->UTF8 and vice versa conversions from the stub - Some kmap() -> kmap_local_page() conversions in the capsule loader - Add a runtime control to en/disable EFI runtime services so that PREEMPT_RT systems can enable them as needed - Add a 'nostatfs' mount option to efivarfs so that the cost of querying the EFI variable store (which is already rate limited) can be avoided entirely on systems where it is disproportionately costly - Rework the EFI libstub Makefile to align x86 with other architectures, and inherit/adapt the global CFLAGS variable rather than reconstruct it from scratch - Constify attributes of statically allocated sysfs nodes - Avoid register x18 when building the arm64 EFI stub, in order to comply with the UEFI spec, and to permit it to execute in a context where x18 is special - Preserve the physical addresses of all EFI config tables that may be of interest to an incoming kexec kernel - Add some LKDTM tests for EFI runtime crashes where the faulting address is inside a EFI memory region - Other minor bug fixes and cosmetic cleanups * tag 'efi-next-for-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi: (35 commits) lkdtm: Add more EFI runtime tests efi: Initialize all configuration table addresses to EFI_INVALID_TABLE_ADDR efi: Retain the address of the LINUX_EFI_MEMRESERVE table efi/libstub: Don't replace an existing LINUX_EFI_MEMRESERVE table efi/runtime-wrappers: Don't park the worker after a recovered firmware fault efi: Use sysfs_emit() not sprintf() to generate sysfs file contents efi: Constify sysfs attributes efi/libstub: Disable kernel stack erasing in the common flags efi/libstub: Build the x86 stub from KBUILD_CFLAGS efi/libstub: Declare the x86 stub's assembly entry points efi/libstub: arm64: Don't use the platform register x18 efi/libstub: Free cmdline_ptr in efi_pe_entry efi/riscv: libstub: Don't set image_size in handle_kernel_image() efi/libstub: Fix error unwind freeing fdt in allocate_new_fdt_and_exit_boot() efivarfs: add nostatfs mount option to skip QueryVariableInfo() efi/libstub: add initial Boot Loader Interface support efi/libstub: Add efi_snprintf() to construct wide strings efi/libstub: Add support for printing human readable GUIDs efi/libstub: Output UTF-16 directly from vsnprintf() efi/libstub: Avoid efi_puts() for compile time constant strings ...
7 daysdocs: filesystems: update mmap_prepare docs for discontig kernel pgsLorenzo Stoakes (ARM)1-0/+81
Describe the newly introduced discontiguous kernel page mapping mechanism, detailing how to use it sensibly and how the API looks. Explicitly detail the various discontiguous actions available and how to use them. Link: https://lore.kernel.org/20261013-b4-mmap-prepare-vma-flag-sanify-v6-9-1aa3c9b139f9@kernel.org Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Suren Baghdasaryan <surenb@google.com> Acked-by: David Hildenbrand (Arm) <david@kernel.org> Cc: Liam R. Howlett <liam@infradead.org> Cc: Vlastimil Babka <vbabka@kernel.org> Cc: Jann Horn <jannh@google.com> Cc: Pedro Falcato <pfalcato@suse.de> Cc: Mike Rapoport <rppt@kernel.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com> Cc: Jason Gunthorpe <jgg@ziepe.ca> Cc: Leon Romanovsky <leon@kernel.org> Cc: Paul Moore <paul@paul-moore.com> Cc: Stephen Smalley <stephen.smalley.work@gmail.com> Cc: Jaroslav Kysela <perex@perex.cz> Cc: Takashi Iwai <tiwai@suse.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Andrii Nakryiko <andrii@kernel.org> Cc: Eduard Zingerman <eddyz87@gmail.com> Cc: Kumar Kartikeya Dwivedi <memxor@gmail.com> Cc: Zi Yan <ziy@nvidia.com> Cc: Baolin Wang <baolin.wang@linux.alibaba.com> Cc: Nico Pache <nico.pache@linux.dev> Cc: Ryan Roberts <ryan.roberts@arm.com> Cc: Dev Jain <dev.jain@arm.com> Cc: Barry Song <baohua@kernel.org> Cc: Lance Yang <lance.yang@linux.dev> Cc: Usama Arif <usama.arif@linux.dev> Cc: Kiryl Shutsemau <kas@kernel.org> Cc: Doug Gilbert <dgilbert@interlog.com> Cc: James Bottomley <james.bottomley@hansenpartnership.com> Cc: Martin K. Petersen <mkp@kernel.org> Cc: Simona Vetter <simona@ffwll.ch> Cc: Helge Deller <deller@gmx.de> Cc: Sebastian Reichel <sre@kernel.org> Cc: John Hubbard <jhubbard@nvidia.com> Cc: Peter Xu <peterx@redhat.com> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@kernel.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Rik van Riel <riel@surriel.com> Cc: Harry Yoo <harry@kernel.org> Cc: Juri Lelli <juri.lelli@redhat.com> Cc: Vincent Guittot <vincent.guittot@linaro.org> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: David Airlie <airlied@gmail.com> Cc: Will Deacon <will@kernel.org> Cc: Aneesh Kumar K.V <aneesh.kumar@kernel.org> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Muchun Song <muchun.song@linux.dev> Cc: Oscar Salvador <osalvador@suse.de> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Jan Kara <jack@suse.cz> Cc: Marc Zyngier <maz@kernel.org> Cc: Oliver Upton <oupton@kernel.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Madhavan Srinivasan <maddy@linux.ibm.com> Cc: Anup Patel <anup@brainfault.org> Cc: Paul Walmsley <pjw@kernel.org> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: Christian Borntraeger <borntraeger@linux.ibm.com> Cc: Janosch Frank <frankja@linux.ibm.com> Cc: Claudio Imbrenda <imbrenda@linux.ibm.com> Cc: Alexander Gordeev <agordeev@linux.ibm.com> Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Vasily Gorbik <gor@linux.ibm.com> Cc: David S. Miller <davem@davemloft.net> Cc: Andreas Larsson <andreas@gaisler.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Christian Brauner <brauner@kernel.org> Cc: Matthew Brost <matthew.brost@intel.com> Cc: Joshua Hahn <joshua.hahnjy@gmail.com> Cc: Rakie Kim <rakie.kim@sk.com> Cc: Byungchul Park <byungchul@sk.com> Cc: Gregory Price <gourry@gourry.net> Cc: Ying Huang <ying.huang@linux.alibaba.com> Cc: Alistair Popple <apopple@nvidia.com> Cc: Chris Li <chrisl@kernel.org> Cc: Kairui Song <kasong@tencent.com> Cc: Kemeng Shi <shikemeng@huaweicloud.com> Cc: Nhat Pham <nphamcs@gmail.com> Cc: Baoquan He <baoquan.he@linux.dev> Cc: Youngjun Park <youngjun.park@lge.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Qi Zheng <qi.zheng@linux.dev> Cc: Shakeel Butt <shakeel.butt@linux.dev> Cc: Axel Rasmussen <axelrasmussen@google.com> Cc: Yuanchu Xie <yuanchu@google.com> Cc: Wei Xu <weixugc@google.com> Cc: Chengming Zhou <chengming.zhou@linux.dev> Cc: Michal Hocko <mhocko@kernel.org> Cc: Miklos Szeredi <miklos@szeredi.hu> Cc: Xu Xin <xu.xin@linux.dev> Cc: Ihor Solodrai <ihor.solodrai@linux.dev> Cc: Bert Karwatzki <spasswolf@web.de>
7 daysMerge tag 'mm-stable-2026-10-19-21-33' of ↵Linus Torvalds1-3/+3
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Pull MM updates from Andrew Morton: - "selftests/mm: improve khugepaged coverage" (Kiryl Shutsemau): Give khugepaged a proper workout. Extend the tests to all supported mTHP orders, check exactly which windows collapsed, and make scan completion deterministic. Race collapse against faults, pinning, fork and remap; verify that the contents survive. Add coverage for whole-page-table zaps and memory pressure too. - "selftests/mm: separate GUP microbenchmarking from functional testing" (Sarthak Sharma): Untangle GUP benchmarking from correctness testing. Move the benchmark into tools/mm, add a standalone harness-based GUP selftest, and move shared helpers into tools/lib/mm. Give each tool one job instead of mixing timing measurements with correctness checks. Cover the mapping, pinning and batch-size combinations explicitly. - "mm: Switch device DAX to section-based vmemmap optimization" (Muchun Song): Apply section-based vmemmap optimization to device DAX. Rework the backing metadata layout to save memory while preserving the handling of device memory hotplug and its different alignment and lifetime requirements. - "mm: Introduce section-based vmemmap optimization for HugeTLB" (Muchun Song): Cut the memory consumed by HugeTLB's struct page array with section-based vmemmap optimization. Arrange the metadata so large huge pages need fewer backing pages, while keeping initialization, teardown and the various hugepage configurations straight. - "mm/huge_memory: clean up and decouple the anon and file split helpers" (Kairui Song): Separate anonymous and file-backed folio splitting, which have rather different locking and bookkeeping requirements. Move the work into separate helpers, drop dead checks and tidy swap-cache handling. Fix error paths, including one that could leave a folio frozen. Keep the swap cache cases separate from file-cache splitting. - "mm: Unconditional per-VMA locks and cleanups" (Dave Hansen): Make per-VMA locking unconditional and clean up the old conditional code around it. This removes configuration-dependent plumbing and lets callers depend on one locking model rather than carrying both cases along. - "memcg: remove the v1 soft limit" (Shakeel Butt): Remove the old cgroup v1 memory soft-limit machinery. This has long since been superseded by the newer memory-control interfaces; hauling around a separate reclaim scheme for it no longer buys us much. - "read proc/pid/smaps_rollup under per-vma lock" (Suren Baghdasaryan): Read /proc/PID/smaps_rollup using per-VMA locks where possible, rather than holding mmap_lock across the entire walk. Retain the contention fallback and add tearing tests. This considerably reduces latency when another thread is busy changing its mappings. - "mm/damon: introduce data access-as-a-data attribute" (SJ Park): Teach DAMON to expose memory access observations as data attributes, making them available to the probe and filtering machinery. Extend the interfaces, documentation and tests so the new information can be used rather than merely collected. - "Remove PG_private by using page/folio->private checks instead" (Zi Yan): Get rid of PG_private and use the folio's private pointer to say whether private data is attached. Convert the filesystem users, including erofs, f2fs and md, and clean up the old accessors and flags. There are a few special cases, notably swapcache and hugetlb, which need explicit care. - "mm: make userland page table freeing RCU-safe" (Lorenzo Stoakes): Make freeing userspace page tables safe against RCU readers. Sort out the page-table lifetime and locking rules so walkers cannot stumble over freed tables while mappings are being torn down. - "make unused huge shrinker memcg aware" (Qi Zheng): Make shmem's unused-huge-folio shrinker aware of memory cgroups, so reclaim can find those folios under the right memcg. Wire up the per-memcg tracking and its lifetime rules, and give the shrinklist its own lockdep class to avoid spurious dependency reports. - "mm: Drop pxd_ERROR()" (Anshuman Khandual): Remove the old pxd_ERROR() page-table checks and their architecture-specific baggage. Simplify the common page-table interfaces and callers now that these checks no longer serve a useful purpose. - "memcg: group struct fields by access pattern" (Shakeel Butt): Rearrange memcg's hot and cold fields according to how they're actually accessed. Keep frequently updated counters and their neighboring state from fighting over cachelines and reduce needless cacheline traffic. - "mm/damon/core: fix the size charged for a filter-trimmed region" (Donggeun Yoo): Fix DAMOS quota accounting when a filter trims a monitoring region. Charge only the part left after filtering, not the original region, and add KUnit coverage. Previously the excluded memory could eat into the quota and make schemes run more slowly than requested. - "mm/damon: add kunit and selftests for probes and probe weights" (SJ Park): Add more tests for DAMON probes and their weights, including validation and the results reported to userspace. This is mostly about catching regressions in the newer probe infrastructure before they become harder to diagnose. - "mm: memcontrol: constify the read side of the read side of the memcg API" (Tal Zussman): Mark the read-only parts of the memcg interface const, from folio and lruvec accessors to counters and swap helpers. Most of this is mechanical, but it makes the contracts clearer and lets the compiler catch accidental writes. - "mm/damon/vaddr: support {prep,apply}_probes" (SJ Park): Support the new prepare/apply probe operations in DAMON's virtual-address backend. This brings vaddr monitoring into line with the probe infrastructure and makes the added probe types useful there too. - "mm/mglru: clean up folio counters and flag usage" (Kairui Song): Simplify MGLRU's folio counters and flag handling. Remove redundant accounting paths and make the state transitions easier to follow without changing the intended reclaim policy. - "arch, mm/execmem: resolve confusion about set_direct_map_valid_noflush()" (Mike Rapoport (Microsoft)): Clarify and straighten out the set_direct_map_valid_noflush() interface across architectures and execmem. Make the requested mapping changes and the callers' expectations agree, rather than relying on subtly different architecture behavior. - "mm: zswap: free cold writeback folios promptly" (Alexandre Ghiti): Free zswap writeback folios as soon as their disk write completes. They are cold temporary buffers, so putting them on the LRU only makes reclaim rediscover them later. Extend swap-cache dropbehind and let zswap keep these folios off the LRU altogether. - "mm: gup: cleanup gup_fast call chain" (Aristeu Rozanski): Clean up the GUP-fast call chain and simplify how the fast-path helpers pass their arguments and results around. Keep the page-pin behavior the same while making the call sequence easier to maintain. - "mm: optimize zone-device memmap initialization" (Li Zhe): Speed up initialization of zone-device struct pages. Avoid redundant work when setting up large device-memory ranges, where touching every descriptor can get expensive. - "mm/zswap: shrink zswap_entry via a pool id" (Jianyue Wu): Reduce the size of zswap_entry by storing a compact pool identifier instead of a full pointer. Keep the pool lookup and lifetime handling correct while saving per-entry metadata. - "mm/damon: support access monitoring of hugetlb-backed memory" (Krishna Iyer): Let DAMON monitor hugetlb-backed memory too. Extend the relevant access checks and add coverage so those mappings no longer fall through a hole in the monitoring machinery. - "mm/execmem: fixes and cleanups for the ROX cache" (Mike Rapoport): Tidy execmem's read-only-executable cache and fix its handling of the awkward allocation and release cases. The aim is to make the cache's ownership and permission transitions more predictable. - "zsmallc: remove old object read API" (Sergey Senozhatsky): Drop zsmalloc's old object-read API and move its remaining users to the supported access mechanism. This removes a duplicate interface which we no longer need. - "mm/mempolicy: stop copying state in the interleave paths" (Gregory Price): Stop copying mempolicy state in the interleave paths when a reference to the existing policy will do. This avoids extra work and makes the ownership rules less obscure. - "mm/mglru: speed up inc_min_seq() and fix cold/hot inversions" (Barry Song): Make MGLRU's generation advancement cheaper and fix cases where cold and hot folios end up in the wrong order. Adjust the counter and list handling so reclaim doesn't keep passing over the better eviction candidates. - "mm: Fix MF_DELAYED handling on memory failure" (Lisa Wang): Treat MF_DELAYED as a partially completed memory-failure operation, not an outright failure. Propagate that result correctly through shmem and the generic handler, fix the extra-reference accounting, and add tests for the resulting SIGBUS behavior. - "tools/mm/page_owner_sort: fix --sort, add module filter, improve usage" (Ye Liu): Fix page_owner_sort's --sort handling, add module-based filtering and make the usage output more helpful. This makes the to