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"