Mon Jul 19 01:30:25 2021 UTC ()
Abolish all the silly indirection macros for initializing vnode ops tables.

These are things of the form #define foofs_op genfs_op, or #define
foofs_op genfs_eopnotsupp, or similar. They serve no purpose besides
obfuscation, and have gotten cutpasted all over everywhere.

Part 2; cvs randomly didn't commit these changes before, and then hid
them from me until I touched the files to force it to rethink. Dunno
what happened.

There's probably more of these, going to have to scan the tree the
hard way.


(dholland)
diff -r1.60 -r1.61 src/sys/fs/cd9660/cd9660_vnops.c
diff -r1.220 -r1.221 src/sys/fs/puffs/puffs_vnops.c
diff -r1.14 -r1.15 src/sys/fs/tmpfs/tmpfs_fifoops.c
diff -r1.15 -r1.16 src/sys/fs/tmpfs/tmpfs_specops.c

cvs diff -r1.60 -r1.61 src/sys/fs/cd9660/cd9660_vnops.c (expand / switch to unified diff)

--- src/sys/fs/cd9660/cd9660_vnops.c 2021/07/18 23:56:13 1.60
+++ src/sys/fs/cd9660/cd9660_vnops.c 2021/07/19 01:30:24 1.61
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: cd9660_vnops.c,v 1.60 2021/07/18 23:56:13 dholland Exp $ */ 1/* $NetBSD: cd9660_vnops.c,v 1.61 2021/07/19 01:30:24 dholland Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 1994 4 * Copyright (c) 1994
5 * The Regents of the University of California. All rights reserved. 5 * The Regents of the University of California. All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to Berkeley 7 * This code is derived from software contributed to Berkeley
8 * by Pace Willisson (pace@blitz.com). The Rock Ridge Extension 8 * by Pace Willisson (pace@blitz.com). The Rock Ridge Extension
9 * Support code is derived from software contributed to Berkeley 9 * Support code is derived from software contributed to Berkeley
10 * by Atsushi Murai (amurai@spec.co.jp). 10 * by Atsushi Murai (amurai@spec.co.jp).
11 * 11 *
12 * Redistribution and use in source and binary forms, with or without 12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions 13 * modification, are permitted provided that the following conditions
14 * are met: 14 * are met:
@@ -27,27 +27,27 @@ @@ -27,27 +27,27 @@
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE. 34 * SUCH DAMAGE.
35 * 35 *
36 * @(#)cd9660_vnops.c 8.15 (Berkeley) 5/27/95 36 * @(#)cd9660_vnops.c 8.15 (Berkeley) 5/27/95
37 */ 37 */
38 38
39#include <sys/cdefs.h> 39#include <sys/cdefs.h>
40__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.60 2021/07/18 23:56:13 dholland Exp $"); 40__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.61 2021/07/19 01:30:24 dholland Exp $");
41 41
42#include <sys/param.h> 42#include <sys/param.h>
43#include <sys/systm.h> 43#include <sys/systm.h>
44#include <sys/namei.h> 44#include <sys/namei.h>
45#include <sys/resourcevar.h> 45#include <sys/resourcevar.h>
46#include <sys/kernel.h> 46#include <sys/kernel.h>
47#include <sys/file.h> 47#include <sys/file.h>
48#include <sys/stat.h> 48#include <sys/stat.h>
49#include <sys/buf.h> 49#include <sys/buf.h>
50#include <sys/proc.h> 50#include <sys/proc.h>
51#include <sys/mount.h> 51#include <sys/mount.h>
52#include <sys/vnode.h> 52#include <sys/vnode.h>
53#include <sys/malloc.h> 53#include <sys/malloc.h>
@@ -819,86 +819,71 @@ cd9660_setattr(void *v) @@ -819,86 +819,71 @@ cd9660_setattr(void *v)
819 || vap->va_mode != (mode_t)VNOVAL) 819 || vap->va_mode != (mode_t)VNOVAL)
820 return EOPNOTSUPP; 820 return EOPNOTSUPP;
821 821
822 if (vap->va_size != VNOVAL 822 if (vap->va_size != VNOVAL
823 && vp->v_type != VCHR 823 && vp->v_type != VCHR
824 && vp->v_type != VBLK 824 && vp->v_type != VBLK
825 && vp->v_type != VFIFO) 825 && vp->v_type != VFIFO)
826 return EOPNOTSUPP; 826 return EOPNOTSUPP;
827 827
828 return 0; 828 return 0;
829} 829}
830 830
831/* 831/*
832 * Global vfs data structures for isofs 
833 */ 
834#define cd9660_create genfs_eopnotsupp 
835#define cd9660_mknod genfs_eopnotsupp 
836#define cd9660_write genfs_eopnotsupp 
837#define cd9660_fsync genfs_nullop 
838#define cd9660_remove genfs_eopnotsupp 
839#define cd9660_rename genfs_eopnotsupp 
840#define cd9660_mkdir genfs_eopnotsupp 
841#define cd9660_rmdir genfs_eopnotsupp 
842#define cd9660_advlock genfs_einval 
843#define cd9660_bwrite genfs_eopnotsupp 
844#define cd9660_revoke genfs_revoke 
845 
846/* 
847 * Global vfs data structures for cd9660 832 * Global vfs data structures for cd9660
848 */ 833 */
849int (**cd9660_vnodeop_p)(void *); 834int (**cd9660_vnodeop_p)(void *);
850const struct vnodeopv_entry_desc cd9660_vnodeop_entries[] = { 835const struct vnodeopv_entry_desc cd9660_vnodeop_entries[] = {
851 { &vop_default_desc, vn_default_error }, 836 { &vop_default_desc, vn_default_error },
852 { &vop_parsepath_desc, genfs_parsepath }, /* parsepath */ 837 { &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
853 { &vop_lookup_desc, cd9660_lookup }, /* lookup */ 838 { &vop_lookup_desc, cd9660_lookup }, /* lookup */
854 { &vop_create_desc, cd9660_create }, /* create */ 839 { &vop_create_desc, genfs_eopnotsupp }, /* create */
855 { &vop_mknod_desc, cd9660_mknod }, /* mknod */ 840 { &vop_mknod_desc, genfs_eopnotsupp }, /* mknod */
856 { &vop_open_desc, cd9660_open }, /* open */ 841 { &vop_open_desc, genfs_nullop }, /* open */
857 { &vop_close_desc, cd9660_close }, /* close */ 842 { &vop_close_desc, genfs_nullop }, /* close */
858 { &vop_access_desc, cd9660_access }, /* access */ 843 { &vop_access_desc, cd9660_access }, /* access */
859 { &vop_accessx_desc, genfs_accessx }, /* accessx */ 844 { &vop_accessx_desc, genfs_accessx }, /* accessx */
860 { &vop_getattr_desc, cd9660_getattr }, /* getattr */ 845 { &vop_getattr_desc, cd9660_getattr }, /* getattr */
861 { &vop_setattr_desc, cd9660_setattr }, /* setattr */ 846 { &vop_setattr_desc, cd9660_setattr }, /* setattr */
862 { &vop_read_desc, cd9660_read }, /* read */ 847 { &vop_read_desc, cd9660_read }, /* read */
863 { &vop_write_desc, cd9660_write }, /* write */ 848 { &vop_write_desc, genfs_eopnotsupp }, /* write */
864 { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ 849 { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */
865 { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ 850 { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */
866 { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ 851 { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
867 { &vop_ioctl_desc, cd9660_ioctl }, /* ioctl */ 852 { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */
868 { &vop_poll_desc, cd9660_poll }, /* poll */ 853 { &vop_poll_desc, genfs_poll }, /* poll */
869 { &vop_revoke_desc, cd9660_revoke }, /* revoke */ 854 { &vop_revoke_desc, genfs_revoke }, /* revoke */
870 { &vop_mmap_desc, cd9660_mmap }, /* mmap */ 855 { &vop_mmap_desc, genfs_mmap }, /* mmap */
871 { &vop_fsync_desc, cd9660_fsync }, /* fsync */ 856 { &vop_fsync_desc, genfs_nullop }, /* fsync */
872 { &vop_seek_desc, cd9660_seek }, /* seek */ 857 { &vop_seek_desc, genfs_seek }, /* seek */
873 { &vop_remove_desc, cd9660_remove }, /* remove */ 858 { &vop_remove_desc, genfs_eopnotsupp }, /* remove */
874 { &vop_link_desc, cd9660_link }, /* link */ 859 { &vop_link_desc, cd9660_link }, /* link */
875 { &vop_rename_desc, cd9660_rename }, /* rename */ 860 { &vop_rename_desc, genfs_eopnotsupp }, /* rename */
876 { &vop_mkdir_desc, cd9660_mkdir }, /* mkdir */ 861 { &vop_mkdir_desc, genfs_eopnotsupp }, /* mkdir */
877 { &vop_rmdir_desc, cd9660_rmdir }, /* rmdir */ 862 { &vop_rmdir_desc, genfs_eopnotsupp }, /* rmdir */
878 { &vop_symlink_desc, cd9660_symlink }, /* symlink */ 863 { &vop_symlink_desc, cd9660_symlink }, /* symlink */
879 { &vop_readdir_desc, cd9660_readdir }, /* readdir */ 864 { &vop_readdir_desc, cd9660_readdir }, /* readdir */
880 { &vop_readlink_desc, cd9660_readlink }, /* readlink */ 865 { &vop_readlink_desc, cd9660_readlink }, /* readlink */
881 { &vop_abortop_desc, cd9660_abortop }, /* abortop */ 866 { &vop_abortop_desc, genfs_abortop }, /* abortop */
882 { &vop_inactive_desc, cd9660_inactive }, /* inactive */ 867 { &vop_inactive_desc, cd9660_inactive }, /* inactive */
883 { &vop_reclaim_desc, cd9660_reclaim }, /* reclaim */ 868 { &vop_reclaim_desc, cd9660_reclaim }, /* reclaim */
884 { &vop_lock_desc, genfs_lock }, /* lock */ 869 { &vop_lock_desc, genfs_lock }, /* lock */
885 { &vop_unlock_desc, genfs_unlock }, /* unlock */ 870 { &vop_unlock_desc, genfs_unlock }, /* unlock */
886 { &vop_bmap_desc, cd9660_bmap }, /* bmap */ 871 { &vop_bmap_desc, cd9660_bmap }, /* bmap */
887 { &vop_strategy_desc, cd9660_strategy }, /* strategy */ 872 { &vop_strategy_desc, cd9660_strategy }, /* strategy */
888 { &vop_print_desc, cd9660_print }, /* print */ 873 { &vop_print_desc, cd9660_print }, /* print */
889 { &vop_islocked_desc, genfs_islocked }, /* islocked */ 874 { &vop_islocked_desc, genfs_islocked }, /* islocked */
890 { &vop_pathconf_desc, cd9660_pathconf }, /* pathconf */ 875 { &vop_pathconf_desc, cd9660_pathconf }, /* pathconf */
891 { &vop_advlock_desc, cd9660_advlock }, /* advlock */ 876 { &vop_advlock_desc, genfs_einval }, /* advlock */
892 { &vop_bwrite_desc, vn_bwrite }, /* bwrite */ 877 { &vop_bwrite_desc, vn_bwrite }, /* bwrite */
893 { &vop_getpages_desc, genfs_getpages }, /* getpages */ 878 { &vop_getpages_desc, genfs_getpages }, /* getpages */
894 { &vop_putpages_desc, genfs_putpages }, /* putpages */ 879 { &vop_putpages_desc, genfs_putpages }, /* putpages */
895 { NULL, NULL } 880 { NULL, NULL }
896}; 881};
897const struct vnodeopv_desc cd9660_vnodeop_opv_desc = 882const struct vnodeopv_desc cd9660_vnodeop_opv_desc =
898 { &cd9660_vnodeop_p, cd9660_vnodeop_entries }; 883 { &cd9660_vnodeop_p, cd9660_vnodeop_entries };
899 884
900/* 885/*
901 * Special device vnode ops 886 * Special device vnode ops
902 */ 887 */
903int (**cd9660_specop_p)(void *); 888int (**cd9660_specop_p)(void *);
904const struct vnodeopv_entry_desc cd9660_specop_entries[] = { 889const struct vnodeopv_entry_desc cd9660_specop_entries[] = {

cvs diff -r1.220 -r1.221 src/sys/fs/puffs/puffs_vnops.c (expand / switch to unified diff)

--- src/sys/fs/puffs/puffs_vnops.c 2021/07/18 23:56:13 1.220
+++ src/sys/fs/puffs/puffs_vnops.c 2021/07/19 01:30:24 1.221
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: puffs_vnops.c,v 1.220 2021/07/18 23:56:13 dholland Exp $ */ 1/* $NetBSD: puffs_vnops.c,v 1.221 2021/07/19 01:30:24 dholland Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved. 4 * Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved.
5 * 5 *
6 * Development of this software was supported by the 6 * Development of this software was supported by the
7 * Google Summer of Code program and the Ulla Tuominen Foundation. 7 * Google Summer of Code program and the Ulla Tuominen Foundation.
8 * The Google SoC project was mentored by Bill Studenmund. 8 * The Google SoC project was mentored by Bill Studenmund.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -20,27 +20,27 @@ @@ -20,27 +20,27 @@
20 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 22 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE. 29 * SUCH DAMAGE.
30 */ 30 */
31 31
32#include <sys/cdefs.h> 32#include <sys/cdefs.h>
33__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.220 2021/07/18 23:56:13 dholland Exp $"); 33__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.221 2021/07/19 01:30:24 dholland Exp $");
34 34
35#include <sys/param.h> 35#include <sys/param.h>
36#include <sys/buf.h> 36#include <sys/buf.h>
37#include <sys/lockf.h> 37#include <sys/lockf.h>
38#include <sys/malloc.h> 38#include <sys/malloc.h>
39#include <sys/mount.h> 39#include <sys/mount.h>
40#include <sys/namei.h> 40#include <sys/namei.h>
41#include <sys/vnode.h> 41#include <sys/vnode.h>
42#include <sys/proc.h> 42#include <sys/proc.h>
43#include <sys/kernel.h> /* For hz, getticks() */ 43#include <sys/kernel.h> /* For hz, getticks() */
44 44
45#include <uvm/uvm.h> 45#include <uvm/uvm.h>
46 46
@@ -88,30 +88,26 @@ int puffs_vnop_getpages(void *); @@ -88,30 +88,26 @@ int puffs_vnop_getpages(void *);
88int puffs_vnop_abortop(void *); 88int puffs_vnop_abortop(void *);
89int puffs_vnop_getextattr(void *); 89int puffs_vnop_getextattr(void *);
90int puffs_vnop_setextattr(void *); 90int puffs_vnop_setextattr(void *);
91int puffs_vnop_listextattr(void *); 91int puffs_vnop_listextattr(void *);
92int puffs_vnop_deleteextattr(void *); 92int puffs_vnop_deleteextattr(void *);
93 93
94int puffs_vnop_spec_read(void *); 94int puffs_vnop_spec_read(void *);
95int puffs_vnop_spec_write(void *); 95int puffs_vnop_spec_write(void *);
96int puffs_vnop_fifo_read(void *); 96int puffs_vnop_fifo_read(void *);
97int puffs_vnop_fifo_write(void *); 97int puffs_vnop_fifo_write(void *);
98 98
99int puffs_vnop_checkop(void *); 99int puffs_vnop_checkop(void *);
100 100
101#define puffs_vnop_lock genfs_lock 
102#define puffs_vnop_unlock genfs_unlock 
103#define puffs_vnop_islocked genfs_islocked 
104 
105int (**puffs_vnodeop_p)(void *); 101int (**puffs_vnodeop_p)(void *);
106const struct vnodeopv_entry_desc puffs_vnodeop_entries[] = { 102const struct vnodeopv_entry_desc puffs_vnodeop_entries[] = {
107 { &vop_default_desc, vn_default_error }, 103 { &vop_default_desc, vn_default_error },
108 { &vop_parsepath_desc, genfs_parsepath }, /* parsepath */ 104 { &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
109 { &vop_lookup_desc, puffs_vnop_lookup }, /* REAL lookup */ 105 { &vop_lookup_desc, puffs_vnop_lookup }, /* REAL lookup */
110 { &vop_create_desc, puffs_vnop_checkop }, /* create */ 106 { &vop_create_desc, puffs_vnop_checkop }, /* create */
111 { &vop_mknod_desc, puffs_vnop_checkop }, /* mknod */ 107 { &vop_mknod_desc, puffs_vnop_checkop }, /* mknod */
112 { &vop_open_desc, puffs_vnop_open }, /* REAL open */ 108 { &vop_open_desc, puffs_vnop_open }, /* REAL open */
113 { &vop_close_desc, puffs_vnop_checkop }, /* close */ 109 { &vop_close_desc, puffs_vnop_checkop }, /* close */
114 { &vop_access_desc, puffs_vnop_access }, /* REAL access */ 110 { &vop_access_desc, puffs_vnop_access }, /* REAL access */
115 { &vop_accessx_desc, genfs_accessx }, /* accessx */ 111 { &vop_accessx_desc, genfs_accessx }, /* accessx */
116 { &vop_getattr_desc, puffs_vnop_checkop }, /* getattr */ 112 { &vop_getattr_desc, puffs_vnop_checkop }, /* getattr */
117 { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */ 113 { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */
@@ -128,31 +124,31 @@ const struct vnodeopv_entry_desc puffs_v @@ -128,31 +124,31 @@ const struct vnodeopv_entry_desc puffs_v
128 { &vop_rmdir_desc, puffs_vnop_checkop }, /* rmdir */ 124 { &vop_rmdir_desc, puffs_vnop_checkop }, /* rmdir */
129 { &vop_symlink_desc, puffs_vnop_checkop }, /* symlink */ 125 { &vop_symlink_desc, puffs_vnop_checkop }, /* symlink */
130 { &vop_readdir_desc, puffs_vnop_checkop }, /* readdir */ 126 { &vop_readdir_desc, puffs_vnop_checkop }, /* readdir */
131 { &vop_readlink_desc, puffs_vnop_checkop }, /* readlink */ 127 { &vop_readlink_desc, puffs_vnop_checkop }, /* readlink */
132 { &vop_getpages_desc, puffs_vnop_checkop }, /* getpages */ 128 { &vop_getpages_desc, puffs_vnop_checkop }, /* getpages */
133 { &vop_putpages_desc, genfs_putpages }, /* REAL putpages */ 129 { &vop_putpages_desc, genfs_putpages }, /* REAL putpages */
134 { &vop_pathconf_desc, puffs_vnop_checkop }, /* pathconf */ 130 { &vop_pathconf_desc, puffs_vnop_checkop }, /* pathconf */
135 { &vop_advlock_desc, puffs_vnop_advlock }, /* advlock */ 131 { &vop_advlock_desc, puffs_vnop_advlock }, /* advlock */
136 { &vop_strategy_desc, puffs_vnop_strategy }, /* REAL strategy */ 132 { &vop_strategy_desc, puffs_vnop_strategy }, /* REAL strategy */
137 { &vop_revoke_desc, genfs_revoke }, /* REAL revoke */ 133 { &vop_revoke_desc, genfs_revoke }, /* REAL revoke */
138 { &vop_abortop_desc, puffs_vnop_abortop }, /* REAL abortop */ 134 { &vop_abortop_desc, puffs_vnop_abortop }, /* REAL abortop */
139 { &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */ 135 { &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */
140 { &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */ 136 { &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */
141 { &vop_lock_desc, puffs_vnop_lock }, /* REAL lock */ 137 { &vop_lock_desc, genfs_lock }, /* REAL lock */
142 { &vop_unlock_desc, puffs_vnop_unlock }, /* REAL unlock */ 138 { &vop_unlock_desc, genfs_unlock }, /* REAL unlock */
143 { &vop_bmap_desc, puffs_vnop_bmap }, /* REAL bmap */ 139 { &vop_bmap_desc, puffs_vnop_bmap }, /* REAL bmap */
144 { &vop_print_desc, puffs_vnop_print }, /* REAL print */ 140 { &vop_print_desc, puffs_vnop_print }, /* REAL print */
145 { &vop_islocked_desc, puffs_vnop_islocked }, /* REAL islocked */ 141 { &vop_islocked_desc, genfs_islocked }, /* REAL islocked */
146 { &vop_bwrite_desc, genfs_nullop }, /* REAL bwrite */ 142 { &vop_bwrite_desc, genfs_nullop }, /* REAL bwrite */
147 { &vop_mmap_desc, puffs_vnop_mmap }, /* REAL mmap */ 143 { &vop_mmap_desc, puffs_vnop_mmap }, /* REAL mmap */
148 { &vop_poll_desc, puffs_vnop_poll }, /* REAL poll */ 144 { &vop_poll_desc, puffs_vnop_poll }, /* REAL poll */
149 { &vop_getextattr_desc, puffs_vnop_getextattr }, /* getextattr */ 145 { &vop_getextattr_desc, puffs_vnop_getextattr }, /* getextattr */
150 { &vop_setextattr_desc, puffs_vnop_setextattr }, /* setextattr */ 146 { &vop_setextattr_desc, puffs_vnop_setextattr }, /* setextattr */
151 { &vop_listextattr_desc, puffs_vnop_listextattr }, /* listextattr */ 147 { &vop_listextattr_desc, puffs_vnop_listextattr }, /* listextattr */
152 { &vop_deleteextattr_desc, puffs_vnop_deleteextattr },/* deleteextattr */ 148 { &vop_deleteextattr_desc, puffs_vnop_deleteextattr },/* deleteextattr */
153#if 0 149#if 0
154 { &vop_openextattr_desc, puffs_vnop_checkop }, /* openextattr */ 150 { &vop_openextattr_desc, puffs_vnop_checkop }, /* openextattr */
155 { &vop_closeextattr_desc, puffs_vnop_checkop }, /* closeextattr */ 151 { &vop_closeextattr_desc, puffs_vnop_checkop }, /* closeextattr */
156#endif 152#endif
157 { &vop_kqfilter_desc, genfs_eopnotsupp }, /* kqfilter XXX */ 153 { &vop_kqfilter_desc, genfs_eopnotsupp }, /* kqfilter XXX */
158 { NULL, NULL } 154 { NULL, NULL }
@@ -166,30 +162,30 @@ const struct vnodeopv_entry_desc puffs_s @@ -166,30 +162,30 @@ const struct vnodeopv_entry_desc puffs_s
166 { &vop_default_desc, vn_default_error }, 162 { &vop_default_desc, vn_default_error },
167 GENFS_SPECOP_ENTRIES, 163 GENFS_SPECOP_ENTRIES,
168 { &vop_close_desc, spec_close }, /* spec_close */ 164 { &vop_close_desc, spec_close }, /* spec_close */
169 { &vop_access_desc, puffs_vnop_checkop }, /* access */ 165 { &vop_access_desc, puffs_vnop_checkop }, /* access */
170 { &vop_accessx_desc, genfs_accessx }, /* accessx */ 166 { &vop_accessx_desc, genfs_accessx }, /* accessx */
171 { &vop_getattr_desc, puffs_vnop_checkop }, /* getattr */ 167 { &vop_getattr_desc, puffs_vnop_checkop }, /* getattr */
172 { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */ 168 { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */
173 { &vop_read_desc, puffs_vnop_spec_read }, /* update, read */ 169 { &vop_read_desc, puffs_vnop_spec_read }, /* update, read */
174 { &vop_write_desc, puffs_vnop_spec_write }, /* update, write */ 170 { &vop_write_desc, puffs_vnop_spec_write }, /* update, write */
175 { &vop_fcntl_desc, genfs_fcntl }, /* dummy */ 171 { &vop_fcntl_desc, genfs_fcntl }, /* dummy */
176 { &vop_fsync_desc, spec_fsync }, /* vflushbuf */ 172 { &vop_fsync_desc, spec_fsync }, /* vflushbuf */
177 { &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */ 173 { &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */
178 { &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */ 174 { &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */
179 { &vop_lock_desc, puffs_vnop_lock }, /* REAL lock */ 175 { &vop_lock_desc, genfs_lock }, /* REAL lock */
180 { &vop_unlock_desc, puffs_vnop_unlock }, /* REAL unlock */ 176 { &vop_unlock_desc, genfs_unlock }, /* REAL unlock */
181 { &vop_print_desc, puffs_vnop_print }, /* REAL print */ 177 { &vop_print_desc, puffs_vnop_print }, /* REAL print */
182 { &vop_islocked_desc, puffs_vnop_islocked }, /* REAL islocked */ 178 { &vop_islocked_desc, genfs_islocked }, /* REAL islocked */
183 { &vop_bwrite_desc, vn_bwrite }, /* bwrite */ 179 { &vop_bwrite_desc, vn_bwrite }, /* bwrite */
184 { &vop_getextattr_desc, puffs_vnop_checkop }, /* getextattr */ 180 { &vop_getextattr_desc, puffs_vnop_checkop }, /* getextattr */
185 { &vop_setextattr_desc, puffs_vnop_checkop }, /* setextattr */ 181 { &vop_setextattr_desc, puffs_vnop_checkop }, /* setextattr */
186 { &vop_listextattr_desc, puffs_vnop_checkop }, /* listextattr */ 182 { &vop_listextattr_desc, puffs_vnop_checkop }, /* listextattr */
187 { &vop_deleteextattr_desc, puffs_vnop_checkop },/* deleteextattr */ 183 { &vop_deleteextattr_desc, puffs_vnop_checkop },/* deleteextattr */
188#if 0 184#if 0
189 { &vop_openextattr_desc, _openextattr }, /* openextattr */ 185 { &vop_openextattr_desc, _openextattr }, /* openextattr */
190 { &vop_closeextattr_desc, _closeextattr }, /* closeextattr */ 186 { &vop_closeextattr_desc, _closeextattr }, /* closeextattr */
191#endif 187#endif
192 { NULL, NULL } 188 { NULL, NULL }
193}; 189};
194const struct vnodeopv_desc puffs_specop_opv_desc = 190const struct vnodeopv_desc puffs_specop_opv_desc =
195 { &puffs_specop_p, puffs_specop_entries }; 191 { &puffs_specop_p, puffs_specop_entries };
@@ -200,31 +196,31 @@ const struct vnodeopv_entry_desc puffs_f @@ -200,31 +196,31 @@ const struct vnodeopv_entry_desc puffs_f
200 { &vop_default_desc, vn_default_error }, 196 { &vop_default_desc, vn_default_error },
201 GENFS_FIFOOP_ENTRIES, 197 GENFS_FIFOOP_ENTRIES,
202 { &vop_close_desc, vn_fifo_bypass }, /* close */ 198 { &vop_close_desc, vn_fifo_bypass }, /* close */
203 { &vop_access_desc, puffs_vnop_checkop }, /* access */ 199 { &vop_access_desc, puffs_vnop_checkop }, /* access */
204 { &vop_accessx_desc, genfs_accessx }, /* accessx */ 200 { &vop_accessx_desc, genfs_accessx }, /* accessx */
205 { &vop_getattr_desc, puffs_vnop_checkop }, /* getattr */ 201 { &vop_getattr_desc, puffs_vnop_checkop }, /* getattr */
206 { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */ 202 { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */
207 { &vop_read_desc, puffs_vnop_fifo_read }, /* read, update */ 203 { &vop_read_desc, puffs_vnop_fifo_read }, /* read, update */
208 { &vop_write_desc, puffs_vnop_fifo_write }, /* write, update */ 204 { &vop_write_desc, puffs_vnop_fifo_write }, /* write, update */
209 { &vop_fcntl_desc, genfs_fcntl }, /* dummy */ 205 { &vop_fcntl_desc, genfs_fcntl }, /* dummy */
210 { &vop_fsync_desc, vn_fifo_bypass }, /* genfs_nullop*/ 206 { &vop_fsync_desc, vn_fifo_bypass }, /* genfs_nullop*/
211 { &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */ 207 { &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */
212 { &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */ 208 { &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */
213 { &vop_lock_desc, puffs_vnop_lock }, /* REAL lock */ 209 { &vop_lock_desc, genfs_lock }, /* REAL lock */
214 { &vop_unlock_desc, puffs_vnop_unlock }, /* REAL unlock */ 210 { &vop_unlock_desc, genfs_unlock }, /* REAL unlock */
215 { &vop_strategy_desc, vn_fifo_bypass }, /* genfs_badop */ 211 { &vop_strategy_desc, vn_fifo_bypass }, /* genfs_badop */
216 { &vop_print_desc, puffs_vnop_print }, /* REAL print */ 212 { &vop_print_desc, puffs_vnop_print }, /* REAL print */
217 { &vop_islocked_desc, puffs_vnop_islocked }, /* REAL islocked */ 213 { &vop_islocked_desc, genfs_islocked }, /* REAL islocked */
218 { &vop_bwrite_desc, vn_bwrite }, /* bwrite */ 214 { &vop_bwrite_desc, vn_bwrite }, /* bwrite */
219#if 0 215#if 0
220 { &vop_openextattr_desc, _openextattr }, /* openextattr */ 216 { &vop_openextattr_desc, _openextattr }, /* openextattr */
221 { &vop_closeextattr_desc, _closeextattr }, /* closeextattr */ 217 { &vop_closeextattr_desc, _closeextattr }, /* closeextattr */
222#endif 218#endif
223 { &vop_getextattr_desc, puffs_vnop_checkop }, /* getextattr */ 219 { &vop_getextattr_desc, puffs_vnop_checkop }, /* getextattr */
224 { &vop_setextattr_desc, puffs_vnop_checkop }, /* setextattr */ 220 { &vop_setextattr_desc, puffs_vnop_checkop }, /* setextattr */
225 { &vop_listextattr_desc, puffs_vnop_checkop }, /* listextattr */ 221 { &vop_listextattr_desc, puffs_vnop_checkop }, /* listextattr */
226 { &vop_deleteextattr_desc, puffs_vnop_checkop }, /* deleteextattr */ 222 { &vop_deleteextattr_desc, puffs_vnop_checkop }, /* deleteextattr */
227 { NULL, NULL } 223 { NULL, NULL }
228}; 224};
229const struct vnodeopv_desc puffs_fifoop_opv_desc = 225const struct vnodeopv_desc puffs_fifoop_opv_desc =
230 { &puffs_fifoop_p, puffs_fifoop_entries }; 226 { &puffs_fifoop_p, puffs_fifoop_entries };
@@ -245,27 +241,27 @@ const struct vnodeopv_entry_desc puffs_m @@ -245,27 +241,27 @@ const struct vnodeopv_entry_desc puffs_m
245 { &vop_setattr_desc, puffs_vnop_setattr }, /* setattr */ 241 { &vop_setattr_desc, puffs_vnop_setattr }, /* setattr */
246 { &vop_read_desc, puffs_vnop_read }, /* read */ 242 { &vop_read_desc, puffs_vnop_read }, /* read */
247 { &vop_write_desc, puffs_vnop_write }, /* write */ 243 { &vop_write_desc, puffs_vnop_write }, /* write */
248 { &vop_seek_desc, puffs_vnop_seek }, /* seek */ 244 { &vop_seek_desc, puffs_vnop_seek }, /* seek */
249 { &vop_remove_desc, puffs_vnop_remove }, /* remove */ 245 { &vop_remove_desc, puffs_vnop_remove }, /* remove */
250 { &vop_link_desc, puffs_vnop_link }, /* link */ 246 { &vop_link_desc, puffs_vnop_link }, /* link */
251 { &vop_rename_desc, puffs_vnop_rename }, /* rename */ 247 { &vop_rename_desc, puffs_vnop_rename }, /* rename */
252 { &vop_mkdir_desc, puffs_vnop_mkdir }, /* mkdir */ 248 { &vop_mkdir_desc, puffs_vnop_mkdir }, /* mkdir */
253 { &vop_rmdir_desc, puffs_vnop_rmdir }, /* rmdir */ 249 { &vop_rmdir_desc, puffs_vnop_rmdir }, /* rmdir */
254 { &vop_symlink_desc, puffs_vnop_symlink }, /* symlink */ 250 { &vop_symlink_desc, puffs_vnop_symlink }, /* symlink */
255 { &vop_readdir_desc, puffs_vnop_readdir }, /* readdir */ 251 { &vop_readdir_desc, puffs_vnop_readdir }, /* readdir */
256 { &vop_readlink_desc, puffs_vnop_readlink }, /* readlink */ 252 { &vop_readlink_desc, puffs_vnop_readlink }, /* readlink */
257 { &vop_print_desc, puffs_vnop_print }, /* print */ 253 { &vop_print_desc, puffs_vnop_print }, /* print */
258 { &vop_islocked_desc, puffs_vnop_islocked }, /* islocked */ 254 { &vop_islocked_desc, genfs_islocked }, /* islocked */
259 { &vop_pathconf_desc, puffs_vnop_pathconf }, /* pathconf */ 255 { &vop_pathconf_desc, puffs_vnop_pathconf }, /* pathconf */
260 { &vop_getpages_desc, puffs_vnop_getpages }, /* getpages */ 256 { &vop_getpages_desc, puffs_vnop_getpages }, /* getpages */
261 { NULL, NULL } 257 { NULL, NULL }
262}; 258};
263const struct vnodeopv_desc puffs_msgop_opv_desc = 259const struct vnodeopv_desc puffs_msgop_opv_desc =
264 { &puffs_msgop_p, puffs_msgop_entries }; 260 { &puffs_msgop_p, puffs_msgop_entries };
265 261
266/* 262/*
267 * for dosetattr / update_va  263 * for dosetattr / update_va
268 */ 264 */
269#define SETATTR_CHSIZE 0x01 265#define SETATTR_CHSIZE 0x01
270#define SETATTR_ASYNC 0x02 266#define SETATTR_ASYNC 0x02
271 267

cvs diff -r1.14 -r1.15 src/sys/fs/tmpfs/tmpfs_fifoops.c (expand / switch to unified diff)

--- src/sys/fs/tmpfs/tmpfs_fifoops.c 2021/07/18 23:56:13 1.14
+++ src/sys/fs/tmpfs/tmpfs_fifoops.c 2021/07/19 01:30:25 1.15
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: tmpfs_fifoops.c,v 1.14 2021/07/18 23:56:13 dholland Exp $ */ 1/* $NetBSD: tmpfs_fifoops.c,v 1.15 2021/07/19 01:30:25 dholland Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2005 The NetBSD Foundation, Inc. 4 * Copyright (c) 2005 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Julio M. Merino Vidal, developed as part of Google's Summer of Code 8 * by Julio M. Merino Vidal, developed as part of Google's Summer of Code
9 * 2005 program. 9 * 2005 program.
10 * 10 *
11 * Redistribution and use in source and binary forms, with or without 11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions 12 * modification, are permitted provided that the following conditions
13 * are met: 13 * are met:
14 * 1. Redistributions of source code must retain the above copyright 14 * 1. Redistributions of source code must retain the above copyright
@@ -25,58 +25,58 @@ @@ -25,58 +25,58 @@
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE. 30 * POSSIBILITY OF SUCH DAMAGE.
31 */ 31 */
32 32
33/* 33/*
34 * tmpfs vnode interface for named pipes. 34 * tmpfs vnode interface for named pipes.
35 */ 35 */
36 36
37#include <sys/cdefs.h> 37#include <sys/cdefs.h>
38__KERNEL_RCSID(0, "$NetBSD: tmpfs_fifoops.c,v 1.14 2021/07/18 23:56:13 dholland Exp $"); 38__KERNEL_RCSID(0, "$NetBSD: tmpfs_fifoops.c,v 1.15 2021/07/19 01:30:25 dholland Exp $");
39 39
40#include <sys/param.h> 40#include <sys/param.h>
41#include <sys/vnode.h> 41#include <sys/vnode.h>
42 42
43#include <fs/tmpfs/tmpfs.h> 43#include <fs/tmpfs/tmpfs.h>
44#include <fs/tmpfs/tmpfs_fifoops.h> 44#include <fs/tmpfs/tmpfs_fifoops.h>
45 45
46/* 46/*
47 * vnode operations vector used for fifos stored in a tmpfs file system. 47 * vnode operations vector used for fifos stored in a tmpfs file system.
48 */ 48 */
49int (**tmpfs_fifoop_p)(void *); 49int (**tmpfs_fifoop_p)(void *);
50const struct vnodeopv_entry_desc tmpfs_fifoop_entries[] = { 50const struct vnodeopv_entry_desc tmpfs_fifoop_entries[] = {
51 { &vop_default_desc, vn_default_error }, 51 { &vop_default_desc, vn_default_error },
52 GENFS_FIFOOP_ENTRIES, 52 GENFS_FIFOOP_ENTRIES,
53 { &vop_close_desc, tmpfs_fifo_close }, 53 { &vop_close_desc, tmpfs_fifo_close },
54 { &vop_access_desc, tmpfs_fifo_access }, 54 { &vop_access_desc, tmpfs_access },
55 { &vop_accessx_desc, genfs_accessx }, 55 { &vop_accessx_desc, genfs_accessx },
56 { &vop_getattr_desc, tmpfs_fifo_getattr }, 56 { &vop_getattr_desc, tmpfs_getattr },
57 { &vop_setattr_desc, tmpfs_fifo_setattr }, 57 { &vop_setattr_desc, tmpfs_setattr },
58 { &vop_read_desc, tmpfs_fifo_read }, 58 { &vop_read_desc, tmpfs_fifo_read },
59 { &vop_write_desc, tmpfs_fifo_write }, 59 { &vop_write_desc, tmpfs_fifo_write },
60 { &vop_fcntl_desc, tmpfs_fifo_fcntl }, 60 { &vop_fcntl_desc, genfs_fcntl },
61 { &vop_fsync_desc, tmpfs_fifo_fsync }, 61 { &vop_fsync_desc, vn_fifo_bypass },
62 { &vop_inactive_desc, tmpfs_fifo_inactive }, 62 { &vop_inactive_desc, tmpfs_inactive },
63 { &vop_reclaim_desc, tmpfs_fifo_reclaim }, 63 { &vop_reclaim_desc, tmpfs_reclaim },
64 { &vop_lock_desc, tmpfs_fifo_lock }, 64 { &vop_lock_desc, genfs_lock },
65 { &vop_unlock_desc, tmpfs_fifo_unlock }, 65 { &vop_unlock_desc, genfs_unlock },
66 { &vop_strategy_desc, tmpfs_fifo_strategy }, 66 { &vop_strategy_desc, vn_fifo_bypass },
67 { &vop_print_desc, tmpfs_fifo_print }, 67 { &vop_print_desc, tmpfs_print },
68 { &vop_islocked_desc, tmpfs_fifo_islocked }, 68 { &vop_islocked_desc, genfs_islocked },
69 { &vop_bwrite_desc, tmpfs_fifo_bwrite }, 69 { &vop_bwrite_desc, genfs_nullop },
70 { NULL, NULL } 70 { NULL, NULL }
71}; 71};
72 72
73const struct vnodeopv_desc tmpfs_fifoop_opv_desc = { 73const struct vnodeopv_desc tmpfs_fifoop_opv_desc = {
74 &tmpfs_fifoop_p, tmpfs_fifoop_entries 74 &tmpfs_fifoop_p, tmpfs_fifoop_entries
75}; 75};
76 76
77int 77int
78tmpfs_fifo_close(void *v) 78tmpfs_fifo_close(void *v)
79{ 79{
80 struct vop_close_args /* { 80 struct vop_close_args /* {
81 struct vnode *a_vp; 81 struct vnode *a_vp;
82 int a_fflag; 82 int a_fflag;

cvs diff -r1.15 -r1.16 src/sys/fs/tmpfs/tmpfs_specops.c (expand / switch to unified diff)

--- src/sys/fs/tmpfs/tmpfs_specops.c 2021/07/18 23:56:13 1.15
+++ src/sys/fs/tmpfs/tmpfs_specops.c 2021/07/19 01:30:25 1.16
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: tmpfs_specops.c,v 1.15 2021/07/18 23:56:13 dholland Exp $ */ 1/* $NetBSD: tmpfs_specops.c,v 1.16 2021/07/19 01:30:25 dholland Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2005 The NetBSD Foundation, Inc. 4 * Copyright (c) 2005 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Julio M. Merino Vidal, developed as part of Google's Summer of Code 8 * by Julio M. Merino Vidal, developed as part of Google's Summer of Code
9 * 2005 program. 9 * 2005 program.
10 * 10 *
11 * Redistribution and use in source and binary forms, with or without 11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions 12 * modification, are permitted provided that the following conditions
13 * are met: 13 * are met:
14 * 1. Redistributions of source code must retain the above copyright 14 * 1. Redistributions of source code must retain the above copyright
@@ -25,60 +25,60 @@ @@ -25,60 +25,60 @@
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE. 30 * POSSIBILITY OF SUCH DAMAGE.
31 */ 31 */
32 32
33/* 33/*
34 * tmpfs vnode interface for special devices. 34 * tmpfs vnode interface for special devices.
35 */ 35 */
36 36
37#include <sys/cdefs.h> 37#include <sys/cdefs.h>
38__KERNEL_RCSID(0, "$NetBSD: tmpfs_specops.c,v 1.15 2021/07/18 23:56:13 dholland Exp $"); 38__KERNEL_RCSID(0, "$NetBSD: tmpfs_specops.c,v 1.16 2021/07/19 01:30:25 dholland Exp $");
39 39
40#include <sys/param.h> 40#include <sys/param.h>
41#include <sys/vnode.h> 41#include <sys/vnode.h>
42 42
43#include <fs/tmpfs/tmpfs.h> 43#include <fs/tmpfs/tmpfs.h>
44#include <fs/tmpfs/tmpfs_specops.h> 44#include <fs/tmpfs/tmpfs_specops.h>
45 45
46/* 46/*
47 * vnode operations vector used for special devices stored in a tmpfs 47 * vnode operations vector used for special devices stored in a tmpfs
48 * file system. 48 * file system.
49 */ 49 */
50 50
51int (**tmpfs_specop_p)(void *); 51int (**tmpfs_specop_p)(void *);
52 52
53const struct vnodeopv_entry_desc tmpfs_specop_entries[] = { 53const struct vnodeopv_entry_desc tmpfs_specop_entries[] = {
54 { &vop_default_desc, vn_default_error }, 54 { &vop_default_desc, vn_default_error },
55 GENFS_SPECOP_ENTRIES, 55 GENFS_SPECOP_ENTRIES,
56 { &vop_close_desc, tmpfs_spec_close }, 56 { &vop_close_desc, tmpfs_spec_close },
57 { &vop_access_desc, tmpfs_spec_access }, 57 { &vop_access_desc, tmpfs_access },
58 { &vop_accessx_desc, genfs_accessx }, 58 { &vop_accessx_desc, genfs_accessx },
59 { &vop_getattr_desc, tmpfs_spec_getattr }, 59 { &vop_getattr_desc, tmpfs_getattr },
60 { &vop_setattr_desc, tmpfs_spec_setattr }, 60 { &vop_setattr_desc, tmpfs_setattr },
61 { &vop_read_desc, tmpfs_spec_read }, 61 { &vop_read_desc, tmpfs_spec_read },
62 { &vop_write_desc, tmpfs_spec_write }, 62 { &vop_write_desc, tmpfs_spec_write },
63 { &vop_fcntl_desc, tmpfs_spec_fcntl }, 63 { &vop_fcntl_desc, genfs_fcntl },
64 { &vop_fsync_desc, tmpfs_spec_fsync }, 64 { &vop_fsync_desc, spec_fsync },
65 { &vop_inactive_desc, tmpfs_spec_inactive }, 65 { &vop_inactive_desc, tmpfs_inactive },
66 { &vop_reclaim_desc, tmpfs_spec_reclaim }, 66 { &vop_reclaim_desc, tmpfs_reclaim },
67 { &vop_lock_desc, tmpfs_spec_lock }, 67 { &vop_lock_desc, genfs_lock },
68 { &vop_unlock_desc, tmpfs_spec_unlock }, 68 { &vop_unlock_desc, genfs_unlock },
69 { &vop_print_desc, tmpfs_spec_print }, 69 { &vop_print_desc, tmpfs_print },
70 { &vop_islocked_desc, tmpfs_spec_islocked }, 70 { &vop_islocked_desc, genfs_islocked },
71 { &vop_bwrite_desc, tmpfs_spec_bwrite }, 71 { &vop_bwrite_desc, vn_bwrite },
72 { NULL, NULL } 72 { NULL, NULL }
73}; 73};
74 74
75const struct vnodeopv_desc tmpfs_specop_opv_desc = { 75const struct vnodeopv_desc tmpfs_specop_opv_desc = {
76 &tmpfs_specop_p, tmpfs_specop_entries 76 &tmpfs_specop_p, tmpfs_specop_entries
77}; 77};
78 78
79int 79int
80tmpfs_spec_close(void *v) 80tmpfs_spec_close(void *v)
81{ 81{
82 struct vop_close_args /* { 82 struct vop_close_args /* {
83 struct vnode *a_vp; 83 struct vnode *a_vp;
84 int a_fflag; 84 int a_fflag;