Module Name: src Committed By: christos Date: Sat Jun 27 17:29:19 UTC 2020
Modified Files: src/sys/fs/adosfs: advnops.c src/sys/fs/cd9660: cd9660_vnops.c src/sys/fs/efs: efs_vnops.c src/sys/fs/filecorefs: filecore_vnops.c src/sys/fs/msdosfs: msdosfs_vnops.c src/sys/fs/nilfs: nilfs_vnops.c src/sys/fs/ntfs: ntfs_vnops.c src/sys/fs/ptyfs: ptyfs_vnops.c src/sys/fs/sysvbfs: sysvbfs_vnops.c src/sys/fs/tmpfs: tmpfs_vnops.c src/sys/fs/udf: udf_vnops.c src/sys/fs/v7fs: v7fs_vnops.c src/sys/miscfs/fdesc: fdesc_vnops.c src/sys/miscfs/fifofs: fifo_vnops.c src/sys/miscfs/genfs: genfs.h genfs_vnops.c src/sys/miscfs/kernfs: kernfs_vnops.c src/sys/miscfs/procfs: procfs_vnops.c src/sys/miscfs/specfs: spec_vnops.c src/sys/nfs: nfs_vnops.c Log Message: Introduce genfs_pathconf() and use it for the default case in all filesystems. To generate a diff of this commit: cvs rdiff -u -r1.54 -r1.55 src/sys/fs/adosfs/advnops.c cvs rdiff -u -r1.57 -r1.58 src/sys/fs/cd9660/cd9660_vnops.c cvs rdiff -u -r1.40 -r1.41 src/sys/fs/efs/efs_vnops.c cvs rdiff -u -r1.46 -r1.47 src/sys/fs/filecorefs/filecore_vnops.c cvs rdiff -u -r1.103 -r1.104 src/sys/fs/msdosfs/msdosfs_vnops.c cvs rdiff -u -r1.41 -r1.42 src/sys/fs/nilfs/nilfs_vnops.c cvs rdiff -u -r1.64 -r1.65 src/sys/fs/ntfs/ntfs_vnops.c cvs rdiff -u -r1.59 -r1.60 src/sys/fs/ptyfs/ptyfs_vnops.c cvs rdiff -u -r1.66 -r1.67 src/sys/fs/sysvbfs/sysvbfs_vnops.c cvs rdiff -u -r1.142 -r1.143 src/sys/fs/tmpfs/tmpfs_vnops.c cvs rdiff -u -r1.113 -r1.114 src/sys/fs/udf/udf_vnops.c cvs rdiff -u -r1.30 -r1.31 src/sys/fs/v7fs/v7fs_vnops.c cvs rdiff -u -r1.133 -r1.134 src/sys/miscfs/fdesc/fdesc_vnops.c cvs rdiff -u -r1.80 -r1.81 src/sys/miscfs/fifofs/fifo_vnops.c cvs rdiff -u -r1.34 -r1.35 src/sys/miscfs/genfs/genfs.h cvs rdiff -u -r1.207 -r1.208 src/sys/miscfs/genfs/genfs_vnops.c cvs rdiff -u -r1.165 -r1.166 src/sys/miscfs/kernfs/kernfs_vnops.c cvs rdiff -u -r1.214 -r1.215 src/sys/miscfs/procfs/procfs_vnops.c cvs rdiff -u -r1.179 -r1.180 src/sys/miscfs/specfs/spec_vnops.c cvs rdiff -u -r1.315 -r1.316 src/sys/nfs/nfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/fs/adosfs/advnops.c diff -u src/sys/fs/adosfs/advnops.c:1.54 src/sys/fs/adosfs/advnops.c:1.55 --- src/sys/fs/adosfs/advnops.c:1.54 Sat May 16 14:31:48 2020 +++ src/sys/fs/adosfs/advnops.c Sat Jun 27 13:29:17 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: advnops.c,v 1.54 2020/05/16 18:31:48 christos Exp $ */ +/* $NetBSD: advnops.c,v 1.55 2020/06/27 17:29:17 christos Exp $ */ /* * Copyright (c) 1994 Christian E. Hopps @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.54 2020/05/16 18:31:48 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.55 2020/06/27 17:29:17 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -931,7 +931,7 @@ adosfs_pathconf(void *v) *ap->a_retval = 32; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/fs/cd9660/cd9660_vnops.c diff -u src/sys/fs/cd9660/cd9660_vnops.c:1.57 src/sys/fs/cd9660/cd9660_vnops.c:1.58 --- src/sys/fs/cd9660/cd9660_vnops.c:1.57 Sat May 16 14:31:48 2020 +++ src/sys/fs/cd9660/cd9660_vnops.c Sat Jun 27 13:29:17 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cd9660_vnops.c,v 1.57 2020/05/16 18:31:48 christos Exp $ */ +/* $NetBSD: cd9660_vnops.c,v 1.58 2020/06/27 17:29:17 christos Exp $ */ /*- * Copyright (c) 1994 @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.57 2020/05/16 18:31:48 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.58 2020/06/27 17:29:17 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -779,7 +779,7 @@ cd9660_pathconf(void *v) *ap->a_retval = 32; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/fs/efs/efs_vnops.c diff -u src/sys/fs/efs/efs_vnops.c:1.40 src/sys/fs/efs/efs_vnops.c:1.41 --- src/sys/fs/efs/efs_vnops.c:1.40 Sat May 16 14:31:48 2020 +++ src/sys/fs/efs/efs_vnops.c Sat Jun 27 13:29:17 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: efs_vnops.c,v 1.40 2020/05/16 18:31:48 christos Exp $ */ +/* $NetBSD: efs_vnops.c,v 1.41 2020/06/27 17:29:17 christos Exp $ */ /* * Copyright (c) 2006 Stephen M. Rumble <rum...@ephemeral.org> @@ -17,7 +17,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.40 2020/05/16 18:31:48 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.41 2020/06/27 17:29:17 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -757,7 +757,7 @@ efs_pathconf(void *v) *ap->a_retval = 32; break; default: - return (EINVAL); + return genfs_pathconf(ap); } return (0); Index: src/sys/fs/filecorefs/filecore_vnops.c diff -u src/sys/fs/filecorefs/filecore_vnops.c:1.46 src/sys/fs/filecorefs/filecore_vnops.c:1.47 --- src/sys/fs/filecorefs/filecore_vnops.c:1.46 Sat May 16 14:31:49 2020 +++ src/sys/fs/filecorefs/filecore_vnops.c Sat Jun 27 13:29:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: filecore_vnops.c,v 1.46 2020/05/16 18:31:49 christos Exp $ */ +/* $NetBSD: filecore_vnops.c,v 1.47 2020/06/27 17:29:18 christos Exp $ */ /*- * Copyright (c) 1994 The Regents of the University of California. @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: filecore_vnops.c,v 1.46 2020/05/16 18:31:49 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: filecore_vnops.c,v 1.47 2020/06/27 17:29:18 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -525,7 +525,7 @@ filecore_pathconf(void *v) *ap->a_retval = 32; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/fs/msdosfs/msdosfs_vnops.c diff -u src/sys/fs/msdosfs/msdosfs_vnops.c:1.103 src/sys/fs/msdosfs/msdosfs_vnops.c:1.104 --- src/sys/fs/msdosfs/msdosfs_vnops.c:1.103 Sat May 16 14:31:49 2020 +++ src/sys/fs/msdosfs/msdosfs_vnops.c Sat Jun 27 13:29:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: msdosfs_vnops.c,v 1.103 2020/05/16 18:31:49 christos Exp $ */ +/* $NetBSD: msdosfs_vnops.c,v 1.104 2020/06/27 17:29:18 christos Exp $ */ /*- * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.103 2020/05/16 18:31:49 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.104 2020/06/27 17:29:18 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1765,7 +1765,7 @@ msdosfs_pathconf(void *v) *ap->a_retval = 32; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/fs/nilfs/nilfs_vnops.c diff -u src/sys/fs/nilfs/nilfs_vnops.c:1.41 src/sys/fs/nilfs/nilfs_vnops.c:1.42 --- src/sys/fs/nilfs/nilfs_vnops.c:1.41 Sat May 16 14:31:49 2020 +++ src/sys/fs/nilfs/nilfs_vnops.c Sat Jun 27 13:29:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nilfs_vnops.c,v 1.41 2020/05/16 18:31:49 christos Exp $ */ +/* $NetBSD: nilfs_vnops.c,v 1.42 2020/06/27 17:29:18 christos Exp $ */ /* * Copyright (c) 2008, 2009 Reinoud Zandijk @@ -28,7 +28,7 @@ #include <sys/cdefs.h> #ifndef lint -__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.41 2020/05/16 18:31:49 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.42 2020/06/27 17:29:18 christos Exp $"); #endif /* not lint */ @@ -926,9 +926,9 @@ nilfs_pathconf(void *v) #endif *ap->a_retval = bits; return 0; + default: + return genfs_pathconf(ap); } - - return EINVAL; } Index: src/sys/fs/ntfs/ntfs_vnops.c diff -u src/sys/fs/ntfs/ntfs_vnops.c:1.64 src/sys/fs/ntfs/ntfs_vnops.c:1.65 --- src/sys/fs/ntfs/ntfs_vnops.c:1.64 Sat May 16 14:31:49 2020 +++ src/sys/fs/ntfs/ntfs_vnops.c Sat Jun 27 13:29:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ntfs_vnops.c,v 1.64 2020/05/16 18:31:49 christos Exp $ */ +/* $NetBSD: ntfs_vnops.c,v 1.65 2020/06/27 17:29:18 christos Exp $ */ /* * Copyright (c) 1992, 1993 @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ntfs_vnops.c,v 1.64 2020/05/16 18:31:49 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ntfs_vnops.c,v 1.65 2020/06/27 17:29:18 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -796,7 +796,7 @@ ntfs_pathconf(void *v) *ap->a_retval = 64; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/fs/ptyfs/ptyfs_vnops.c diff -u src/sys/fs/ptyfs/ptyfs_vnops.c:1.59 src/sys/fs/ptyfs/ptyfs_vnops.c:1.60 --- src/sys/fs/ptyfs/ptyfs_vnops.c:1.59 Sat May 16 14:31:49 2020 +++ src/sys/fs/ptyfs/ptyfs_vnops.c Sat Jun 27 13:29:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ptyfs_vnops.c,v 1.59 2020/05/16 18:31:49 christos Exp $ */ +/* $NetBSD: ptyfs_vnops.c,v 1.60 2020/06/27 17:29:18 christos Exp $ */ /* * Copyright (c) 1993, 1995 @@ -76,7 +76,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.59 2020/05/16 18:31:49 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.60 2020/06/27 17:29:18 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -282,7 +282,7 @@ ptyfs_pathconf(void *v) *ap->a_retval = 1; return 0; default: - return EINVAL; + return genfs_pathconf(ap); } } Index: src/sys/fs/sysvbfs/sysvbfs_vnops.c diff -u src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.66 src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.67 --- src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.66 Sat May 16 14:31:49 2020 +++ src/sys/fs/sysvbfs/sysvbfs_vnops.c Sat Jun 27 13:29:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: sysvbfs_vnops.c,v 1.66 2020/05/16 18:31:49 christos Exp $ */ +/* $NetBSD: sysvbfs_vnops.c,v 1.67 2020/06/27 17:29:18 christos Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.66 2020/05/16 18:31:49 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.67 2020/06/27 17:29:18 christos Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -828,38 +828,34 @@ sysvbfs_pathconf(void *v) int a_name; register_t *a_retval; } */ *ap = v; - int err = 0; DPRINTF("%s:\n", __func__); switch (ap->a_name) { case _PC_LINK_MAX: *ap->a_retval = 1; - break; + return 0; case _PC_NAME_MAX: *ap->a_retval = BFS_FILENAME_MAXLEN; - break; + return 0; case _PC_PATH_MAX: *ap->a_retval = BFS_FILENAME_MAXLEN; - break; + return 0; case _PC_CHOWN_RESTRICTED: *ap->a_retval = 1; - break; + return 0; case _PC_NO_TRUNC: *ap->a_retval = 0; - break; + return 0; case _PC_SYNC_IO: *ap->a_retval = 1; - break; + return 0; case _PC_FILESIZEBITS: *ap->a_retval = 32; - break; + return 0; default: - err = EINVAL; - break; + return genfs_pathconf(ap); } - - return err; } int Index: src/sys/fs/tmpfs/tmpfs_vnops.c diff -u src/sys/fs/tmpfs/tmpfs_vnops.c:1.142 src/sys/fs/tmpfs/tmpfs_vnops.c:1.143 --- src/sys/fs/tmpfs/tmpfs_vnops.c:1.142 Sun May 24 16:08:26 2020 +++ src/sys/fs/tmpfs/tmpfs_vnops.c Sat Jun 27 13:29:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tmpfs_vnops.c,v 1.142 2020/05/24 20:08:26 ad Exp $ */ +/* $NetBSD: tmpfs_vnops.c,v 1.143 2020/06/27 17:29:18 christos Exp $ */ /* * Copyright (c) 2005, 2006, 2007, 2020 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.142 2020/05/24 20:08:26 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.143 2020/06/27 17:29:18 christos Exp $"); #include <sys/param.h> #include <sys/dirent.h> @@ -1125,39 +1125,36 @@ tmpfs_pathconf(void *v) int a_name; register_t *a_retval; } */ *ap = v; - const int name = ap->a_name; register_t *retval = ap->a_retval; - int error = 0; - switch (name) { + switch (ap->a_name) { case _PC_LINK_MAX: *retval = LINK_MAX; - break; + return 0; case _PC_NAME_MAX: *retval = TMPFS_MAXNAMLEN; - break; + return 0; case _PC_PATH_MAX: *retval = PATH_MAX; - break; + return 0; case _PC_PIPE_BUF: *retval = PIPE_BUF; - break; + return 0; case _PC_CHOWN_RESTRICTED: *retval = 1; - break; + return 0; case _PC_NO_TRUNC: *retval = 1; - break; + return 0; case _PC_SYNC_IO: *retval = 1; - break; + return 0; case _PC_FILESIZEBITS: *retval = sizeof(off_t) * CHAR_BIT; - break; + return 0; default: - error = EINVAL; + return genfs_pathconf(ap); } - return error; } int Index: src/sys/fs/udf/udf_vnops.c diff -u src/sys/fs/udf/udf_vnops.c:1.113 src/sys/fs/udf/udf_vnops.c:1.114 --- src/sys/fs/udf/udf_vnops.c:1.113 Sat May 16 14:31:50 2020 +++ src/sys/fs/udf/udf_vnops.c Sat Jun 27 13:29:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: udf_vnops.c,v 1.113 2020/05/16 18:31:50 christos Exp $ */ +/* $NetBSD: udf_vnops.c,v 1.114 2020/06/27 17:29:18 christos Exp $ */ /* * Copyright (c) 2006, 2008 Reinoud Zandijk @@ -32,7 +32,7 @@ #include <sys/cdefs.h> #ifndef lint -__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.113 2020/05/16 18:31:50 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.114 2020/06/27 17:29:18 christos Exp $"); #endif /* not lint */ @@ -1326,9 +1326,9 @@ udf_pathconf(void *v) #endif *ap->a_retval = bits; return 0; + default: + return genfs_pathconf(ap); } - - return EINVAL; } Index: src/sys/fs/v7fs/v7fs_vnops.c diff -u src/sys/fs/v7fs/v7fs_vnops.c:1.30 src/sys/fs/v7fs/v7fs_vnops.c:1.31 --- src/sys/fs/v7fs/v7fs_vnops.c:1.30 Sat May 16 14:31:50 2020 +++ src/sys/fs/v7fs/v7fs_vnops.c Sat Jun 27 13:29:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: v7fs_vnops.c,v 1.30 2020/05/16 18:31:50 christos Exp $ */ +/* $NetBSD: v7fs_vnops.c,v 1.31 2020/06/27 17:29:18 christos Exp $ */ /*- * Copyright (c) 2004, 2011 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: v7fs_vnops.c,v 1.30 2020/05/16 18:31:50 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: v7fs_vnops.c,v 1.31 2020/06/27 17:29:18 christos Exp $"); #if defined _KERNEL_OPT #include "opt_v7fs.h" #endif @@ -1172,48 +1172,43 @@ int v7fs_pathconf(void *v) { struct vop_pathconf_args /* { - struct vnode *a_vp; - int a_name; - register_t *a_retval; - } */ *a = v; - int err = 0; - - DPRINTF("%p\n", a->a_vp); + struct vnode *a_vp; + int a_name; + register_t *a_retval; + } */ *ap = v; + DPRINTF("%p\n", ap->a_vp); - switch (a->a_name) { + switch (ap->a_name) { case _PC_LINK_MAX: - *a->a_retval = V7FS_LINK_MAX; - break; + *ap->a_retval = V7FS_LINK_MAX; + return 0; case _PC_NAME_MAX: - *a->a_retval = V7FS_NAME_MAX; - break; + *ap->a_retval = V7FS_NAME_MAX; + return 0; case _PC_PATH_MAX: - *a->a_retval = V7FS_PATH_MAX; - break; + *ap->a_retval = V7FS_PATH_MAX; + return 0; case _PC_CHOWN_RESTRICTED: - *a->a_retval = 1; - break; + *ap->a_retval = 1; + return 0; case _PC_NO_TRUNC: - *a->a_retval = 0; - break; + *ap->a_retval = 0; + return 0; case _PC_SYNC_IO: - *a->a_retval = 1; - break; + *ap->a_retval = 1; + return 0; case _PC_FILESIZEBITS: - *a->a_retval = 30; /* ~1G */ - break; + *ap->a_retval = 30; /* ~1G */ + return 0; case _PC_SYMLINK_MAX: - *a->a_retval = V7FSBSD_MAXSYMLINKLEN; - break; + *ap->a_retval = V7FSBSD_MAXSYMLINKLEN; + return 0; case _PC_2_SYMLINKS: - *a->a_retval = 1; - break; + *ap->a_retval = 1; + return 0; default: - err = EINVAL; - break; + return genfs_pathconf(ap); } - - return err; } int Index: src/sys/miscfs/fdesc/fdesc_vnops.c diff -u src/sys/miscfs/fdesc/fdesc_vnops.c:1.133 src/sys/miscfs/fdesc/fdesc_vnops.c:1.134 --- src/sys/miscfs/fdesc/fdesc_vnops.c:1.133 Sat May 16 14:31:50 2020 +++ src/sys/miscfs/fdesc/fdesc_vnops.c Sat Jun 27 13:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: fdesc_vnops.c,v 1.133 2020/05/16 18:31:50 christos Exp $ */ +/* $NetBSD: fdesc_vnops.c,v 1.134 2020/06/27 17:29:19 christos Exp $ */ /* * Copyright (c) 1992, 1993 @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.133 2020/05/16 18:31:50 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.134 2020/06/27 17:29:19 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -905,7 +905,7 @@ fdesc_pathconf(void *v) *ap->a_retval = 1; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/miscfs/fifofs/fifo_vnops.c diff -u src/sys/miscfs/fifofs/fifo_vnops.c:1.80 src/sys/miscfs/fifofs/fifo_vnops.c:1.81 --- src/sys/miscfs/fifofs/fifo_vnops.c:1.80 Sat May 16 14:31:51 2020 +++ src/sys/miscfs/fifofs/fifo_vnops.c Sat Jun 27 13:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: fifo_vnops.c,v 1.80 2020/05/16 18:31:51 christos Exp $ */ +/* $NetBSD: fifo_vnops.c,v 1.81 2020/06/27 17:29:19 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: fifo_vnops.c,v 1.80 2020/05/16 18:31:51 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fifo_vnops.c,v 1.81 2020/06/27 17:29:19 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -504,7 +504,7 @@ fifo_pathconf(void *v) *ap->a_retval = 1; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/miscfs/genfs/genfs.h diff -u src/sys/miscfs/genfs/genfs.h:1.34 src/sys/miscfs/genfs/genfs.h:1.35 --- src/sys/miscfs/genfs/genfs.h:1.34 Sat May 16 14:31:51 2020 +++ src/sys/miscfs/genfs/genfs.h Sat Jun 27 13:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: genfs.h,v 1.34 2020/05/16 18:31:51 christos Exp $ */ +/* $NetBSD: genfs.h,v 1.35 2020/06/27 17:29:19 christos Exp $ */ #ifndef _MISCFS_GENFS_GENFS_H_ #define _MISCFS_GENFS_GENFS_H_ @@ -41,6 +41,7 @@ int genfs_getpages(void *); int genfs_putpages(void *); int genfs_null_putpages(void *); int genfs_compat_getpages(void *); +int genfs_pathconf(void *v); int genfs_do_putpages(struct vnode *, off_t, off_t, int, struct vm_page **); Index: src/sys/miscfs/genfs/genfs_vnops.c diff -u src/sys/miscfs/genfs/genfs_vnops.c:1.207 src/sys/miscfs/genfs/genfs_vnops.c:1.208 --- src/sys/miscfs/genfs/genfs_vnops.c:1.207 Wed May 20 13:06:15 2020 +++ src/sys/miscfs/genfs/genfs_vnops.c Sat Jun 27 13:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: genfs_vnops.c,v 1.207 2020/05/20 17:06:15 christos Exp $ */ +/* $NetBSD: genfs_vnops.c,v 1.208 2020/06/27 17:29:19 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -57,7 +57,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: genfs_vnops.c,v 1.207 2020/05/20 17:06:15 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: genfs_vnops.c,v 1.208 2020/06/27 17:29:19 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1443,3 +1443,29 @@ genfs_accessx(void *v) return VOP_ACCESS(ap->a_vp, accmode, ap->a_cred); } + +/* + * genfs_pathconf: + * + * Standard implementation of POSIX pathconf, to get information about limits + * for a filesystem. + * Override per filesystem for the case where the filesystem has smaller + * limits. + */ +int +genfs_pathconf(void *v) +{ + struct vop_pathconf_args *ap = v; + + switch (ap->a_name) { + case _PC_PATH_MAX: + *ap->a_retval = PATH_MAX; + return 0; + case _PC_ACL_EXTENDED: + case _PC_ACL_NFS4: + *ap->a_retval = 0; + return 0; + default: + return EINVAL; + } +} Index: src/sys/miscfs/kernfs/kernfs_vnops.c diff -u src/sys/miscfs/kernfs/kernfs_vnops.c:1.165 src/sys/miscfs/kernfs/kernfs_vnops.c:1.166 --- src/sys/miscfs/kernfs/kernfs_vnops.c:1.165 Sat May 16 14:31:51 2020 +++ src/sys/miscfs/kernfs/kernfs_vnops.c Sat Jun 27 13:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: kernfs_vnops.c,v 1.165 2020/05/16 18:31:51 christos Exp $ */ +/* $NetBSD: kernfs_vnops.c,v 1.166 2020/06/27 17:29:19 christos Exp $ */ /* * Copyright (c) 1992, 1993 @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.165 2020/05/16 18:31:51 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.166 2020/06/27 17:29:19 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1171,7 +1171,7 @@ kernfs_pathconf(void *v) *ap->a_retval = 1; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/miscfs/procfs/procfs_vnops.c diff -u src/sys/miscfs/procfs/procfs_vnops.c:1.214 src/sys/miscfs/procfs/procfs_vnops.c:1.215 --- src/sys/miscfs/procfs/procfs_vnops.c:1.214 Sat May 23 19:42:43 2020 +++ src/sys/miscfs/procfs/procfs_vnops.c Sat Jun 27 13:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: procfs_vnops.c,v 1.214 2020/05/23 23:42:43 ad Exp $ */ +/* $NetBSD: procfs_vnops.c,v 1.215 2020/06/27 17:29:19 christos Exp $ */ /*- * Copyright (c) 2006, 2007, 2008, 2020 The NetBSD Foundation, Inc. @@ -105,7 +105,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.214 2020/05/23 23:42:43 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.215 2020/06/27 17:29:19 christos Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -500,7 +500,7 @@ procfs_pathconf(void *v) *ap->a_retval = 1; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/miscfs/specfs/spec_vnops.c diff -u src/sys/miscfs/specfs/spec_vnops.c:1.179 src/sys/miscfs/specfs/spec_vnops.c:1.180 --- src/sys/miscfs/specfs/spec_vnops.c:1.179 Sat May 23 19:42:43 2020 +++ src/sys/miscfs/specfs/spec_vnops.c Sat Jun 27 13:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: spec_vnops.c,v 1.179 2020/05/23 23:42:43 ad Exp $ */ +/* $NetBSD: spec_vnops.c,v 1.180 2020/06/27 17:29:19 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.179 2020/05/23 23:42:43 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.180 2020/06/27 17:29:19 christos Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -1316,7 +1316,7 @@ spec_pathconf(void *v) *ap->a_retval = 1; return (0); default: - return (EINVAL); + return genfs_pathconf(ap); } /* NOTREACHED */ } Index: src/sys/nfs/nfs_vnops.c diff -u src/sys/nfs/nfs_vnops.c:1.315 src/sys/nfs/nfs_vnops.c:1.316 --- src/sys/nfs/nfs_vnops.c:1.315 Sat May 16 14:31:52 2020 +++ src/sys/nfs/nfs_vnops.c Sat Jun 27 13:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nfs_vnops.c,v 1.315 2020/05/16 18:31:52 christos Exp $ */ +/* $NetBSD: nfs_vnops.c,v 1.316 2020/06/27 17:29:19 christos Exp $ */ /* * Copyright (c) 1989, 1993 @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.315 2020/05/16 18:31:52 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.316 2020/06/27 17:29:19 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_nfs.h" @@ -3270,7 +3270,7 @@ nfs_pathconf(void *v) } break; default: - error = EINVAL; + error = genfs_pathconf(ap); break; }