svn commit: r222954 - head/sys/ufs/ufs

Jeff Roberson jeff at FreeBSD.org
Fri Jun 10 22:18:26 UTC 2011


Author: jeff
Date: Fri Jun 10 22:18:25 2011
New Revision: 222954
URL: http://svn.freebsd.org/changeset/base/222954

Log:
   - If the fsync in ufs_direnter fails SUJ can later panic because we have
     partially added a name.  Allow ufs_direnter() to continue in the
     hopes that it is a transient error.  If it is not, the directory
     is corrupted already from IO errors and writing this new block
     is not likely to make things worse.

Modified:
  head/sys/ufs/ufs/ufs_lookup.c

Modified: head/sys/ufs/ufs/ufs_lookup.c
==============================================================================
--- head/sys/ufs/ufs/ufs_lookup.c	Fri Jun 10 22:15:36 2011	(r222953)
+++ head/sys/ufs/ufs/ufs_lookup.c	Fri Jun 10 22:18:25 2011	(r222954)
@@ -967,7 +967,7 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdir
 				return (0);
 			if (tvp != NULL)
 				VOP_UNLOCK(tvp, 0);
-			error = VOP_FSYNC(dvp, MNT_WAIT, td);
+			(void) VOP_FSYNC(dvp, MNT_WAIT, td);
 			if (tvp != NULL)
 				vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY);
 			return (error);


More information about the svn-src-head mailing list