Module Name:    src
Committed By:   christos
Date:           Sun Mar 27 17:10:56 UTC 2022

Modified Files:
        src/sys/fs/adosfs: advnops.c
        src/sys/fs/cd9660: cd9660_node.h cd9660_vnops.c
        src/sys/fs/filecorefs: filecore_node.h filecore_vnops.c
        src/sys/miscfs/fdesc: fdesc_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

Log Message:
dedup the eofs link/symlink methods


To generate a diff of this commit:
cvs rdiff -u -r1.57 -r1.58 src/sys/fs/adosfs/advnops.c
cvs rdiff -u -r1.17 -r1.18 src/sys/fs/cd9660/cd9660_node.h
cvs rdiff -u -r1.61 -r1.62 src/sys/fs/cd9660/cd9660_vnops.c
cvs rdiff -u -r1.7 -r1.8 src/sys/fs/filecorefs/filecore_node.h
cvs rdiff -u -r1.49 -r1.50 src/sys/fs/filecorefs/filecore_vnops.c
cvs rdiff -u -r1.139 -r1.140 src/sys/miscfs/fdesc/fdesc_vnops.c
cvs rdiff -u -r1.38 -r1.39 src/sys/miscfs/genfs/genfs.h
cvs rdiff -u -r1.218 -r1.219 src/sys/miscfs/genfs/genfs_vnops.c
cvs rdiff -u -r1.173 -r1.174 src/sys/miscfs/kernfs/kernfs_vnops.c
cvs rdiff -u -r1.227 -r1.228 src/sys/miscfs/procfs/procfs_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.57 src/sys/fs/adosfs/advnops.c:1.58
--- src/sys/fs/adosfs/advnops.c:1.57	Sun Jul 18 19:57:13 2021
+++ src/sys/fs/adosfs/advnops.c	Sun Mar 27 13:10:55 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: advnops.c,v 1.57 2021/07/18 23:57:13 dholland Exp $	*/
+/*	$NetBSD: advnops.c,v 1.58 2022/03/27 17:10:55 christos Exp $	*/
 
 /*
  * Copyright (c) 1994 Christian E. Hopps
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.57 2021/07/18 23:57:13 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.58 2022/03/27 17:10:55 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -61,8 +61,6 @@ int	adosfs_getattr(void *);
 int	adosfs_read(void *);
 int	adosfs_write(void *);
 int	adosfs_strategy(void *);
-int	adosfs_link(void *);
-int	adosfs_symlink(void *);
 int	adosfs_bmap(void *);
 int	adosfs_print(void *);
 int	adosfs_readdir(void *);
@@ -97,11 +95,11 @@ const struct vnodeopv_entry_desc adosfs_
 	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
 	{ &vop_seek_desc, genfs_seek },			/* seek */
 	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
-	{ &vop_link_desc, adosfs_link },		/* link */
+	{ &vop_link_desc, genfs_erofs_link },		/* link */
 	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
 	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
 	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
-	{ &vop_symlink_desc, adosfs_symlink },		/* symlink */
+	{ &vop_symlink_desc, genfs_erofs_symlink },	/* symlink */
 	{ &vop_readdir_desc, adosfs_readdir },		/* readdir */
 	{ &vop_readlink_desc, adosfs_readlink },	/* readlink */
 	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
@@ -387,34 +385,6 @@ reterr:
 	return(error);
 }
 
