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);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to