I can confirm that the patch fixes the issue on 5.18.1 as well. Thanks again! Satadru On Sat, Jun 4, 2022 at 10:31 PM Satadru Pramanik <satadru@xxxxxxxxx> wrote: > > The patch appears to fix the issue on the problematic bisected > pre-5.16 kernel. (I let the machine sleep for 3 hours and the mount > still worked after resume.) > > I'm now booted into a 5.18.1 kernel with this patch, and I'll be able > to tell tomorrow morning if this also resolves the issue with this > newer kernel. > > Thanks for the help in getting this issue resolved! > > Regards, > > Satadru > > On Sat, Jun 4, 2022 at 3:36 PM Paulo Alcantara <pc@xxxxxx> wrote: > > > > Hi Satadru, > > > > Thanks for providing all requested files off-list. With that, I ended > > up with below changes that should fix your issue. Please let us if it > > works. > > > > diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c > > index 12c872800326..325423180fd2 100644 > > --- a/fs/cifs/cifsfs.c > > +++ b/fs/cifs/cifsfs.c > > @@ -1086,7 +1086,7 @@ struct file_system_type cifs_fs_type = { > > }; > > MODULE_ALIAS_FS("cifs"); > > > > -static struct file_system_type smb3_fs_type = { > > +struct file_system_type smb3_fs_type = { > > .owner = THIS_MODULE, > > .name = "smb3", > > .init_fs_context = smb3_init_fs_context, > > diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h > > index dd7e070ca243..b17be47a8e59 100644 > > --- a/fs/cifs/cifsfs.h > > +++ b/fs/cifs/cifsfs.h > > @@ -38,7 +38,7 @@ static inline unsigned long cifs_get_time(struct dentry *dentry) > > return (unsigned long) dentry->d_fsdata; > > } > > > > -extern struct file_system_type cifs_fs_type; > > +extern struct file_system_type cifs_fs_type, smb3_fs_type; > > extern const struct address_space_operations cifs_addr_ops; > > extern const struct address_space_operations cifs_addr_ops_smallbuf; > > > > diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c > > index 35962a1a23b9..eeb2a2957a68 100644 > > --- a/fs/cifs/misc.c > > +++ b/fs/cifs/misc.c > > @@ -1211,8 +1211,12 @@ static struct super_block *__cifs_get_super(void (*f)(struct super_block *, void > > .data = data, > > .sb = NULL, > > }; > > + struct file_system_type **fs_type = (struct file_system_type *[]) { > > + &cifs_fs_type, &smb3_fs_type, NULL, > > + }; > > > > - iterate_supers_type(&cifs_fs_type, f, &sd); > > + for (; *fs_type; fs_type++) > > + iterate_supers_type(*fs_type, f, &sd); > > > > if (!sd.sb) > > return ERR_PTR(-EINVAL);