Lee Jones
6948384db7
ANDROID: Incremental fs: Fix dentry get/put imbalance on vfs_mkdir() failure
Syz{bot,kaller} reports[0]:
BUG: Dentry ffff888119d8a000{i=0,n=.index} still in use (1) [unmount of ramfs ramfs]
------------[ cut here ]------------
WARNING: CPU: 0 PID: 367 at fs/dcache.c:1616 umount_check+0x18d/0x1d0 fs/dcache.c:1607
Modules linked in:
CPU: 0 PID: 367 Comm: syz-executor388 Not tainted 5.10.75-syzkaller-01082-g234d53d2bb60 #0
Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:umount_check+0x18d/0x1d0 fs/dcache.c:1607
Code: 8b 0b 49 81 c6 f8 03 00 00 48 c7 c7 00 40 2e 85 4c 89 e6 48 8b 55 d0 4c 89 e1 45 89 f8 31 c0 41 56 e8 ae d9 9e ff 48 83 c4 08 <0f> 0b e9 f1 fe ff ff 89 d9 80 e1 07 80 c1 03 38 c1 0f 8c c9 fe ff
RSP: 0018:ffffc9000096f770 EFLAGS: 00010292
RAX: 0000000000000055 RBX: ffffffff866af200 RCX: 1ad6b89836e5b500
RDX: 0000000000000000 RSI: 0000000000000002 RDI: 0000000000000000
RBP: ffffc9000096f7a0 R08: ffffffff81545368 R09: 0000000000000003
R10: fffff5200012de41 R11: 0000000000000004 R12: ffff888119d8a000
R13: dffffc0000000000 R14: ffff88811d7373f8 R15: 0000000000000001
FS: 0000000000000000(0000) GS:ffff8881f7000000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f01b7bddb68 CR3: 000000010c4f0000 CR4: 00000000003506b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
d_walk+0x309/0x540 fs/dcache.c:1326
do_one_tree fs/dcache.c:1623 [inline]
shrink_dcache_for_umount+0x8e/0x1b0 fs/dcache.c:1639
generic_shutdown_super+0x66/0x2c0 fs/super.c:447
kill_anon_super fs/super.c:1108 [inline]
kill_litter_super+0x75/0xa0 fs/super.c:1117
ramfs_kill_sb+0x44/0x50 fs/ramfs/inode.c:270
deactivate_locked_super+0xb0/0x100 fs/super.c:335
deactivate_super+0xa5/0xd0 fs/super.c:366
cleanup_mnt+0x45f/0x510 fs/namespace.c:1118
__cleanup_mnt+0x19/0x20 fs/namespace.c:1125
task_work_run+0x147/0x1b0 kernel/task_work.c:154
exit_task_work include/linux/task_work.h:30 [inline]
do_exit+0x70e/0x23a0 kernel/exit.c:813
do_group_exit+0x16a/0x2d0 kernel/exit.c:910
get_signal+0x133e/0x1f80 kernel/signal.c:2790
arch_do_signal+0x8d/0x620 arch/x86/kernel/signal.c:805
exit_to_user_mode_loop kernel/entry/common.c:161 [inline]
exit_to_user_mode_prepare+0xaa/0xe0 kernel/entry/common.c:191
syscall_exit_to_user_mode+0x24/0x40 kernel/entry/common.c:266
do_syscall_64+0x3d/0x70 arch/x86/entry/common.c:56
entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x7f01b7b884f9
Code: Unable to access opcode bytes at RIP 0x7f01b7b884cf.
RSP: 002b:00007f01b7b19308 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 00007f01b7c103f8 RCX: 00007f
Which was due to a missing dput() before returning from a vfs_mkdir() failure.
Bug: 203827798
Link: [0] https://syzkaller.appspot.com/bug?extid=81b5ca9b2848f4dad8fa
Reported-by: syzbot+81b5ca9b2848f4dad8fa@syzkaller.appspotmail.com
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Change-Id: Iaef9aa0aecc964645aaca5fe8d79388ae28527bd
Signed-off-by: Sorayukii <sorayukii69@gmail.com>
|
2026-05-15 18:07:16 +07:00 |
| .. |
|
9p
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
adfs
|
fs/adfs: super: fix use-after-free bug
|
2019-08-06 18:29:35 +02:00 |
|
affs
|
affs: fix basic permission bits to actually work
|
2020-09-12 11:47:39 +02:00 |
|
afs
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
autofs4
|
BACKPORT: pids: Move the pgrp and session pid pointers from task_struct to signal_struct
|
2026-05-15 17:59:02 +07:00 |
|
befs
|
|
|
|
bfs
|
|
|
|
btrfs
|
treewide: Backport new vmalloc for large performance benefits
|
2026-05-15 17:48:25 +07:00 |
|
cachefiles
|
cachefiles: Handle readpage error correctly
|
2020-11-10 10:24:00 +01:00 |
|
ceph
|
treewide: Backport new vmalloc for large performance benefits
|
2026-05-15 17:48:25 +07:00 |
|
cifs
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
coda
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
configfs
|
configfs: fix a race in configfs_{,un}register_subsystem()
|
2022-03-02 11:32:03 +01:00 |
|
cramfs
|
|
|
|
crypto
|
Merge branch 'linux-4.9.y' of https://kernel.googlesource.com/pub/scm/linux/kernel/git/jaegeuk/f2fs-stable into lineage-20
|
2022-11-16 15:35:23 +01:00 |
|
debugfs
|
UPSTREAM: fs: constify tree_descr arrays passed to simple_fill_super()
|
2026-05-15 17:55:17 +07:00 |
|
devpts
|
|
|
|
dlm
|
BACKPORT: net: Work around lockdep limitation in sockets that use sockets
|
2026-05-15 17:56:15 +07:00 |
|
ecryptfs
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
efivarfs
|
efivarfs: revert "fix memory leak in efivarfs_create()"
|
2020-12-02 08:31:28 +01:00 |
|
efs
|
|
|
|
exfat
|
exfat: Lower kernel version check for exfat_getattr from 4.11 to 4.9
|
2025-07-10 14:15:46 -04:00 |
|
exofs
|
|
|
|
exportfs
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
ext2
|
ext2: correct max file size computing
|
2022-04-20 09:06:35 +02:00 |
|
ext4
|
treewide: Backport new vmalloc for large performance benefits
|
2026-05-15 17:48:25 +07:00 |
|
f2fs
|
treewide: Backport new vmalloc for large performance benefits
|
2026-05-15 17:48:25 +07:00 |
|
fat
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
freevxfs
|
|
|
|
fscache
|
|
|
|
fuse
|
FROMLIST: fuse: 32-bit user space ioctl compat for fuse device
|
2026-05-15 18:06:55 +07:00 |
|
gfs2
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
hfs
|
hfs: fix OOB Read in __hfs_brec_find
|
2023-01-07 12:07:31 +01:00 |
|
hfsplus
|
hfsplus: fix bug causing custom uid and gid being unable to be assigned with mount
|
2023-01-07 12:07:35 +01:00 |
|
hostfs
|
|
|
|
hpfs
|
|
|
|
hugetlbfs
|
hugetlbfs: hugetlb_fault_mutex_hash() cleanup
|
2021-06-03 08:23:33 +02:00 |
|
incfs
|
ANDROID: Incremental fs: Fix dentry get/put imbalance on vfs_mkdir() failure
|
2026-05-15 18:07:16 +07:00 |
|
isofs
|
isofs: Fix out of bound access for corrupted isofs image
|
2021-11-12 13:18:02 +01:00 |
|
jbd2
|
BACKPORT: rcu: Ports some of RCU's taken from k4.14
|
2026-05-15 17:49:30 +07:00 |
|
jffs2
|
jffs2: fix memory leak in jffs2_do_fill_super
|
2022-06-14 16:52:38 +02:00 |
|
jfs
|
fs: jfs: fix shift-out-of-bounds in dbDiscardAG
|
2023-01-07 12:07:30 +01:00 |
|
kernfs
|
BACKPORT: kernfs: convert kernfs_node->id from union kernfs_node_id to u64
|
2026-05-15 18:02:33 +07:00 |
|
lockd
|
This is the 4.9.249 stable release
|
2020-12-29 14:16:49 +01:00 |
|
logfs
|
|
|
|
minix
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
ncpfs
|
|
|
|
nfs
|
treewide: Backport new vmalloc for large performance benefits
|
2026-05-15 17:48:25 +07:00 |
|
nfs_common
|
nfs_common: need lock during iterate through the list
|
2020-12-29 13:44:59 +01:00 |
|
nfsd
|
UPSTREAM: fs: constify tree_descr arrays passed to simple_fill_super()
|
2026-05-15 17:55:17 +07:00 |
|
nilfs2
|
Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-20
|
2023-01-19 15:42:12 +01:00 |
|
nls
|
|
|
|
notify
|
UPSTREAM: audit: Record fanotify access control decisions
|
2026-05-15 17:59:18 +07:00 |
|
ntfs
|
treewide: Backport new vmalloc for large performance benefits
|
2026-05-15 17:48:25 +07:00 |
|
ocfs2
|
BACKPORT: net: Work around lockdep limitation in sockets that use sockets
|
2026-05-15 17:56:15 +07:00 |
|
omfs
|
|
|
|
openpromfs
|
|
|
|
orangefs
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
overlayfs
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
proc
|
UPSTREAM: mm,fork: introduce MADV_WIPEONFORK
|
2026-05-15 18:04:15 +07:00 |
|
pstore
|
This is the 4.9.337 stable release
|
2023-01-07 13:07:00 +01:00 |
|
qnx4
|
qnx4: work around gcc false positive warning bug
|
2021-10-06 10:23:41 +02:00 |
|
qnx6
|
|
|
|
quota
|
quota: Check next/prev free block number after reading from quota file
|
2022-10-26 13:15:37 +02:00 |
|
ramfs
|
|
|
|
reiserfs
|
reiserfs: Add missing calls to reiserfs_security_free()
|
2023-01-07 12:07:34 +01:00 |
|
romfs
|
romfs: fix uninitialized memory leak in romfs_dev_read()
|
2020-08-26 10:29:03 +02:00 |
|
sdcardfs
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
squashfs
|
squashfs: fix divide error in calculate_skip()
|
2021-05-22 10:40:32 +02:00 |
|
sysfs
|
BACKPORT: kernfs: allow creating kernfs objects with arbitrary uid/gid
|
2026-05-15 17:59:10 +07:00 |
|
sysv
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
tracefs
|
UPSTREAM: fs: constify tree_descr arrays passed to simple_fill_super()
|
2026-05-15 17:55:17 +07:00 |
|
ubifs
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
udf
|
udf: Avoid double brelse() in udf_rename()
|
2023-01-07 12:07:30 +01:00 |
|
ufs
|
fs/ufs: avoid potential u32 multiplication overflow
|
2020-08-21 11:02:11 +02:00 |
|
xfs
|
treewide: Backport new vmalloc for large performance benefits
|
2026-05-15 17:48:25 +07:00 |
|
aio.c
|
|
|
|
anon_inodes.c
|
|
|
|
attr.c
|
This is the 4.9.326 stable release
|
2022-08-25 12:09:51 +02:00 |
|
bad_inode.c
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
binfmt_aout.c
|
|
|
|
binfmt_elf.c
|
fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
|
2020-06-03 08:16:42 +02:00 |
|
binfmt_elf_fdpic.c
|
|
|
|
binfmt_em86.c
|
|
|
|
binfmt_flat.c
|
fs/binfmt_flat.c: make load_flat_shared_library() work
|
2019-07-10 09:55:38 +02:00 |
|
binfmt_misc.c
|
UPSTREAM: fs: constify tree_descr arrays passed to simple_fill_super()
|
2026-05-15 17:55:17 +07:00 |
|
binfmt_script.c
|
exec: load_script: Do not exec truncated interpreter path
|
2019-11-06 12:18:04 +01:00 |
|
block_dev.c
|
Merge branch 'linux-4.9.y' of https://kernel.googlesource.com/pub/scm/linux/kernel/git/jaegeuk/f2fs-stable into lineage-20
|
2022-11-16 15:35:23 +01:00 |
|
buffer.c
|
Merge remote-tracking branch 'common/android-4.9-q' into android13-4.9-sdm845
|
2022-12-20 19:52:09 +02:00 |
|
char_dev.c
|
chardev: fix error handling in cdev_device_add()
|
2023-01-07 12:07:26 +01:00 |
|
compat.c
|
|
|
|
compat_binfmt_elf.c
|
|
|
|
compat_ioctl.c
|
UPSTREAM: lsm: new security_file_ioctl_compat() hook
|
2026-05-15 17:59:05 +07:00 |
|
coredump.c
|
|
|
|
dax.c
|
|
|
|
dcache.c
|
Merge android-4.9.187 (fabc071) into msm-4.9
|
2019-10-11 14:38:02 +08:00 |
|
dcookies.c
|
|
|
|
direct-io.c
|
Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-18.1-caf-sdm845
|
2021-04-26 01:27:02 +03:00 |
|
drop_caches.c
|
|
|
|
eventfd.c
|
|
|
|
eventpoll.c
|
UPSTREAM: epoll: add syscall epoll_pwait2
|
2026-05-15 18:04:17 +07:00 |
|
exec.c
|
BACKPORT: pid: Implement PIDTYPE_TGID
|
2026-05-15 17:59:02 +07:00 |
|
fcntl.c
|
|
|
|
fhandle.c
|
|
|
|
file.c
|
fs: Rename __close_fd_get_file close_fd_get_file
|
2026-05-15 18:04:20 +07:00 |
|
file_table.c
|
treewide: Backport new vmalloc for large performance benefits
|
2026-05-15 17:48:25 +07:00 |
|
filesystems.c
|
|
|
|
fs-writeback.c
|
UPSTREAM: cgroup, blkcg: Prepare some symbols for module and !CONFIG_CGROUP usages
|
2026-05-15 18:02:33 +07:00 |
|
fs_pin.c
|
|
|
|
fs_struct.c
|
|
|
|
inode.c
|
BACKPORT: new inode method: ->free_inode()
|
2026-05-15 17:57:41 +07:00 |
|
internal.h
|
|
|
|
ioctl.c
|
|
|
|
iomap.c
|
|
|
|
Kconfig
|
ANDROID: Initial commit of Incremental FS
|
2026-05-15 18:07:10 +07:00 |
|
Kconfig.binfmt
|
|
|
|
libfs.c
|
UPSTREAM: fs: constify tree_descr arrays passed to simple_fill_super()
|
2026-05-15 17:55:17 +07:00 |
|
locks.c
|
locks: print unsigned ino in /proc/locks
|
2020-01-12 11:24:13 +01:00 |
|
Makefile
|
ANDROID: Initial commit of Incremental FS
|
2026-05-15 18:07:10 +07:00 |
|
mbcache.c
|
|
|
|
mount.h
|
|
|
|
mpage.c
|
f2fs: fix build error on android tracepoints
|
2019-08-16 11:38:27 +00:00 |
|
namei.c
|
new primitive: vfs_mkobj()
|
2026-05-15 17:55:40 +07:00 |
|
namespace.c
|
VFS: use synchronize_rcu_expedited() in namespace_unlock()
|
2026-05-15 17:48:25 +07:00 |
|
no-block.c
|
|
|
|
nsfs.c
|
UPSTREAM: nsfs: unobfuscate
|
2026-05-15 17:57:09 +07:00 |
|
open.c
|
BACKPORT: close_range: add CLOSE_RANGE_UNSHARE
|
2026-05-15 18:04:16 +07:00 |
|
pipe.c
|
pipe: increase minimum default pipe size to 2 pages
|
2021-08-15 13:01:03 +02:00 |
|
pnode.c
|
This is the 4.9.337 stable release
|
2023-01-07 13:07:00 +01:00 |
|
pnode.h
|
|
|
|
posix_acl.c
|
|
|
|
proc_namespace.c
|
|
|
|
read_write.c
|
This is the 4.9.181 stable release
|
2019-06-11 14:39:40 +02:00 |
|
readdir.c
|
filldir[64]: remove WARN_ON_ONCE() for bad directory entries
|
2020-01-04 13:41:06 +01:00 |
|
select.c
|
select: use freezable blocking call
|
2021-05-26 18:59:42 +03:00 |
|
seq_file.c
|
treewide: Backport new vmalloc for large performance benefits
|
2026-05-15 17:48:25 +07:00 |
|
signalfd.c
|
signalfd: use wake_up_pollfree()
|
2021-12-14 10:04:48 +01:00 |
|
splice.c
|
fs: prevent page refcount overflow in pipe_buf_get
|
2019-06-11 12:22:45 +02:00 |
|
stack.c
|
|
|
|
stat.c
|
statx: Add a system call to make enhanced file info available
|
2025-07-10 14:15:39 -04:00 |
|
statfs.c
|
|
|
|
super.c
|
Merge remote-tracking branch 'common/android-4.9-q' into android12-4.9-sdm845
|
2022-03-31 22:52:51 +03:00 |
|
sync.c
|
|
|
|
timerfd.c
|
|
|
|
userfaultfd.c
|
Merge android-4.9.191 (9ca8608) into msm-4.9
|
2019-10-23 13:25:13 +08:00 |
|
utimes.c
|
|
|
|
xattr.c
|
This is the 4.9.337 stable release
|
2023-01-07 13:07:00 +01:00 |