Commit 48d07649 authored by Jens Axboe's avatar Jens Axboe

nfs: initialize the backing_dev_info when creating the server

NFS may free the server structure without ever having used the
bdi, so we either need to flag the bdi as being uninitialized or
initialize it up front. This does the latter.

This fixes a crash with mounting more than one NFS file system,
should people ever need that kind of obscure NFS functionality.
Tested-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent 87c6a9b2
...@@ -933,10 +933,6 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str ...@@ -933,10 +933,6 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str
goto out_error; goto out_error;
nfs_server_set_fsinfo(server, &fsinfo); nfs_server_set_fsinfo(server, &fsinfo);
error = bdi_init(&server->backing_dev_info);
if (error)
goto out_error;
/* Get some general file system info */ /* Get some general file system info */
if (server->namelen == 0) { if (server->namelen == 0) {
...@@ -995,6 +991,12 @@ static struct nfs_server *nfs_alloc_server(void) ...@@ -995,6 +991,12 @@ static struct nfs_server *nfs_alloc_server(void)
return NULL; return NULL;
} }
if (bdi_init(&server->backing_dev_info)) {
nfs_free_iostats(server->io_stats);
kfree(server);
return NULL;
}
return server; return server;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment