diff options
author | rwatson <rwatson@FreeBSD.org> | 2001-09-01 20:11:05 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2001-09-01 20:11:05 +0000 |
commit | 00ec5e8482631ee19c88843801e78c1e2388ad48 (patch) | |
tree | e5f9b41a112b2e46232599a0d8e411a1ad83cc53 /sys | |
parent | e13c8f325754e4b11e12cfca947c5fbc6ebc79d6 (diff) | |
download | FreeBSD-src-00ec5e8482631ee19c88843801e78c1e2388ad48.zip FreeBSD-src-00ec5e8482631ee19c88843801e78c1e2388ad48.tar.gz |
o At some point, unmounting a non-EA file system with EA's compiled
in got a bit broken, when ufs_extattr_stop() was called and failed,
ufs_extattr_destroy() would panic. This makes the call to destroy()
conditional on the success of stop().
Submitted by: Christian Carstensen <cc@devcon.net>
Obtained from: TrustedBSD Project
Diffstat (limited to 'sys')
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index b137a90..c9607e5 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -834,11 +834,13 @@ ffs_unmount(mp, mntflags, p) flags |= FORCECLOSE; } #ifdef UFS_EXTATTR - if ((error = ufs_extattr_stop(mp, p))) + if ((error = ufs_extattr_stop(mp, p))) { if (error != EOPNOTSUPP) printf("ffs_unmount: ufs_extattr_stop returned %d\n", error); - ufs_extattr_uepm_destroy(&ump->um_extattr); + } else { + ufs_extattr_uepm_destroy(&ump->um_extattr); + } #endif if (mp->mnt_flag & MNT_SOFTDEP) { if ((error = softdep_flushfiles(mp, flags, p)) != 0) |