mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 15:30:14 +00:00
Linux: afs_fill_super: Call bdi_destroy on the failure path
Without this, if AFS startup failed, then trying to start AFS again triggers these warnings: WARNING: CPU: 3 PID: 657 at /build/buildd/linux-3.12.0/fs/sysfs/dir.c:526 sysfs_add_one+0xa5/0xd0() sysfs: cannot create duplicate filename '/devices/virtual/bdi/afs' WARNING: CPU: 3 PID: 657 at /build/buildd/linux-3.12.0/lib/kobject.c:196 kobject_add_internal+0x1f4/0x300() kobject_add_internal failed for afs with -EEXIST, don't try to register things with the same name in the same directory. and leads to general system instability. This can be reproduced by starting AFS twice with an empty cache, dynroot disabled, and no network. Change-Id: I8ec1ed365c5b3cf60bd34af0aca94e0c496bcaa3 Signed-off-by: Anders Kaseorg <andersk@mit.edu> Reviewed-on: http://gerrit.openafs.org/10448 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com> Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
This commit is contained in:
parent
9f6f419b9a
commit
f5f53cb0a1
@ -146,6 +146,10 @@ afs_fill_super(struct super_block *sb, void *data, int silent)
|
|||||||
if (code) {
|
if (code) {
|
||||||
afs_globalVFS = NULL;
|
afs_globalVFS = NULL;
|
||||||
afs_FlushAllVCaches();
|
afs_FlushAllVCaches();
|
||||||
|
#if defined(HAVE_LINUX_BDI_INIT)
|
||||||
|
bdi_destroy(afs_backing_dev_info);
|
||||||
|
#endif
|
||||||
|
kfree(afs_backing_dev_info);
|
||||||
module_put(THIS_MODULE);
|
module_put(THIS_MODULE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user