svn commit: r188624 - in stable/7/sys: . contrib/pf dev/cxgb ufs/ffs
Konstantin Belousov
kib at FreeBSD.org
Sat Feb 14 15:45:25 PST 2009
Author: kib
Date: Sat Feb 14 23:45:24 2009
New Revision: 188624
URL: http://svn.freebsd.org/changeset/base/188624
Log:
MFC r186897:
If unmount of the ffs mp failed, reinitialize the extended attributes
for the mp, and restart them if autostart is enabled.
Modified:
stable/7/sys/ (props changed)
stable/7/sys/contrib/pf/ (props changed)
stable/7/sys/dev/cxgb/ (props changed)
stable/7/sys/ufs/ffs/ffs_vfsops.c
Modified: stable/7/sys/ufs/ffs/ffs_vfsops.c
==============================================================================
--- stable/7/sys/ufs/ffs/ffs_vfsops.c Sat Feb 14 23:22:37 2009 (r188623)
+++ stable/7/sys/ufs/ffs/ffs_vfsops.c Sat Feb 14 23:45:24 2009 (r188624)
@@ -1030,6 +1030,9 @@ ffs_unmount(mp, mntflags, td)
struct ufsmount *ump = VFSTOUFS(mp);
struct fs *fs;
int error, flags, susp;
+#ifdef UFS_EXTATTR
+ int e_restart;
+#endif
flags = 0;
fs = ump->um_fs;
@@ -1043,8 +1046,10 @@ ffs_unmount(mp, mntflags, td)
if (error != EOPNOTSUPP)
printf("ffs_unmount: ufs_extattr_stop returned %d\n",
error);
+ e_restart = 0;
} else {
ufs_extattr_uepm_destroy(&ump->um_extattr);
+ e_restart = 1;
}
#endif
if (susp) {
@@ -1121,6 +1126,15 @@ fail:
vfs_write_resume(mp);
vn_start_write(NULL, &mp, V_WAIT);
}
+#ifdef UFS_EXTATTR
+ if (e_restart) {
+ ufs_extattr_uepm_init(&ump->um_extattr);
+#ifdef UFS_EXTATTR_AUTOSTART
+ (void) ufs_extattr_autostart(mp, td);
+#endif
+ }
+#endif
+
return (error);
}
More information about the svn-src-all
mailing list