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 <[email protected]>
@@ -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;
}