mirror_ubuntu-kernels/fs
Pavel Begunkov 9a64fa7b23 UBUNTU: SAUCE: io_uring/af_unix: defer registered files gc to io_uring release
Instead of putting io_uring's registered files in unix_gc() we want it
to be done by io_uring itself. The trick here is to consider io_uring
registered files for cycle detection but not actually putting them down.
Because io_uring can't register other ring instances, this will remove
all refs to the ring file triggering the ->release path and clean up
with io_ring_ctx_free().

Cc: stable@vger.kernel.org
Fixes: 6b06314c47 ("io_uring: add file set registration")
Reported-and-tested-by: David Bouman <dbouman03@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
[axboe: add kerneldoc comment to skb]
Signed-off-by: Jens Axboe <axboe@kernel.dk>

CVE-2022-2602
[cascardo: context adjustment]
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Acked-by: Kamal Mostafa <kamal@canonical.com>
Acked-by: Luke Nowakowski-Krijger <luke.nowakowskikrijger@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
2022-10-13 09:21:48 +02:00
..
9p 9p: fix fid refcount leak in v9fs_vfs_get_link 2022-08-26 10:53:40 +02:00
adfs
affs
afs afs: Fix dynamic root getattr 2022-08-26 10:53:51 +02:00
aufs UBUNTU: SAUCE: aufs: switch to 64-bit ino_t for s390x 2022-02-22 19:10:39 +01:00
autofs autofs: fix wait name hash calculation in autofs_wait() 2021-10-20 21:09:02 -04:00
befs isystem: ship and use stdarg.h 2021-08-19 09:02:55 +09:00
bfs
btrfs btrfs: zoned: fix critical section of relocation inode writeback 2022-09-16 10:53:52 +02:00
cachefiles fs: add is_idmapped_mnt() helper 2022-08-26 10:54:05 +02:00
ceph ceph: switch netfs read ops to use rreq->inode instead of rreq->mapping->host 2022-09-16 10:52:52 +02:00
cifs cifs: fix reconnect on smb3 mount types 2022-08-26 10:53:11 +02:00
coda
configfs configfs: fix a race in configfs_{,un}register_subsystem() 2022-03-07 11:46:01 +01:00
cramfs
crypto fscrypt: allow 256-bit master keys with AES-256-XTS 2022-01-04 09:48:14 +01:00
debugfs debugfs: lockdown: Allow reading debugfs files that are not world readable 2022-01-28 10:59:51 +01:00
devpts fsnotify: fix fsnotify hooks in pseudo filesystems 2022-02-03 10:28:46 +01:00
dlm dlm: fix pending remove if msg allocation fails 2022-09-16 10:53:28 +02:00
ecryptfs fs: add is_idmapped_mnt() helper 2022-08-26 10:54:05 +02:00
efivarfs
efs
erofs iomap: Add done_before argument to iomap_dio_rw 2022-06-22 14:22:32 +02:00
exfat exfat: use updated exfat_chain directly during renaming 2022-09-16 10:53:34 +02:00
exportfs exportfs: support idmapped mounts 2022-08-10 09:25:32 +02:00
ext2 ext2: correct max file size computing 2022-05-20 14:39:02 +02:00
ext4 ext4: add reserved GDT blocks check 2022-08-26 10:53:35 +02:00
f2fs f2fs: attach inline_data after setting compression 2022-08-26 10:53:55 +02:00
fat fat: add ratelimit to fat*_ent_bread() 2022-08-10 09:23:56 +02:00
freevxfs
fscache fscache: Remove an unused static variable 2021-10-04 22:13:12 +01:00
fuse iov_iter: Turn iov_iter_fault_in_readable into fault_in_iov_iter_readable 2022-06-22 14:22:30 +02:00
gfs2 gfs2: Fix gfs2_file_buffered_write endless loop workaround 2022-09-16 10:52:10 +02:00
hfs hfs: add lock nesting notation to hfs_find_init 2021-07-15 10:13:49 -07:00
hfsplus
hostfs hostfs: support splice_write 2021-08-26 22:28:02 +02:00
hpfs hpfs: use iomap_fiemap to implement ->fiemap 2021-07-27 11:00:36 +02:00
hugetlbfs hugetlbfs: fix hugetlbfs_statfs() locking 2022-08-10 09:24:55 +02:00
iomap iomap: iomap_write_failed fix 2022-08-10 09:24:22 +02:00
isofs isofs: Fix out of bound access for corrupted isofs image 2021-12-07 07:32:24 +01:00
jbd2 jbd2: fix a potential race while discarding reserved buffers after an abort 2022-06-22 14:22:25 +02:00
jffs2 jffs2: fix memory leak in jffs2_do_fill_super 2022-08-26 10:52:46 +02:00
jfs fs: jfs: fix possible NULL pointer dereference in dbFree() 2022-08-10 09:23:55 +02:00
kernfs kernfs: Separate kernfs_pr_cont_buf and rename_lock. 2022-08-26 10:53:07 +02:00
ksmbd ksmbd: use SOCK_NONBLOCK type for kernel_accept() 2022-09-16 10:52:54 +02:00
lockd lockd: fix nlm_close_files 2022-09-16 10:52:48 +02:00
minix minix: fix bug when opening a file with O_DIRECT 2022-05-20 14:40:52 +02:00
netfs netfs: fix parameter of cleanup() 2022-01-04 09:49:45 +01:00
nfs pNFS: Avoid a live lock condition in pnfs_update_layout() 2022-08-26 10:53:26 +02:00
nfs_common nfs: Fix kerneldoc warning shown up by W=1 2021-10-04 22:02:17 +01:00
nfsd NFSD: COMMIT operations must not return NFS?ERR_INVAL 2022-09-16 10:52:11 +02:00
nilfs2 nilfs2: fix incorrect masking of permission flags for symlinks 2022-09-16 10:52:36 +02:00
nls
notify fsnotify: fix wrong lockdep annotations 2022-08-10 09:24:13 +02:00
ntfs ntfs: fix use-after-free in ntfs_ucsncmp() 2022-09-16 10:53:37 +02:00
ntfs3 fs/ntfs3: Fix invalid free in log_replay 2022-08-10 09:25:32 +02:00
ocfs2 Revert "ocfs2: mount shared volume without ha stack" 2022-09-16 10:53:37 +02:00
omfs
openpromfs
orangefs orangefs: Fix the size of a memory allocation in orangefs_bufmap_alloc() 2022-01-25 12:05:29 +01:00
overlayfs UBUNTU: SAUCE: overlayfs: remove CONFIG_AUFS_FS dependency 2022-08-26 10:54:28 +02:00
proc sysctl: move some boundary constants from sysctl.c to sysctl_vals 2022-09-16 10:53:10 +02:00
pstore pstore: Don't use semaphores in always-atomic-context code 2022-05-20 14:37:44 +02:00
qnx4 qnx4: work around gcc false positive warning bug 2021-09-21 08:36:48 -07:00
qnx6
quota quota: Prevent memory allocation recursion while holding dq_lock 2022-08-26 10:53:21 +02:00
ramfs
reiserfs Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
romfs
smbfs_common cifs: Fix crash on unload of cifs_arc4.ko 2022-01-04 09:49:16 +01:00
squashfs squashfs: use bvec_virt 2021-08-16 10:50:32 -06:00
sysfs sysfs: Allow deferred execution of iomem_get_mapping() 2021-08-06 13:05:28 +02:00
sysv
tracefs tracefs: Set the group ownership in apply_options() not parse_options() 2022-03-07 11:46:02 +01:00
ubifs ubifs: rename_whiteout: correct old_dir size computing 2022-05-20 14:40:10 +02:00
udf udf: Avoid using stale lengthOfImpUse 2022-08-10 09:22:02 +02:00
ufs isystem: ship and use stdarg.h 2021-08-19 09:02:55 +09:00
unicode
vboxsf vboxfs: fix broken legacy mount signature checking 2021-09-27 11:26:21 -07:00
verity fs-verity: fix signed integer overflow with i_size near S64_MAX 2021-09-22 10:56:34 -07:00
xfs xfs: prevent a WARN_ONCE() in xfs_ioc_attr_list() 2022-09-16 10:53:08 +02:00
zonefs zonefs: fix zonefs_iomap_begin() for reads 2022-08-26 10:53:37 +02:00
aio.c aio: Fix incorrect usage of eventfd_signal_allowed() 2022-01-04 09:49:20 +01:00
anon_inodes.c
attr.c fs: account for group membership 2022-08-26 10:54:07 +02:00
bad_inode.c vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
binfmt_aout.c binfmt: a.out: Fix bogus semicolon 2021-09-05 10:15:05 -07:00
binfmt_elf_fdpic.c coredump: Snapshot the vmas in do_coredump 2022-05-20 14:40:27 +02:00
binfmt_elf.c coredump: Use the vma snapshot in fill_files_note 2022-05-20 14:40:27 +02:00
binfmt_flat.c binfmt_flat: do not stop relocating GOT entries prematurely on riscv 2022-08-10 09:23:28 +02:00
binfmt_misc.c
binfmt_script.c
buffer.c mm: fs: fix lru_cache_disabled race in bh_lru 2022-05-20 14:37:31 +02:00
char_dev.c
compat_binfmt_elf.c
coredump.c coredump: Use the vma snapshot in fill_files_note 2022-05-20 14:40:27 +02:00
d_path.c d_path: make 'prepend()' fill up the buffer exactly on overflow 2021-09-02 10:07:29 -07:00
dax.c dax: fix cache flush on PMD-mapped pages 2022-08-10 09:24:49 +02:00
dcache.c UBUNTU: SAUCE: AUFS 2022-02-22 19:10:39 +01:00
direct-io.c
drop_caches.c fs: drop_caches: fix skipping over shadow cache inodes 2021-09-03 09:58:10 -07:00
eventfd.c eventfd: Export eventfd_wake_count to modules 2021-09-06 07:20:56 -04:00
eventpoll.c ARM development updates for 5.15: 2021-09-09 13:25:49 -07:00
exec.c fix race between exit_itimers() and /proc/pid/timers 2022-09-16 10:52:33 +02:00
fcntl.c UBUNTU: SAUCE: AUFS 2022-02-22 19:10:39 +01:00
fhandle.c
file_table.c UBUNTU: SAUCE: AUFS 2022-02-22 19:10:39 +01:00
file.c fs: fix fd table size alignment properly 2022-05-20 14:39:40 +02:00
filesystems.c fs: simplify get_filesystem_list / get_all_fs_names 2021-08-23 01:25:40 -04:00
fs_context.c UBUNTU: SAUCE: vfs: test that one given mount param is not larger than PAGE_SIZE 2022-01-21 11:53:42 +01:00
fs_parser.c namei: Standardize callers of filename_lookup() 2021-09-07 16:07:47 -04:00
fs_pin.c
fs_struct.c vfs: Use sequence counter with associated spinlock 2020-07-29 16:14:27 +02:00
fs_types.c
fs-writeback.c writeback: Fix inode->i_io_list not be protected by inode->i_lock error 2022-08-26 10:53:12 +02:00
fsopen.c
init.c
inode.c writeback: Fix inode->i_io_list not be protected by inode->i_lock error 2022-08-26 10:53:12 +02:00
internal.h block: simplify the block device syncing code 2022-06-22 14:22:03 +02:00
io_uring.c UBUNTU: SAUCE: io_uring/af_unix: defer registered files gc to io_uring release 2022-10-13 09:21:48 +02:00
io-wq.c io-wq: drop wqe lock before creating new worker 2022-01-04 09:49:29 +01:00
io-wq.h io-wq: provide a way to limit max number of workers 2021-08-29 07:55:55 -06:00
ioctl.c fs: fix an infinite loop in iomap_fiemap 2022-08-10 09:22:31 +02:00
Kconfig UBUNTU: SAUCE: AUFS 2022-02-22 19:10:39 +01:00
Kconfig.binfmt binfmt: remove support for em86 (alpha only) 2021-07-25 22:33:03 -07:00
kernel_read_file.c vfs: check fd has read access in kernel_read_file_from_fd() 2021-10-18 20:22:03 -10:00
libfs.c
locks.c Revert "memcg: enable accounting for file lock caches" 2021-09-07 11:21:48 -07:00
Makefile UBUNTU: SAUCE: AUFS 2022-02-22 19:10:39 +01:00
mbcache.c
mount.h
mpage.c
namei.c fs: add two trivial lookup helpers 2022-08-10 09:25:32 +02:00
namespace.c fs: support mapped mounts of mapped filesystems 2022-08-26 10:54:06 +02:00
no-block.c
nsfs.c
open.c fs: support mapped mounts of mapped filesystems 2022-08-26 10:54:06 +02:00
pipe.c pipe: Fix missing lock in pipe_resize_ring() 2022-08-10 09:23:18 +02:00
pnode.c
pnode.h
posix_acl.c fs: fix acl translation 2022-08-26 10:54:07 +02:00
proc_namespace.c fs: add is_idmapped_mnt() helper 2022-08-26 10:54:05 +02:00
read_write.c fs: sendfile handles O_NONBLOCK of out_fd 2022-09-16 10:53:38 +02:00
readdir.c
remap_range.c fs/remap: constrain dedupe of EOF blocks 2022-09-16 10:52:36 +02:00
select.c select: Fix indefinitely sleeping task in poll_schedule_timeout() 2022-02-03 10:26:41 +01:00
seq_file.c rxrpc: Fix locking issue 2022-09-16 10:52:19 +02:00
shiftfs.c UBUNTU: [SAUCE] shiftfs: support kernel 5.15 2022-01-20 19:07:46 +01:00
signalfd.c signalfd: use wake_up_pollfree() 2022-01-04 09:49:17 +01:00
splice.c UBUNTU: SAUCE: AUFS 2022-02-22 19:10:39 +01:00
stack.c
stat.c stat: fix inconsistency between struct stat and struct compat_stat 2022-06-22 14:22:16 +02:00
statfs.c s390,alpha: switch to 64-bit ino_t 2021-02-13 17:17:53 +01:00
super.c vfs: make freeze_super abort when sync_filesystem returns error 2022-03-07 11:44:04 +01:00
sync.c block: simplify the block device syncing code 2022-06-22 14:22:03 +02:00
timerfd.c timerfd: Provide timerfd_resume() 2021-08-10 17:57:22 +02:00
userfaultfd.c userfaultfd: fix a race between writeprotect and exit_mmap() 2021-10-18 20:22:02 -10:00
utimes.c
xattr.c fs: fix acl translation 2022-08-26 10:54:07 +02:00