On Sun, Jan 26, 2025 at 04:54:55PM +0100, Alexander Gordeev wrote: > > > Since the version next-20250120 [2], we are seeing the following regression > > > > Ugh... To narrow the things down, could you see if replacing > > fsd = kmalloc(sizeof(*fsd), GFP_KERNEL); > > with > > fsd = kzalloc(sizeof(*fsd), GFP_KERNEL); > > in fs/debugfs/file.c:__debugfs_file_get() affects the test? > > This change fixes lots of the below failures in our CI. FWIW: > > Tested-by: Alexander Gordeev <agordeev@xxxxxxxxxxxxx> The real fix follows: [PATCH] Fix the missing initializations in __debugfs_file_get() both method table pointers in debugfs_fsdata need to be initialized, obviously... Fixes: 41a0ecc0997c "debugfs: get rid of dynamically allocation proxy_ops" Fucked-up-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> --- diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c index e33cc77699cd..212cd8128e1f 100644 --- a/fs/debugfs/file.c +++ b/fs/debugfs/file.c @@ -111,6 +111,7 @@ static int __debugfs_file_get(struct dentry *dentry, enum dbgfs_get_mode mode) fsd->methods |= HAS_READ; if (ops->write) fsd->methods |= HAS_WRITE; + fsd->real_fops = NULL; } else { const struct file_operations *ops; ops = fsd->real_fops = DEBUGFS_I(inode)->real_fops; @@ -124,6 +125,7 @@ static int __debugfs_file_get(struct dentry *dentry, enum dbgfs_get_mode mode) fsd->methods |= HAS_IOCTL; if (ops->poll) fsd->methods |= HAS_POLL; + fsd->short_fops = NULL; } refcount_set(&fsd->active_users, 1); init_completion(&fsd->active_users_drained);