mirror of https://github.com/torvalds/linux.git
Please consider pulling these changes from the signed vfs-7.0-rc1.misc.2 tag.
Thanks!
Christian
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCaZMOCwAKCRCRxhvAZXjc
oswrAP9r1zjzMimjX2J0hBoMnYjNzQfLLew8+IRygImQ+yaqWgD9Fiw/cQ9eE1Hm
TMLqck/ky588ywSDaBzfztrXAY3ISgg=
=4yr2
-----END PGP SIGNATURE-----
Merge tag 'vfs-7.0-rc1.misc.2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull more misc vfs updates from Christian Brauner:
"Features:
- Optimize close_range() from O(range size) to O(active FDs) by using
find_next_bit() on the open_fds bitmap instead of linearly scanning
the entire requested range. This is a significant improvement for
large-range close operations on sparse file descriptor tables.
- Add FS_XFLAG_VERITY file attribute for fs-verity files, retrievable
via FS_IOC_FSGETXATTR and file_getattr(). The flag is read-only.
Add tracepoints for fs-verity enable and verify operations,
replacing the previously removed debug printk's.
- Prevent nfsd from exporting special kernel filesystems like pidfs
and nsfs. These filesystems have custom ->open() and ->permission()
export methods that are designed for open_by_handle_at(2) only and
are incompatible with nfsd. Update the exportfs documentation
accordingly.
Fixes:
- Fix KMSAN uninit-value in ovl_fill_real() where strcmp() was used
on a non-null-terminated decrypted directory entry name from
fscrypt. This triggered on encrypted lower layers when the
decrypted name buffer contained uninitialized tail data.
The fix also adds VFS-level name_is_dot(), name_is_dotdot(), and
name_is_dot_dotdot() helpers, replacing various open-coded "." and
".." checks across the tree.
- Fix read-only fsflags not being reset together with xflags in
vfs_fileattr_set(). Currently harmless since no read-only xflags
overlap with flags, but this would cause inconsistencies for any
future shared read-only flag
- Return -EREMOTE instead of -ESRCH from PIDFD_GET_INFO when the
target process is in a different pid namespace. This lets userspace
distinguish "process exited" from "process in another namespace",
matching glibc's pidfd_getpid() behavior
Cleanups:
- Use C-string literals in the Rust seq_file bindings, replacing the
kernel::c_str!() macro (available since Rust 1.77)
- Fix typo in d_walk_ret enum comment, add porting notes for the
readlink_copy() calling convention change"
* tag 'vfs-7.0-rc1.misc.2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
fs: add porting notes about readlink_copy()
pidfs: return -EREMOTE when PIDFD_GET_INFO is called on another ns
nfsd: do not allow exporting of special kernel filesystems
exportfs: clarify the documentation of open()/permission() expotrfs ops
fsverity: add tracepoints
fs: add FS_XFLAG_VERITY for fs-verity files
rust: seq_file: replace `kernel::c_str!` with C-Strings
fs: dcache: fix typo in enum d_walk_ret comment
ovl: use name_is_dot* helpers in readdir code
fs: add helpers name_is_dot{,dot,_dotdot}
ovl: Fix uninit-value in ovl_fill_real
fs: reset read-only fsflags together with xflags
fs/file: optimize close_range() complexity from O(N) to O(Sparse)
|
||
|---|---|---|
| .. | ||
| 9p.h | ||
| afs.h | ||
| alarmtimer.h | ||
| amdxdna.h | ||
| asoc.h | ||
| avc.h | ||
| bcache.h | ||
| block.h | ||
| bpf_test_run.h | ||
| bridge.h | ||
| btrfs.h | ||
| cachefiles.h | ||
| capability.h | ||
| ceph.h | ||
| cgroup.h | ||
| clk.h | ||
| cma.h | ||
| compaction.h | ||
| context_tracking.h | ||
| cpuhp.h | ||
| csd.h | ||
| damon.h | ||
| devfreq.h | ||
| devlink.h | ||
| dlm.h | ||
| dma.h | ||
| dma_buf.h | ||
| dma_fence.h | ||
| erofs.h | ||
| error_report.h | ||
| exceptions.h | ||
| ext4.h | ||
| f2fs.h | ||
| fib.h | ||
| fib6.h | ||
| filelock.h | ||
| filemap.h | ||
| firewire.h | ||
| firewire_ohci.h | ||
| fs_dax.h | ||
| fscache.h | ||
| fsi.h | ||
| fsi_master_aspeed.h | ||
| fsi_master_ast_cf.h | ||
| fsi_master_gpio.h | ||
| fsi_master_i2cr.h | ||
| fsverity.h | ||
| gpio.h | ||
| gpu_mem.h | ||
| habanalabs.h | ||
| handshake.h | ||
| host1x.h | ||
| huge_memory.h | ||
| hugetlbfs.h | ||
| hw_pressure.h | ||
| hwmon.h | ||
| i2c.h | ||
| i2c_slave.h | ||
| ib_mad.h | ||
| ib_umad.h | ||
| icmp.h | ||
| initcall.h | ||
| intel-sst.h | ||
| intel_ifs.h | ||
| intel_ish.h | ||
| io_uring.h | ||
| iocost.h | ||
| iommu.h | ||
| ipi.h | ||
| irq.h | ||
| irq_matrix.h | ||
| iscsi.h | ||
| jbd2.h | ||
| kmem.h | ||
| ksm.h | ||
| kvm.h | ||
| kyber.h | ||
| libata.h | ||
| lock.h | ||
| maple_tree.h | ||
| mce.h | ||
| mctp.h | ||
| mdio.h | ||
| memcg.h | ||
| memory-failure.h | ||
| migrate.h | ||
| mlxsw.h | ||
| mmap.h | ||
| mmap_lock.h | ||
| mmc.h | ||
| mmflags.h | ||
| module.h | ||
| mptcp.h | ||
| napi.h | ||
| nbd.h | ||
| neigh.h | ||
| net.h | ||
| net_probe_common.h | ||
| netfs.h | ||
| netlink.h | ||
| nilfs2.h | ||
| nmi.h | ||
| notifier.h | ||
| objagg.h | ||
| oom.h | ||
| osnoise.h | ||
| page_isolation.h | ||
| page_pool.h | ||
| page_ref.h | ||
| pagemap.h | ||
| pci.h | ||
| percpu.h | ||
| power.h | ||
| power_cpu_migrate.h | ||
| preemptirq.h | ||
| printk.h | ||
| pwc.h | ||
| pwm.h | ||
| qdisc.h | ||
| qla.h | ||
| qrtr.h | ||
| rcu.h | ||
| rdma_core.h | ||
| readahead.h | ||
| regulator.h | ||
| rpcgss.h | ||
| rpcrdma.h | ||
| rpm.h | ||
| rseq.h | ||
| rtc.h | ||
| rust_sample.h | ||
| rwmmio.h | ||
| rxrpc.h | ||
| sched.h | ||
| sched_ext.h | ||
| scmi.h | ||
| scsi.h | ||
| sctp.h | ||
| signal.h | ||
| siox.h | ||
| skb.h | ||
| smbus.h | ||
| sock.h | ||
| sof.h | ||
| sof_intel.h | ||
| spi-mem.h | ||
| spi.h | ||
| spmi.h | ||
| sunrpc.h | ||
| sunvnet.h | ||
| swiotlb.h | ||
| syscalls.h | ||
| target.h | ||
| task.h | ||
| tcp.h | ||
| tegra_apb_dma.h | ||
| thp.h | ||
| timer.h | ||
| timer_migration.h | ||
| timestamp.h | ||
| tlb.h | ||
| tsm_mr.h | ||
| udp.h | ||
| v4l2.h | ||
| vb2.h | ||
| vmalloc.h | ||
| vmscan.h | ||
| vsock_virtio_transport_common.h | ||
| watchdog.h | ||
| wbt.h | ||
| workqueue.h | ||
| writeback.h | ||
| xdp.h | ||
| xen.h | ||