-int
-adosfs_link(void *v)
-{
-	struct vop_link_v2_args /* {
-		struct vnode *a_dvp;
-		struct vnode *a_vp;
-		struct componentname *a_cnp;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
-int
-adosfs_symlink(void *v)
-{
-	struct vop_symlink_v3_args /* {
-		struct vnode *a_dvp;
-		struct vnode **a_vpp;
-		struct componentname *a_cnp;
-		struct vattr *a_vap;
-		char *a_target;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
 /*
  * Wait until the vnode has finished changing state.
  */

Index: src/sys/fs/cd9660/cd9660_node.h
diff -u src/sys/fs/cd9660/cd9660_node.h:1.17 src/sys/fs/cd9660/cd9660_node.h:1.18
--- src/sys/fs/cd9660/cd9660_node.h:1.17	Sun Jul 18 19:57:13 2021
+++ src/sys/fs/cd9660/cd9660_node.h	Sun Mar 27 13:10:55 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: cd9660_node.h,v 1.17 2021/07/18 23:57:13 dholland Exp $	*/
+/*	$NetBSD: cd9660_node.h,v 1.18 2022/03/27 17:10:55 christos Exp $	*/
 
 /*-
  * Copyright (c) 1994
@@ -104,8 +104,6 @@ int	cd9660_readdir(void *);
 int	cd9660_readlink(void *);
 int	cd9660_inactive(void *);
 int	cd9660_reclaim(void *);
-int	cd9660_link(void *);
-int	cd9660_symlink(void *);
 int	cd9660_bmap(void *);
 int	cd9660_lock(void *);
 int	cd9660_unlock(void *);

Index: src/sys/fs/cd9660/cd9660_vnops.c
diff -u src/sys/fs/cd9660/cd9660_vnops.c:1.61 src/sys/fs/cd9660/cd9660_vnops.c:1.62
--- src/sys/fs/cd9660/cd9660_vnops.c:1.61	Sun Jul 18 21:30:24 2021
+++ src/sys/fs/cd9660/cd9660_vnops.c	Sun Mar 27 13:10:55 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: cd9660_vnops.c,v 1.61 2021/07/19 01:30:24 dholland Exp $	*/
+/*	$NetBSD: cd9660_vnops.c,v 1.62 2022/03/27 17:10:55 christos Exp $	*/
 
 /*-
  * Copyright (c) 1994
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.61 2021/07/19 01:30:24 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.62 2022/03/27 17:10:55 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -662,34 +662,6 @@ cd9660_readlink(void *v)
 	return (0);
 }
 
-int
-cd9660_link(void *v)
-{
-	struct vop_link_v2_args /* {
-		struct vnode *a_dvp;
-		struct vnode *a_vp;
-		struct componentname *a_cnp;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
-int
-cd9660_symlink(void *v)
-{
-	struct vop_symlink_v3_args /* {
-		struct vnode *a_dvp;
-		struct vnode **a_vpp;
-		struct componentname *a_cnp;
-		struct vattr *a_vap;
-		char *a_target;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
 /*
  * Calculate the logical to physical mapping if not done already,
  * then call the device strategy routine.
@@ -856,11 +828,11 @@ const struct vnodeopv_entry_desc cd9660_
 	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
 	{ &vop_seek_desc, genfs_seek },			/* seek */
 	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
-	{ &vop_link_desc, cd9660_link },		/* link */
+	{ &vop_link_desc, genfs_erofs_link },		/* link */
 	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
 	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
 	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
-	{ &vop_symlink_desc, cd9660_symlink },		/* symlink */
+	{ &vop_symlink_desc, genfs_erofs_symlink },	/* symlink */
 	{ &vop_readdir_desc, cd9660_readdir },		/* readdir */
 	{ &vop_readlink_desc, cd9660_readlink },	/* readlink */
 	{ &vop_abortop_desc, genfs_abortop },		/* abortop */

Index: src/sys/fs/filecorefs/filecore_node.h
diff -u src/sys/fs/filecorefs/filecore_node.h:1.7 src/sys/fs/filecorefs/filecore_node.h:1.8
--- src/sys/fs/filecorefs/filecore_node.h:1.7	Sun Jul 18 19:57:14 2021
+++ src/sys/fs/filecorefs/filecore_node.h	Sun Mar 27 13:10:55 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: filecore_node.h,v 1.7 2021/07/18 23:57:14 dholland Exp $	*/
+/*	$NetBSD: filecore_node.h,v 1.8 2022/03/27 17:10:55 christos Exp $	*/
 
 /*-
  * Copyright (c) 1994 The Regents of the University of California.
@@ -119,8 +119,6 @@ int	filecore_readdir(void *);
 int	filecore_readlink(void *);
 int	filecore_inactive(void *);
 int	filecore_reclaim(void *);
-int	filecore_link(void *);
-int	filecore_symlink(void *);
 int	filecore_bmap(void *);
 int	filecore_strategy(void *);
 int	filecore_print(void *);

Index: src/sys/fs/filecorefs/filecore_vnops.c
diff -u src/sys/fs/filecorefs/filecore_vnops.c:1.49 src/sys/fs/filecorefs/filecore_vnops.c:1.50
--- src/sys/fs/filecorefs/filecore_vnops.c:1.49	Sun Jul 18 19:57:14 2021
+++ src/sys/fs/filecorefs/filecore_vnops.c	Sun Mar 27 13:10:55 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: filecore_vnops.c,v 1.49 2021/07/18 23:57:14 dholland Exp $	*/
+/*	$NetBSD: filecore_vnops.c,v 1.50 2022/03/27 17:10:55 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.49 2021/07/18 23:57:14 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: filecore_vnops.c,v 1.50 2022/03/27 17:10:55 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -416,34 +416,6 @@ filecore_readlink(void *v)
 	return (EINVAL);
 }
 
-int
-filecore_link(void *v)
-{
-	struct vop_link_v2_args /* {
-		struct vnode *a_dvp;
-		struct vnode *a_vp;
-		struct componentname *a_cnp;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
-int
-filecore_symlink(void *v)
-{
-	struct vop_symlink_v3_args /* {
-		struct vnode *a_dvp;
-		struct vnode **a_vpp;
-		struct componentname *a_cnp;
-		struct vattr *a_vap;
-		char *a_target;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
 /*
  * Calculate the logical to physical mapping if not done already,
  * then call the device strategy routine.
@@ -559,11 +531,11 @@ const struct vnodeopv_entry_desc filecor
 	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
 	{ &vop_seek_desc, genfs_seek },			/* seek */
 	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
-	{ &vop_link_desc, filecore_link },		/* link */
+	{ &vop_link_desc, genfs_erofs_link },		/* link */
 	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
 	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
 	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
-	{ &vop_symlink_desc, filecore_symlink },	/* symlink */
+	{ &vop_symlink_desc, genfs_erofs_symlink },	/* symlink */
 	{ &vop_readdir_desc, filecore_readdir },      	/* readdir */
 	{ &vop_readlink_desc, filecore_readlink },	/* readlink */
 	{ &vop_abortop_desc, genfs_abortop },       	/* abortop */

Index: src/sys/miscfs/fdesc/fdesc_vnops.c
diff -u src/sys/miscfs/fdesc/fdesc_vnops.c:1.139 src/sys/miscfs/fdesc/fdesc_vnops.c:1.140
--- src/sys/miscfs/fdesc/fdesc_vnops.c:1.139	Sat Jan 15 14:33:58 2022
+++ src/sys/miscfs/fdesc/fdesc_vnops.c	Sun Mar 27 13:10:55 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: fdesc_vnops.c,v 1.139 2022/01/15 19:33:58 riastradh Exp $	*/
+/*	$NetBSD: fdesc_vnops.c,v 1.140 2022/03/27 17:10:55 christos Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.139 2022/01/15 19:33:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.140 2022/03/27 17:10:55 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -83,8 +83,6 @@ int	fdesc_write(void *);
 int	fdesc_ioctl(void *);
 int	fdesc_poll(void *);
 int	fdesc_kqfilter(void *);
-int	fdesc_link(void *);
-int	fdesc_symlink(void *);
 int	fdesc_readdir(void *);
 int	fdesc_readlink(void *);
 int	fdesc_inactive(void *);
@@ -120,11 +118,11 @@ const struct vnodeopv_entry_desc fdesc_v
 	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
 	{ &vop_seek_desc, genfs_seek },			/* seek */
 	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
-	{ &vop_link_desc, fdesc_link },			/* link */
+	{ &vop_link_desc, genfs_erofs_link },		/* link */
 	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
 	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
 	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
-	{ &vop_symlink_desc, fdesc_symlink },		/* symlink */
+	{ &vop_symlink_desc, genfs_erofs_symlink },	/* symlink */
 	{ &vop_readdir_desc, fdesc_readdir },		/* readdir */
 	{ &vop_readlink_desc, fdesc_readlink },		/* readlink */
 	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
@@ -912,31 +910,3 @@ fdesc_print(void *v)
 	printf("tag VT_NON, fdesc vnode\n");
 	return (0);
 }
