git: 9bef28f29446 - releng/13.0 - ffs: do not call softdep_prealloc() from UFS_BALLOC()

Konstantin Belousov kib at FreeBSD.org
Thu Feb 25 20:52:44 UTC 2021


The branch releng/13.0 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=9bef28f2944696906c7fa68223faaf12b17695dd

commit 9bef28f2944696906c7fa68223faaf12b17695dd
Author:     Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-02-18 14:51:50 +0000
Commit:     Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-02-25 20:50:42 +0000

    ffs: do not call softdep_prealloc() from UFS_BALLOC()
    
    Approved by:    re (delphij, gjb)
    
    (cherry picked from commit 49831462794690155ce8dbe02679e6d9390f3d7d)
---
 sys/ufs/ffs/ffs_balloc.c | 5 -----
 sys/ufs/ffs/ffs_vnops.c  | 5 +++++
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/sys/ufs/ffs/ffs_balloc.c b/sys/ufs/ffs/ffs_balloc.c
index daa897dfe032..1b53a90a48c4 100644
--- a/sys/ufs/ffs/ffs_balloc.c
+++ b/sys/ufs/ffs/ffs_balloc.c
@@ -128,8 +128,6 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size,
 		return (EFBIG);
 	gbflags = (flags & BA_UNMAPPED) != 0 ? GB_UNMAPPED : 0;
 
-	if (DOINGSOFTDEP(vp))
-		softdep_prealloc(vp, MNT_WAIT);
 	/*
 	 * If the next write will extend the file into a new block,
 	 * and the file is currently composed of a fragment
@@ -621,9 +619,6 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size,
 		return (EFBIG);
 	gbflags = (flags & BA_UNMAPPED) != 0 ? GB_UNMAPPED : 0;
 
-	if (DOINGSOFTDEP(vp))
-		softdep_prealloc(vp, MNT_WAIT);
-
 	/*
 	 * Check for allocating external data.
 	 */
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index 1dfdf5182a42..c00469c4c7e3 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -834,6 +834,11 @@ ffs_write(ap)
 	int blkoffset, error, flags, ioflag, size, xfersize;
 
 	vp = ap->a_vp;
+	if (DOINGSUJ(vp))
+		softdep_prealloc(vp, MNT_WAIT);
+	if (vp->v_data == NULL)
+		return (EBADF);
+
 	uio = ap->a_uio;
 	ioflag = ap->a_ioflag;
 	if (ap->a_ioflag & IO_EXT)


More information about the dev-commits-src-all mailing list