No need to resend! I'll make sure the fixes & cc line get added to the commit On Thu, Nov 12, 2020 at 9:03 AM J. Bruce Fields <bfields@xxxxxxxxxxxx> wrote: > > Looks like this patch got lost, do you need me to resend? > > I should also have added a stable cc and a > > Fixes: 95ad37f90c33 "NFSv4.2: add client side xattr caching." > > --b. > > On Wed, Oct 21, 2020 at 10:34:15AM -0400, bfields wrote: > > From: "J. Bruce Fields" <bfields@xxxxxxxxxx> > > > > We forgot to unregister the nfs4_xattr_large_entry_shrinker. > > > > That leaves the global list of shrinkers corrupted after unload of the > > nfs module, after which possibly unrelated code that calls > > register_shrinker() or unregister_shrinker() gets a BUG() with > > "supervisor write access in kernel mode". > > > > And similarly for the nfs4_xattr_large_entry_lru. > > > > Reported-by: Kris Karas <bugs-a17@xxxxxxxxxxxxxxxx> > > Tested-By: Kris Karas <bugs-a17@xxxxxxxxxxxxxxxx> > > Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx> > > --- > > fs/nfs/nfs42xattr.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/fs/nfs/nfs42xattr.c b/fs/nfs/nfs42xattr.c > > index 86777996cfec..55b44a42d625 100644 > > --- a/fs/nfs/nfs42xattr.c > > +++ b/fs/nfs/nfs42xattr.c > > @@ -1048,8 +1048,10 @@ int __init nfs4_xattr_cache_init(void) > > > > void nfs4_xattr_cache_exit(void) > > { > > + unregister_shrinker(&nfs4_xattr_large_entry_shrinker); > > unregister_shrinker(&nfs4_xattr_entry_shrinker); > > unregister_shrinker(&nfs4_xattr_cache_shrinker); > > + list_lru_destroy(&nfs4_xattr_large_entry_lru); > > list_lru_destroy(&nfs4_xattr_entry_lru); > > list_lru_destroy(&nfs4_xattr_cache_lru); > > kmem_cache_destroy(nfs4_xattr_cache_cachep); > > -- > > 2.26.2 > >