-
-int
-fdesc_link(void *v)
-{
-	struct vop_link_v2_args /* {
-		struct vnode *a_dvp;
-		struct vnode *a_vp;
-		struct componentname *a_cnp;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
-int
-fdesc_symlink(void *v)
-{
-	struct vop_symlink_v3_args /* {
-		struct vnode *a_dvp;
-		struct vnode **a_vpp;
-		struct componentname *a_cnp;
-		struct vattr *a_vap;
-		char *a_target;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}

Index: src/sys/miscfs/genfs/genfs.h
diff -u src/sys/miscfs/genfs/genfs.h:1.38 src/sys/miscfs/genfs/genfs.h:1.39
--- src/sys/miscfs/genfs/genfs.h:1.38	Tue Oct 19 23:08:18 2021
+++ src/sys/miscfs/genfs/genfs.h	Sun Mar 27 13:10:55 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: genfs.h,v 1.38 2021/10/20 03:08:18 thorpej Exp $	*/
+/*	$NetBSD: genfs.h,v 1.39 2022/03/27 17:10:55 christos Exp $	*/
 
 #ifndef	_MISCFS_GENFS_GENFS_H_
 #define	_MISCFS_GENFS_GENFS_H_
@@ -18,6 +18,8 @@ int	genfs_enoioctl(void *);
 int	genfs_enoextops(void *);
 int	genfs_einval(void *);
 int	genfs_eopnotsupp(void *);
+int	genfs_erofs_link(void *);
+#define	genfs_erofs_symlink genfs_erofs_link
 int	genfs_ebadf(void *);
 int	genfs_nolock(void *);
 int	genfs_noislocked(void *);

Index: src/sys/miscfs/genfs/genfs_vnops.c
diff -u src/sys/miscfs/genfs/genfs_vnops.c:1.218 src/sys/miscfs/genfs/genfs_vnops.c:1.219
--- src/sys/miscfs/genfs/genfs_vnops.c:1.218	Sun Mar 27 12:23:08 2022
+++ src/sys/miscfs/genfs/genfs_vnops.c	Sun Mar 27 13:10:55 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: genfs_vnops.c,v 1.218 2022/03/27 16:23:08 christos Exp $	*/
+/*	$NetBSD: genfs_vnops.c,v 1.219 2022/03/27 17:10:55 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.218 2022/03/27 16:23:08 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genfs_vnops.c,v 1.219 2022/03/27 17:10:55 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -192,6 +192,20 @@ genfs_einval(void *v)
 	return (EINVAL);
 }
 
+int
+genfs_erofs_link(void *v)
+{
+	/* also for symlink */
+	struct vop_link_v2_args /* {
+		struct vnode *a_dvp;
+		struct vnode **a_vpp;
+		struct componentname *a_cnp;
+	} */ *ap = v;
+
+	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
+	return EROFS;
+}
+
 /*
  * Called when an fs doesn't support a particular vop.
  * This takes care to vrele, vput, or vunlock passed in vnodes

Index: src/sys/miscfs/kernfs/kernfs_vnops.c
diff -u src/sys/miscfs/kernfs/kernfs_vnops.c:1.173 src/sys/miscfs/kernfs/kernfs_vnops.c:1.174
--- src/sys/miscfs/kernfs/kernfs_vnops.c:1.173	Sat Mar 12 12:36:14 2022
+++ src/sys/miscfs/kernfs/kernfs_vnops.c	Sun Mar 27 13:10:56 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: kernfs_vnops.c,v 1.173 2022/03/12 17:36:14 riastradh Exp $	*/
+/*	$NetBSD: kernfs_vnops.c,v 1.174 2022/03/27 17:10:56 christos Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.173 2022/03/12 17:36:14 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.174 2022/03/27 17:10:56 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -145,8 +145,6 @@ int	kernfs_setattr(void *);
 int	kernfs_read(void *);
 int	kernfs_write(void *);
 int	kernfs_ioctl(void *);
-int	kernfs_link(void *);
-int	kernfs_symlink(void *);
 int	kernfs_readdir(void *);
 int	kernfs_inactive(void *);
 int	kernfs_reclaim(void *);
@@ -183,11 +181,11 @@ const struct vnodeopv_entry_desc kernfs_
 	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
 	{ &vop_seek_desc, genfs_nullop },		/* seek */
 	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
