From 5d72d6ed2212efbb74efb0735b66c6b68984f403 Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Tue, 9 Aug 2005 16:53:34 +0000 Subject: [PATCH] Add vn_get_namelen to simplify correct emulation of statfs with maximum name length field. Discussed-with: hmp --- sys/kern/vfs_subr.c | 15 ++++++++++++++- sys/sys/vnode.h | 3 ++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 1b50e4fee0..a595984f96 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -37,7 +37,7 @@ * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 * $FreeBSD: src/sys/kern/vfs_subr.c,v 1.249.2.30 2003/04/04 20:35:57 tegge Exp $ - * $DragonFly: src/sys/kern/vfs_subr.c,v 1.57 2005/06/06 15:02:28 dillon Exp $ + * $DragonFly: src/sys/kern/vfs_subr.c,v 1.58 2005/08/09 16:53:34 joerg Exp $ */ /* @@ -64,6 +64,7 @@ #include #include #include +#include #include #include @@ -1996,3 +1997,15 @@ assert_vop_unlocked(struct vnode *vp, const char *str) } #endif + +int +vn_get_namelen(struct vnode *vp, int *namelen) +{ + int error, retval[2]; + + error = VOP_PATHCONF(vp, _PC_NAME_MAX, retval); + if (error) + return (error); + *namelen = *retval; + return (0); +} diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index 9b8def267f..f1e513617b 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -32,7 +32,7 @@ * * @(#)vnode.h 8.7 (Berkeley) 2/4/94 * $FreeBSD: src/sys/sys/vnode.h,v 1.111.2.19 2002/12/29 18:19:53 dillon Exp $ - * $DragonFly: src/sys/sys/vnode.h,v 1.36 2005/07/27 15:56:18 joerg Exp $ + * $DragonFly: src/sys/sys/vnode.h,v 1.37 2005/08/09 16:53:34 joerg Exp $ */ #ifndef _SYS_VNODE_H_ @@ -630,6 +630,7 @@ int debug_vn_lock (struct vnode *vp, int flags, struct thread *td, #define vn_lock(vp,flags,p) debug_vn_lock(vp,flags,p,__FILE__,__LINE__) #endif +int vn_get_namelen(struct vnode *, int *); void vn_setspecops (struct file *fp); int vn_fullpath (struct proc *p, struct vnode *vn, char **retbuf, char **freebuf); int vn_open (struct nlookupdata *ndp, struct file *fp, int fmode, int cmode); -- 2.41.0