On Tue, Jan 28, 2025 at 04:00:58PM +0000, Borah, Chaitanya Kumar wrote: > Unfortunately this change does not help us. I think it is the methods member that causes the problem. So the following change solves the problem for us. > > > --- a/fs/debugfs/file.c > +++ b/fs/debugfs/file.c > @@ -102,6 +102,8 @@ static int __debugfs_file_get(struct dentry *dentry, enum dbgfs_get_mode mode) > if (!fsd) > return -ENOMEM; > > + fsd->methods = 0; > + > if (mode == DBGFS_GET_SHORT) { > const struct debugfs_short_fops *ops; > ops = fsd->short_fops = DEBUGFS_I(inode)->short_fops; D'OH. Both are needed, actually. Slightly longer term I would rather split full_proxy_{read,write,lseek}() into short and full variant, getting rid of the "check which pointer is non-NULL" and killed the two remaining users of debugfs_real_fops() outside of fs/debugfs/file.c; then we could union these ->..._fops pointers, but until then they need to be initialized. And yes, ->methods obviously needs to be initialized. Al, bloody embarrassed ;-/