Could you try the attached patch, which does what you suggest?

Robert N M Watson             FreeBSD Core Team, TrustedBSD Project
[EMAIL PROTECTED]      NAI Labs, Safeport Network Services

On Fri, 31 Aug 2001, Christian Carstensen wrote:

> 
> hi,
> 
> it seems like there's a problem in ffs_unmount, ffs_vfsops.c:841:
> 
> if ufs_extattr_stop() returns EOPNOTSUPP, calling ufs_extattr_uepm_destroy
> two lines later will cause a panic("ufs_extattr_uepm_destroy: not initialized")
> in ufs_extattr.c:175, at least on my machine.
> maybe, ufs_extattr_uepm_destroy() should be enclosed in a else statement
> in ffs_vfsops.c?
> 
> 
> best,
>   christian
> 
> --
> "Sorry, no defects found. Please try a different search"
>                           [http://www.cisco.com/support/bugtools/bugtool.shtml]
> 
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-current" in the body of the message
> 
Index: ffs_vfsops.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_vfsops.c,v
retrieving revision 1.157
diff -u -r1.157 ffs_vfsops.c
--- ffs_vfsops.c        2001/06/28 22:21:27     1.157
+++ ffs_vfsops.c        2001/09/01 02:22:55
@@ -834,11 +834,13 @@
                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)

Reply via email to