aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2023-02-11 18:05:14 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2023-02-19 05:16:25 +0000
commit03562adbefb80ba94bebe602fc051bbc4292cb37 (patch)
tree56ed140f070f81dfbf773c1aeaa5b61208b184c0
parent64152225022bea784ca1948a67e7c040a8bb040a (diff)
downloadsrc-03562adbefb80ba94bebe602fc051bbc4292cb37.tar.gz
src-03562adbefb80ba94bebe602fc051bbc4292cb37.zip
msdosfs deextend(): memoize DETOV(dep)
(cherry picked from commit 67dc1e7b0457ec014a1291c5874decdefe7bffdd)
-rw-r--r--sys/fs/msdosfs/msdosfs_denode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/fs/msdosfs/msdosfs_denode.c b/sys/fs/msdosfs/msdosfs_denode.c
index 8511d873ea50..003c710801ee 100644
--- a/sys/fs/msdosfs/msdosfs_denode.c
+++ b/sys/fs/msdosfs/msdosfs_denode.c
@@ -494,13 +494,14 @@ int
deextend(struct denode *dep, u_long length, struct ucred *cred)
{
struct msdosfsmount *pmp = dep->de_pmp;
+ struct vnode *vp = DETOV(dep);
u_long count;
int error;
/*
* The root of a DOS filesystem cannot be extended.
*/
- if ((DETOV(dep)->v_vflag & VV_ROOT) && !FAT32(pmp))
+ if ((vp->v_vflag & VV_ROOT) != 0 && !FAT32(pmp))
return (EINVAL);
/*
@@ -526,10 +527,10 @@ deextend(struct denode *dep, u_long length, struct ucred *cred)
return (error);
}
}
- vnode_pager_setsize(DETOV(dep), length);
+ vnode_pager_setsize(vp, length);
dep->de_FileSize = length;
dep->de_flag |= DE_UPDATE | DE_MODIFIED;
- return (deupdat(dep, !DOINGASYNC(DETOV(dep))));
+ return (deupdat(dep, !DOINGASYNC(vp)));
}
/*