linux-yocto/fs
Al Viro 6ca3f8a9c4 alloc_fdtable(): change calling conventions.
[ Upstream commit 1d3b4bec3c ]

First of all, tell it how many slots do we want, not which slot
is wanted.  It makes one caller (dup_fd()) more straightforward
and doesn't harm another (expand_fdtable()).

Furthermore, make it return ERR_PTR() on failure rather than
returning NULL.  Simplifies the callers.

Simplify the size calculation, while we are at it - note that we
always have slots_wanted greater than BITS_PER_LONG.  What the
rules boil down to is
	* use the smallest power of two large enough to give us
that many slots
	* on 32bit skip 64 and 128 - the minimal capacity we want
there is 256 slots (i.e. 1Kb fd array).
	* on 64bit don't skip anything, the minimal capacity is
128 - and we'll never be asked for 64 or less.  128 slots means
1Kb fd array, again.
	* on 128bit, if that ever happens, don't skip anything -
we'll never be asked for 128 or less, so the fd array allocation
will be at least 2Kb.

Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-08-28 16:22:59 +02:00
..
9p fs/9p: drop inodes immediately on non-.L too 2024-05-17 11:48:05 +02:00
adfs
affs affs: don't write overlarge OFS data block size fields 2025-04-10 14:31:00 +02:00
afs afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call 2025-03-13 12:46:44 +01:00
autofs file: Replace ksys_close with close_fd 2024-06-21 14:52:50 +02:00
befs
bfs
btrfs btrfs: populate otime when logging an inode item 2025-08-28 16:22:56 +02:00
cachefiles namei: introduce struct renamedata 2024-06-21 14:52:59 +02:00
ceph ceph: fix possible integer overflow in ceph_zero_objects() 2025-07-17 18:27:38 +02:00
cifs smb: client: fix use-after-free in crypt_message when using async crypto 2025-08-28 16:22:53 +02:00
coda coda: Avoid partial allocation of sig_inputArgs 2023-03-11 16:39:51 +01:00
configfs configfs: Do not override creating attribute file failure in populate_attrs() 2025-06-27 11:04:11 +01:00
cramfs
crypto fscrypt: fix keyring memory leak on mount failure 2022-11-10 18:14:25 +01:00
debugfs debugfs: fix automount d_fsdata usage 2024-01-25 14:37:36 -08:00
devpts fsnotify: fix fsnotify hooks in pseudo filesystems 2022-02-01 17:25:39 +01:00
dlm dlm: fix plock lookup when using multiple lockspaces 2023-09-19 12:20:22 +02:00
ecryptfs namei: introduce struct renamedata 2024-06-21 14:52:59 +02:00
efivarfs efivarfs: Fix error on non-existent file 2025-01-09 13:24:53 +01:00
efs
erofs erofs: fix incorrect symlink detection in fast symlink 2025-01-09 13:24:51 +01:00
exfat exfat: fix double free in delayed_free 2025-06-27 11:04:16 +01:00
exportfs exportfs: use pr_debug for unreachable debug statements 2024-06-21 14:54:05 +02:00
ext2 ext2: Verify bitmap and itable block numbers before using them 2024-08-19 05:40:56 +02:00
ext4 ext4: fix hole length calculation overflow in non-extent inodes 2025-08-28 16:22:56 +02:00
f2fs f2fs: fix to avoid out-of-boundary access in dnode page 2025-08-28 16:22:57 +02:00
fat fat: fix uninitialized variable 2024-10-22 15:39:24 +02:00
freevxfs
fscache
fuse virtiofs: add filesystem context source name check 2025-05-02 07:41:02 +02:00
gfs2 gfs2: move msleep to sleepable context 2025-06-27 11:04:11 +01:00
hfs hfs: fix not erasing deleted b-tree node issue 2025-08-28 16:22:39 +02:00
hfsplus hfsplus: don't use BUG_ON() in hfsplus_create_attributes_file() 2025-08-28 16:22:39 +02:00
hostfs
hpfs
hugetlbfs mm: update memfd seal write check to include F_SEAL_WRITE 2025-08-28 16:22:55 +02:00
iomap iomap: update ki_pos a little later in iomap_dio_complete 2024-11-08 16:21:58 +01:00
isofs isofs: Verify inode mode when loading from disk 2025-08-28 16:22:27 +02:00
jbd2 jbd2: prevent softlockup in jbd2_log_do_checkpoint() 2025-08-28 16:22:50 +02:00
jffs2 jffs2: check jffs2_prealloc_raw_node_refs() result in few other places 2025-06-27 11:04:20 +01:00
jfs jfs: upper bound check of tree index in dbAllocAG 2025-08-28 16:22:45 +02:00
kernfs fs/kernfs/dir: obey S_ISGID 2024-02-23 08:42:14 +01:00
lockd nfsd: stop setting ->pg_stats for unused stats 2024-09-12 11:06:45 +02:00
minix minix: fix bug when opening a file with O_DIRECT 2022-04-13 21:01:01 +02:00
nfs NFS: Fix the setting of capabilities when automounting a new filesystem 2025-08-28 16:22:55 +02:00
nfs_common NFSD: Add an xdr_stream-based encoder for NFSv2/3 ACLs 2024-06-21 14:53:03 +02:00
nfsd NFSD: detect mismatch of file handle and delegation stateid in OPEN op 2025-08-28 16:22:38 +02:00
nilfs2 nilfs2: reject invalid file types when reading inodes 2025-08-28 16:22:30 +02:00
nls fs/nls: make load_nls() take a const parameter 2023-09-19 12:20:04 +02:00
notify fsnotify: fix sending inotify event with unexpected filename 2024-12-14 19:48:08 +01:00
ntfs ntfs: check overflow when iterating ATTR_RECORDs 2022-11-25 17:45:57 +01:00
ocfs2 ocfs2: stop quota recovery before disabling quotas 2025-06-04 14:36:55 +02:00
omfs
openpromfs openpromfs: finish conversion to the new mount API 2024-06-16 13:32:01 +02:00
orangefs fs/orangefs: use snprintf() instead of sprintf() 2025-08-28 16:22:44 +02:00
overlayfs ovl: Check for NULL d_inode() in ovl_dentry_upper() 2025-07-17 18:27:38 +02:00
proc fs/proc: do_task_stat: use __for_each_thread() 2025-07-17 18:27:54 +02:00
pstore pstore/zone: Add a null pointer check to the psz_kmsg_read 2024-04-13 12:59:41 +02:00
qnx4
qnx6
quota quota: flush quota_release_work upon quota writeback 2024-12-14 19:48:16 +01:00
ramfs shmem: use ramfs_kill_sb() for kill_sb method of ramfs-based tmpfs 2023-07-27 08:44:13 +02:00
reiserfs reiserfs: Check the return value from __getblk() 2023-09-19 12:20:06 +02:00
romfs
squashfs squashfs: fix memory leak in squashfs_fill_super 2025-08-28 16:22:51 +02:00
sysfs fs: sysfs: Fix reference leak in sysfs_break_active_protection() 2024-05-02 16:23:39 +02:00
sysv sysv: don't call sb_bread() with pointers_lock held 2024-04-13 12:59:45 +02:00
tracefs tracefs: Add missing lockdown check to tracefs_create_dir() 2023-09-23 11:01:10 +02:00
ubifs ubifs: skip dumping tnc tree when zroot is null 2025-03-13 12:46:57 +01:00
udf udf: Verify partition map count 2025-08-28 16:22:39 +02:00
ufs
unicode Revert "unicode: Don't special case ignorable code points" 2024-12-14 19:48:33 +01:00
vboxsf vboxsf: fix building with GCC 15 2025-04-10 14:30:49 +02:00
verity fs: add file and path permissions helpers 2024-06-21 14:52:58 +02:00
xfs xfs: fix scrub tracepoints when inode-rooted btrees are involved 2024-12-19 18:06:09 +01:00
zonefs zonefs: Improve error handling 2024-03-01 13:16:43 +01:00
aio.c fs/aio: Check IOCB_AIO_RW before the struct aio_kiocb conversion 2024-04-13 12:58:53 +02:00
anon_inodes.c
attr.c attr: block mode changes of symlinks 2023-09-23 11:01:09 +02:00
bad_inode.c
binfmt_aout.c
binfmt_elf_fdpic.c binfmt_misc: pass binfmt_misc flags to the interpreter 2024-09-04 13:17:42 +02:00
binfmt_elf.c binfmt_misc: pass binfmt_misc flags to the interpreter 2024-09-04 13:17:42 +02:00
binfmt_em86.c
binfmt_flat.c binfmt_flat: Fix integer overflow bug on 32 bit systems 2025-03-13 12:47:06 +01:00
binfmt_misc.c binfmt_misc: pass binfmt_misc flags to the interpreter 2024-09-04 13:17:42 +02:00
binfmt_script.c
block_dev.c block: Don't invalidate pagecache for invalid falloc modes 2024-01-15 18:48:03 +01:00
buffer.c fs/buffer: fix use-after-free when call bh_read() helper 2025-08-28 16:22:52 +02:00
char_dev.c chardev: fix error handling in cdev_device_add() 2023-01-14 10:15:59 +01:00
compat_binfmt_elf.c
coredump.c coredump: hand a pidfd to the usermode coredump helper 2025-06-04 14:37:09 +02:00
d_path.c
dax.c dax: fix cache flush on PMD-mapped pages 2022-06-09 10:21:16 +02:00
dcache.c fs: better handle deep ancestor chains in is_subdir() 2024-07-27 10:40:21 +02:00
dcookies.c
direct-io.c
drop_caches.c
eventfd.c eventfd: prevent underflow for eventfd semaphores 2023-09-19 12:20:06 +02:00
eventpoll.c epoll: Add synchronous wakeup support for ep_poll_callback 2025-01-09 13:24:55 +01:00
exec.c exec: don't WARN for racy path_noexec check 2024-11-08 16:21:58 +01:00
fcntl.c fs: Fix file_set_fowner LSM hook inconsistencies 2024-10-17 15:08:03 +02:00
fhandle.c do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak 2024-03-26 18:21:47 -04:00
file_table.c SUNRPC: Ensure we flush any closed sockets before xs_xprt_free() 2022-05-18 10:23:48 +02:00
file.c alloc_fdtable(): change calling conventions. 2025-08-28 16:22:59 +02:00
filesystems.c fs/filesystems: Fix potential unsigned integer underflow in fs_name() 2025-06-27 11:04:10 +01:00
fs_context.c fs: avoid empty option when generating legacy mount string 2023-07-27 08:44:13 +02:00
fs_parser.c
fs_pin.c
fs_struct.c
fs_types.c
fs-writeback.c writeback: fix call of incorrect macro 2023-05-17 11:48:10 +02:00
fsopen.c
init.c fs: add file and path permissions helpers 2024-06-21 14:52:58 +02:00
inode.c vfs: fix race between evice_inodes() and find_inode()&iput() 2024-10-17 15:08:03 +02:00
internal.h fs: Establish locking order for unrelated directories 2023-07-27 08:44:13 +02:00
ioctl.c lsm: new security_file_ioctl_compat() hook 2024-02-23 08:41:53 +01:00
Kconfig nfs: add missing selections of CONFIG_CRC32 2025-05-02 07:41:01 +02:00
Kconfig.binfmt
kernel_read_file.c
libfs.c better lockdep annotations for simple_recursive_removal() 2025-08-28 16:22:40 +02:00
locks.c filelock: Fix fcntl/close race recovery compat path 2024-07-27 10:40:24 +02:00
Makefile io_uring: import 5.15-stable io_uring 2023-01-04 11:39:23 +01:00
mbcache.c mbcache: Avoid nesting of cache->c_list_lock under bit locks 2023-01-14 10:16:50 +01:00
mount.h
mpage.c
namei.c fuse: don't truncate cached, mutated symlink 2025-04-10 14:30:50 +02:00
namespace.c use uniform permission checks for all mount propagation changes 2025-08-28 16:22:52 +02:00
no-block.c
nsfs.c
open.c openat2: explicitly return -E2BIG for (usize > PAGE_SIZE) 2024-11-08 16:22:00 +01:00
pipe.c pipe: wakeup wr_wait after setting max_usage 2024-02-23 08:42:00 +01:00
pnode.c pnode: terminate at peers of source 2023-01-14 10:16:27 +01:00
pnode.h
posix_acl.c
proc_namespace.c
read_write.c vfs: fix copy_file_range() averts filesystem freeze protection 2022-12-19 12:27:30 +01:00
readdir.c
remap_range.c fs/remap: constrain dedupe of EOF blocks 2022-07-21 21:20:01 +02:00
select.c select: Fix unbalanced user_access_end() 2025-03-13 12:46:44 +01:00
seq_file.c
signalfd.c io_uring: disable polling pollfree files 2022-09-05 10:28:58 +02:00
splice.c splice: don't generate zero-len segement bvecs 2024-11-17 14:59:37 +01:00
stack.c
stat.c stat: fix inconsistency between struct stat and struct compat_stat 2022-04-27 13:53:54 +02:00
statfs.c statfs: enforce statfs[64] structure initialization 2023-05-30 12:57:55 +01:00
super.c fs: explicitly unregister per-superblock BDIs 2024-10-17 15:07:38 +02:00
sync.c vfs: make sync_filesystem return errors from ->sync_fs 2022-08-31 17:15:14 +02:00
timerfd.c
userfaultfd.c userfaultfd: open userfaultfds with O_RDONLY 2022-10-26 13:25:17 +02:00
utimes.c
xattr.c fs: don't audit the capability check in simple_xattr_list() 2023-01-14 10:15:16 +01:00