-	{ &vop_link_desc, kernfs_link },		/* link */
+	{ &vop_link_desc, genfs_erofs_link },		/* link */
 	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
 	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
 	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
-	{ &vop_symlink_desc, kernfs_symlink },		/* symlink */
+	{ &vop_symlink_desc, genfs_erofs_symlink },	/* symlink */
 	{ &vop_readdir_desc, kernfs_readdir },		/* readdir */
 	{ &vop_readlink_desc, genfs_eopnotsupp },	/* readlink */
 	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
@@ -1146,34 +1144,6 @@ kernfs_print(void *v)
 }
 
 int
-kernfs_link(void *v)
-{
-	struct vop_link_v2_args /* {
-		struct vnode *a_dvp;
-		struct vnode *a_vp;
-		struct componentname *a_cnp;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
-int
-kernfs_symlink(void *v)
-{
-	struct vop_symlink_v3_args /* {
-		struct vnode *a_dvp;
-		struct vnode **a_vpp;
-		struct componentname *a_cnp;
-		struct vattr *a_vap;
-		char *a_target;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
- 
-int
 kernfs_getpages(void *v)
 {
 	struct vop_getpages_args /* {

Index: src/sys/miscfs/procfs/procfs_vnops.c
diff -u src/sys/miscfs/procfs/procfs_vnops.c:1.227 src/sys/miscfs/procfs/procfs_vnops.c:1.228
--- src/sys/miscfs/procfs/procfs_vnops.c:1.227	Mon Jan 17 06:20:00 2022
+++ src/sys/miscfs/procfs/procfs_vnops.c	Sun Mar 27 13:10:56 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: procfs_vnops.c,v 1.227 2022/01/17 11:20:00 bouyer Exp $	*/
+/*	$NetBSD: procfs_vnops.c,v 1.228 2022/03/27 17:10:56 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.227 2022/01/17 11:20:00 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.228 2022/03/27 17:10:56 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -213,8 +213,6 @@ int	procfs_close(void *);
 int	procfs_access(void *);
 int	procfs_getattr(void *);
 int	procfs_setattr(void *);
-int	procfs_link(void *);
-int	procfs_symlink(void *);
 int	procfs_readdir(void *);
 int	procfs_readlink(void *);
 int	procfs_inactive(void *);
@@ -254,11 +252,11 @@ const struct vnodeopv_entry_desc procfs_
 	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
 	{ &vop_seek_desc, genfs_nullop },		/* seek */
 	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
-	{ &vop_link_desc, procfs_link },		/* link */
+	{ &vop_link_desc, genfs_erofs_link },		/* link */
 	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
 	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
 	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
-	{ &vop_symlink_desc, procfs_symlink },		/* symlink */
+	{ &vop_symlink_desc, genfs_erofs_symlink },	/* symlink */
 	{ &vop_readdir_desc, procfs_readdir },		/* readdir */
 	{ &vop_readlink_desc, procfs_readlink },	/* readlink */
 	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
@@ -501,34 +499,6 @@ procfs_print(void *v)
 	return 0;
 }
 
-int
-procfs_link(void *v)
-{
-	struct vop_link_v2_args /* {
-		struct vnode *a_dvp;
-		struct vnode *a_vp;
-		struct componentname *a_cnp;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
-int
-procfs_symlink(void *v)
-{
-	struct vop_symlink_v3_args /* {
-		struct vnode *a_dvp;
-		struct vnode **a_vpp;
-		struct componentname *a_cnp;
-		struct vattr *a_vap;
-		char *a_target;
-	} */ *ap = v;
-
-	VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
-	return (EROFS);
-}
-
 /*
  * Works out the path to the target process's current
  * working directory or chroot.  If the caller is in a chroot and

Reply via email to