NFS: Don't cleanup sysfs superblock entry if uninitialized
Its possible to end up in nfs_free_server() before the server's superblock
sysfs entry has been initialized, in which case calling kobject_put() will
emit a WARNING. Check if the kobject has been initialized before cleaning
it up.
Fixes: 1c7251187d
("NFS: add superblock sysfs entries")
Reported-by: Nathan Chancellor <nathan@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
Родитель
cded49ba36
Коммит
e901f17b07
|
@ -1021,8 +1021,10 @@ void nfs_free_server(struct nfs_server *server)
|
|||
|
||||
nfs_put_client(server->nfs_client);
|
||||
|
||||
nfs_sysfs_remove_server(server);
|
||||
kobject_put(&server->kobj);
|
||||
if (server->kobj.state_initialized) {
|
||||
nfs_sysfs_remove_server(server);
|
||||
kobject_put(&server->kobj);
|
||||
}
|
||||
ida_free(&s_sysfs_ids, server->s_sysfs_id);
|
||||
|
||||
ida_destroy(&server->lockowner_id);
|
||||
|
|
Загрузка…
Ссылка в новой задаче