Regression on linux-next (next-20250120)
Greg Kroah-Hartman
gregkh at linuxfoundation.org
Wed Jan 29 07:13:02 UTC 2025
On Wed, Jan 29, 2025 at 04:37:12AM +0000, Al Viro wrote:
> 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 ;-/
No worries, want to send a patch to fix both of these up so we can fix
up Linus's tree now?
thanks,
greg k-h
More information about the Intel-xe
mailing list