]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - fs/nfs/super.c
Merge branch 'for-3.20/bdi' of git://git.kernel.dk/linux-block
[mirror_ubuntu-bionic-kernel.git] / fs / nfs / super.c
index 368d9395d2e7f064c9539ff01d9353659ad5197e..322b2de02988fa6479c2d2831a5e5d70dfdad7c9 100644 (file)
@@ -311,7 +311,6 @@ const struct super_operations nfs_sops = {
        .destroy_inode  = nfs_destroy_inode,
        .write_inode    = nfs_write_inode,
        .drop_inode     = nfs_drop_inode,
-       .put_super      = nfs_put_super,
        .statfs         = nfs_statfs,
        .evict_inode    = nfs_evict_inode,
        .umount_begin   = nfs_umount_begin,
@@ -2572,7 +2571,7 @@ struct dentry *nfs_fs_mount_common(struct nfs_server *server,
                error = nfs_bdi_register(server);
                if (error) {
                        mntroot = ERR_PTR(error);
-                       goto error_splat_bdi;
+                       goto error_splat_super;
                }
                server->super = s;
        }
@@ -2604,9 +2603,6 @@ error_splat_root:
        dput(mntroot);
        mntroot = ERR_PTR(error);
 error_splat_super:
-       if (server && !s->s_root)
-               bdi_unregister(&server->backing_dev_info);
-error_splat_bdi:
        deactivate_locked_super(s);
        goto out;
 }
@@ -2653,28 +2649,20 @@ out:
 }
 EXPORT_SYMBOL_GPL(nfs_fs_mount);
 
-/*
- * Ensure that we unregister the bdi before kill_anon_super
- * releases the device name
- */
-void nfs_put_super(struct super_block *s)
-{
-       struct nfs_server *server = NFS_SB(s);
-
-       bdi_unregister(&server->backing_dev_info);
-}
-EXPORT_SYMBOL_GPL(nfs_put_super);
-
 /*
  * Destroy an NFS2/3 superblock
  */
 void nfs_kill_super(struct super_block *s)
 {
        struct nfs_server *server = NFS_SB(s);
+       dev_t dev = s->s_dev;
+
+       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);