summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2001-09-01 20:11:05 +0000
committerrwatson <rwatson@FreeBSD.org>2001-09-01 20:11:05 +0000
commit00ec5e8482631ee19c88843801e78c1e2388ad48 (patch)
treee5f9b41a112b2e46232599a0d8e411a1ad83cc53
parente13c8f325754e4b11e12cfca947c5fbc6ebc79d6 (diff)
downloadFreeBSD-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
-rw-r--r--sys/ufs/ffs/ffs_vfsops.c6
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)
OpenPOWER on IntegriCloud