linux/fs
Qu Wenruo 19e60b2a95 btrfs: add extra warning if delayed iput is added when it's not allowed
Since I have triggered the ASSERT() on the delayed iput too many times,
now is the time to add some extra debug warnings for delayed iput.

All delayed iputs should be queued after all ordered extents finish
their IO and all involved workqueues are flushed.

Thus after the btrfs_run_delayed_iputs() inside close_ctree(), there
should be no more delayed puts added.

So introduce a new BTRFS_FS_STATE_NO_DELAYED_IPUT, set after the above
mentioned timing.  And all btrfs_add_delayed_iput() will check that flag
and give a WARN_ON_ONCE().

Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-18 20:35:52 +01:00
..
9p Provide stable parent and name to ->d_revalidate() instances 2025-01-30 09:13:35 -08:00
adfs
affs affs: don't write overlarge OFS data block size fields 2025-02-26 15:20:57 +01:00
afs afs: Fix afs_atcell_get_link() to handle RCU pathwalk 2025-03-10 09:46:53 +00:00
autofs
bcachefs bcachefs: fix build on 32 bit in get_random_u64_below() 2025-03-14 19:45:54 -04:00
befs
bfs
btrfs btrfs: add extra warning if delayed iput is added when it's not allowed 2025-03-18 20:35:52 +01:00
cachefiles treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
ceph A fix for a memory leak from Antoine (marked for stable) and two 2025-01-31 10:30:34 -08:00
coda Provide stable parent and name to ->d_revalidate() instances 2025-01-30 09:13:35 -08:00
configfs
cramfs
crypto fscrypt_d_revalidate(): use stable parent inode passed by caller 2025-01-27 19:25:23 -05:00
debugfs debugfs: Fix the missing initializations in __debugfs_file_get() 2025-01-30 08:22:31 +01:00
devpts treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
dlm dlm: return -ENOENT if no comm was found 2024-12-19 13:11:24 -06:00
ecryptfs Pass parent directory inode and expected name to ->d_revalidate() 2025-01-27 19:25:23 -05:00
efivarfs efivarfs: allow creation of zero length files 2025-02-27 11:27:49 +01:00
efs
erofs lockref: remove count argument of lockref_init 2025-02-07 10:27:25 +01:00
exfat exfat: add a check for invalid data size 2025-03-05 21:53:20 +09:00
exportfs
ext2
ext4 Revert "ext4: add pre-content fsnotify hook for DAX faults" 2025-03-13 16:29:58 +01:00
f2fs f2fs-for-6.14-rc1 2025-01-27 20:58:58 -08:00
fat vfat_revalidate{,_ci}(): use stable parent inode passed by caller 2025-01-27 19:25:24 -05:00
freevxfs
fuse fs/pipe: add simpler helpers for common cases 2025-03-06 18:25:35 -10:00
gfs2 lockref: remove count argument of lockref_init 2025-02-07 10:27:25 +01:00
hfs Provide stable parent and name to ->d_revalidate() instances 2025-01-30 09:13:35 -08:00
hfsplus
hostfs hostfs __dentry_name() fix 2025-01-31 09:33:54 -08:00
hpfs
hugetlbfs mm/hugetlb: rename avoid_reserve to cow_from_owner 2025-01-25 20:22:30 -08:00
iomap iomap: Minor code simplification in iomap_dio_bio_iter() 2025-02-25 11:55:26 +01:00
isofs
jbd2 CRC updates for 6.14 2025-01-22 19:55:08 -08:00
jffs2
jfs Pass parent directory inode and expected name to ->d_revalidate() 2025-01-27 19:25:23 -05:00
kernfs assorted stuff for this merge window 2025-02-01 15:07:56 -08:00
lockd treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
minix
netfs netfs: Fix setting NETFS_RREQ_ALL_QUEUED to be after all subreqs queued 2025-02-13 16:00:48 +01:00
nfs 33 hotfixes. 24 are cc:stable and the remainder address post-6.13 issues 2025-03-08 14:34:06 -10:00
nfs_common nfs: fix incorrect error handling in LOCALIO 2025-01-21 11:34:43 -05:00
nfsd nfsd-6.14 fixes: 2025-02-10 13:11:24 -08:00
nilfs2 nilfs2: fix possible int overflows in nilfs_fiemap() 2025-02-01 03:53:26 -08:00
nls
notify fsnotify: use accessor to set FMODE_NONOTIFY_* 2025-02-07 10:27:26 +01:00
ntfs3 fs/ntfs3: Unify inode corruption marking with _ntfs_bad_inode() 2024-12-30 11:37:40 +03:00
ocfs2 ocfs2: fix incorrect CPU endianness conversion causing mount failure 2025-02-01 03:53:24 -08:00
omfs
openpromfs
orangefs orangefs: fix a oob in orangefs_debug_write 2025-01-31 09:40:31 -08:00
overlayfs ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up 2025-02-19 18:06:53 +01:00
proc procfs: fix a locking bug in a vmcore_add_device_dump() error path 2025-02-17 22:40:00 -08:00
pstore pstore updates for v6.14-rc1 2025-01-20 13:37:14 -08:00
qnx4
qnx6
quota treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
ramfs
romfs
smb Two SMB server fixes 2025-03-14 18:43:37 -10:00
squashfs squashfs: convert squashfs_fill_page() to take a folio 2025-01-24 22:47:22 -08:00
sysfs sysfs: constify bin_attribute argument of sysfs_bin_attr_simple_read() 2025-01-09 10:43:58 +01:00
sysv
tests
tracefs Pass parent directory inode and expected name to ->d_revalidate() 2025-01-27 19:25:23 -05:00
ubifs ubifs: skip dumping tnc tree when zroot is null 2025-01-18 15:31:35 +01:00
udf
ufs
unicode
vboxsf vboxsf: Add __nonstring annotations for unterminated strings 2025-03-11 13:06:39 +01:00
verity treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
xfs \n 2025-03-15 08:32:16 -10:00
zonefs
aio.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
anon_inodes.c add a string-to-qstr constructor 2025-01-27 19:25:45 -05:00
attr.c
backing-file.c
bad_inode.c
binfmt_elf.c
binfmt_elf_fdpic.c
binfmt_flat.c binfmt_flat: Fix integer overflow bug on 32 bit systems 2025-01-10 08:49:05 -08:00
binfmt_misc.c execve updates for v6.14-rc1 2025-01-20 13:27:58 -08:00
binfmt_script.c
bpf_fs_kfuncs.c
buffer.c
char_dev.c
compat_binfmt_elf.c
coredump.c coredump: Only sort VMAs when core_sort_vma sysctl is set 2025-02-24 10:51:57 -08:00
d_path.c
dax.c
dcache.c vfs-6.14-rc2.fixes 2025-02-07 09:22:31 -08:00
direct-io.c
drop_caches.c
eventfd.c
eventpoll.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
exec.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
fcntl.c
fhandle.c exportfs: add permission method 2024-12-17 09:16:11 +01:00
file.c vfs-6.14-rc1.misc 2025-01-20 09:40:49 -08:00
file_table.c fsnotify: disable pre-content and permission events by default 2025-02-07 10:27:27 +01:00
filesystems.c
fs-writeback.c
fs_context.c fs: fc_log replace magic number 7 with ARRAY_SIZE() 2024-12-22 11:29:52 +01:00
fs_parser.c bcachefs: add support for true/false & yes/no in bool-type options 2024-12-21 01:36:17 -05:00
fs_pin.c
fs_struct.c
fs_types.c
fsopen.c
init.c
inode.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
internal.h
ioctl.c
Kconfig
Kconfig.binfmt
kernel_read_file.c
libfs.c Provide stable parent and name to ->d_revalidate() instances 2025-01-30 09:13:35 -08:00
locks.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
Makefile
mbcache.c
mnt_idmapping.c
mount.h fs: cache first and last mount 2025-01-09 16:58:54 +01:00
mpage.c
namei.c fuse: don't truncate cached, mutated symlink 2025-02-20 15:48:17 +01:00
namespace.c fs: fix adding security options to statmount.mnt_opt 2025-02-07 10:27:26 +01:00
nsfs.c nsfs: remove d_op->d_delete 2025-02-24 11:30:35 +01:00
open.c fsnotify: disable notification by default for all pseudo files 2025-02-07 10:27:26 +01:00
pidfs.c pidfs: remove d_op->d_delete 2025-02-24 11:27:02 +01:00
pipe.c fs/pipe: add simpler helpers for common cases 2025-03-06 18:25:35 -10:00
pnode.c fs: Fix grammar and spelling in propagate_umount() 2024-12-22 11:29:52 +01:00
pnode.h
posix_acl.c
proc_namespace.c
read_write.c
readdir.c
remap_range.c
select.c select: Fix unbalanced user_access_end() 2025-01-13 16:24:16 +01:00
seq_file.c
signalfd.c
splice.c fs/pipe: add simpler helpers for common cases 2025-03-06 18:25:35 -10:00
stack.c
stat.c fs/stat.c: avoid harmless garbage value problem in vfs_statx_path() 2025-02-07 10:27:24 +01:00
statfs.c
super.c lib/list_debug.c: add object information in case of invalid object 2025-01-25 20:22:23 -08:00
sync.c
sysctls.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
timerfd.c
userfaultfd.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
utimes.c
xattr.c