Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Apr 2020 20:23:48 +0000 (UTC)
From:      Kirk McKusick <mckusick@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r359668 - head/sys/ufs/ffs
Message-ID:  <202004062023.036KNmqF005293@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mckusick
Date: Mon Apr  6 20:23:47 2020
New Revision: 359668
URL: https://svnweb.freebsd.org/changeset/base/359668

Log:
  Revert -r359612 as it can cause other panics.
  An updated version will be made when the issue has been resolved.
  
  Reported by: Peter Holm

Modified:
  head/sys/ufs/ffs/ffs_inode.c

Modified: head/sys/ufs/ffs/ffs_inode.c
==============================================================================
--- head/sys/ufs/ffs/ffs_inode.c	Mon Apr  6 19:45:26 2020	(r359667)
+++ head/sys/ufs/ffs/ffs_inode.c	Mon Apr  6 20:23:47 2020	(r359668)
@@ -426,6 +426,11 @@ ffs_truncate(vp, length, flags, cred)
 		ip->i_size = length;
 		DIP_SET(ip, i_size, length);
 	} else {
+		lbn = lblkno(fs, length);
+		flags |= BA_CLRBUF;
+		error = UFS_BALLOC(vp, length - 1, 1, cred, flags, &bp);
+		if (error)
+			return (error);
 		/*
 		 * When we are doing soft updates and the UFS_BALLOC
 		 * above fills in a direct block hole with a full sized
@@ -434,14 +439,9 @@ ffs_truncate(vp, length, flags, cred)
 		 * so that we do not get a soft updates inconsistency
 		 * when we create the fragment below.
 		 */
-		lbn = lblkno(fs, length);
 		if (DOINGSOFTDEP(vp) && lbn < UFS_NDADDR &&
 		    fragroundup(fs, blkoff(fs, length)) < fs->fs_bsize &&
 		    (error = ffs_syncvnode(vp, MNT_WAIT, 0)) != 0)
-			return (error);
-		flags |= BA_CLRBUF;
-		error = UFS_BALLOC(vp, length - 1, 1, cred, flags, &bp);
-		if (error)
 			return (error);
 		ip->i_size = length;
 		DIP_SET(ip, i_size, length);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202004062023.036KNmqF005293>