From: Miklos Szeredi Register NFS' backing_dev_info under sysfs with the name "nfs-MAJOR:MINOR" Signed-off-by: Miklos Szeredi Cc: Peter Zijlstra Cc: Trond Myklebust Signed-off-by: Andrew Morton --- fs/nfs/super.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff -puN fs/nfs/super.c~mm-bdi-expose-the-bdi-object-in-sysfs-for-nfs fs/nfs/super.c --- a/fs/nfs/super.c~mm-bdi-expose-the-bdi-object-in-sysfs-for-nfs +++ a/fs/nfs/super.c @@ -1458,6 +1458,12 @@ static int nfs_compare_super(struct supe return nfs_compare_mount_options(sb, server, mntflags); } +static int nfs_bdi_register(struct nfs_server *server) +{ + return bdi_register(&server->backing_dev_info, NULL, "nfs-%u:%u", + MAJOR(server->s_dev), MINOR(server->s_dev)); +} + static int nfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *raw_data, struct vfsmount *mnt) { @@ -1498,6 +1504,10 @@ static int nfs_get_sb(struct file_system if (s->s_fs_info != server) { nfs_free_server(server); server = NULL; + } else { + error = nfs_bdi_register(server); + if (error) + goto error_splat_super; } if (!s->s_root) { @@ -1538,6 +1548,7 @@ static void nfs_kill_super(struct super_ { struct nfs_server *server = NFS_SB(s); + bdi_unregister(&server->backing_dev_info); kill_anon_super(s); nfs_free_server(server); } @@ -1582,6 +1593,10 @@ static int nfs_xdev_get_sb(struct file_s if (s->s_fs_info != server) { nfs_free_server(server); server = NULL; + } else { + error = nfs_bdi_register(server); + if (error) + goto error_splat_super; } if (!s->s_root) { @@ -1872,6 +1887,10 @@ static int nfs4_get_sb(struct file_syste if (s->s_fs_info != server) { nfs_free_server(server); server = NULL; + } else { + error = nfs_bdi_register(server); + if (error) + goto error_splat_super; } if (!s->s_root) { @@ -1957,6 +1976,10 @@ static int nfs4_xdev_get_sb(struct file_ if (s->s_fs_info != server) { nfs_free_server(server); server = NULL; + } else { + error = nfs_bdi_register(server); + if (error) + goto error_splat_super; } if (!s->s_root) { @@ -2036,6 +2059,10 @@ static int nfs4_referral_get_sb(struct f if (s->s_fs_info != server) { nfs_free_server(server); server = NULL; + } else { + error = nfs_bdi_register(server); + if (error) + goto error_splat_super; } if (!s->s_root) { _