On Thu, 2023-08-31 at 07:29 +0200, Christoph Hellwig wrote: > NFS switch to open coding kill_anon_super in 7b14a213890a > ("nfs: don't call bdi_unregister") to avoid the extra bdi_unregister > call. At that point bdi_destroy was called in nfs_free_server and > thus it required a later freeing of the anon dev_t. But since > 0db10944a76b ("nfs: Convert to separately allocated bdi") the bdi has > been free implicitly by the sb destruction, so this isn't needed > anymore. > > By not open coding kill_anon_super, nfs now inherits the fix in > dc3216b14160 ("super: ensure valid info"), and we remove the only > open coded version of kill_anon_super. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > fs/nfs/super.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/fs/nfs/super.c b/fs/nfs/super.c > index 2284f749d89246..0d6473cb00cb3e 100644 > --- a/fs/nfs/super.c > +++ b/fs/nfs/super.c > @@ -1339,15 +1339,13 @@ int nfs_get_tree_common(struct fs_context *fc) > void nfs_kill_super(struct super_block *s) > { > struct nfs_server *server = NFS_SB(s); > - dev_t dev = s->s_dev; > > nfs_sysfs_move_sb_to_server(server); > - generic_shutdown_super(s); > + kill_anon_super(s); > > nfs_fscache_release_super_cookie(s); > > nfs_free_server(server); > - free_anon_bdev(dev); > } > EXPORT_SYMBOL_GPL(nfs_kill_super); > Nice. Long overdue. This also might explain why ceph was once this way before we changed it here: 470a5c77eac0 ceph: use kill_anon_super helper In any case: Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>