Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Feb 2023 05:47:16 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 64152225022b - stable/13 - msdosfs: correct handling of vnode pager size on file extension error
Message-ID:  <202302190547.31J5lGNW097143@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=64152225022bea784ca1948a67e7c040a8bb040a

commit 64152225022bea784ca1948a67e7c040a8bb040a
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-02-10 04:58:43 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-02-19 05:16:25 +0000

    msdosfs: correct handling of vnode pager size on file extension error
    
    (cherry picked from commit e59180ea09a1d1d1463f2a269e94efa0f0b677c5)
---
 sys/fs/msdosfs/msdosfs_denode.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/sys/fs/msdosfs/msdosfs_denode.c b/sys/fs/msdosfs/msdosfs_denode.c
index 030c96d6d354..8511d873ea50 100644
--- a/sys/fs/msdosfs/msdosfs_denode.c
+++ b/sys/fs/msdosfs/msdosfs_denode.c
@@ -384,10 +384,8 @@ detrunc(struct denode *dep, u_long length, int flags, struct ucred *cred)
 		return (EINVAL);
 	}
 
-	if (dep->de_FileSize < length) {
-		vnode_pager_setsize(DETOV(dep), length);
+	if (dep->de_FileSize < length)
 		return (deextend(dep, length, cred));
-	}
 
 	/*
 	 * If the desired length is 0 then remember the starting cluster of
@@ -528,6 +526,7 @@ deextend(struct denode *dep, u_long length, struct ucred *cred)
 			return (error);
 		}
 	}
+	vnode_pager_setsize(DETOV(dep), length);
 	dep->de_FileSize = length;
 	dep->de_flag |= DE_UPDATE | DE_MODIFIED;
 	return (deupdat(dep, !DOINGASYNC(DETOV(dep))));



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