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.diff -r1.60 -r1.61 src/sys/fs/cd9660/cd9660_vnops.c
(dholland)
--- 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 | */ | |
849 | int (**cd9660_vnodeop_p)(void *); | 834 | int (**cd9660_vnodeop_p)(void *); | |
850 | const struct vnodeopv_entry_desc cd9660_vnodeop_entries[] = { | 835 | const 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 | }; | |
897 | const struct vnodeopv_desc cd9660_vnodeop_opv_desc = | 882 | const 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 | */ | |
903 | int (**cd9660_specop_p)(void *); | 888 | int (**cd9660_specop_p)(void *); | |
904 | const struct vnodeopv_entry_desc cd9660_specop_entries[] = { | 889 | const struct vnodeopv_entry_desc cd9660_specop_entries[] = { |
--- 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 *); | |||
88 | int puffs_vnop_abortop(void *); | 88 | int puffs_vnop_abortop(void *); | |
89 | int puffs_vnop_getextattr(void *); | 89 | int puffs_vnop_getextattr(void *); | |
90 | int puffs_vnop_setextattr(void *); | 90 | int puffs_vnop_setextattr(void *); | |
91 | int puffs_vnop_listextattr(void *); | 91 | int puffs_vnop_listextattr(void *); | |
92 | int puffs_vnop_deleteextattr(void *); | 92 | int puffs_vnop_deleteextattr(void *); | |
93 | 93 | |||
94 | int puffs_vnop_spec_read(void *); | 94 | int puffs_vnop_spec_read(void *); | |
95 | int puffs_vnop_spec_write(void *); | 95 | int puffs_vnop_spec_write(void *); | |
96 | int puffs_vnop_fifo_read(void *); | 96 | int puffs_vnop_fifo_read(void *); | |
97 | int puffs_vnop_fifo_write(void *); | 97 | int puffs_vnop_fifo_write(void *); | |
98 | 98 | |||
99 | int puffs_vnop_checkop(void *); | 99 | int 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 | ||||
105 | int (**puffs_vnodeop_p)(void *); | 101 | int (**puffs_vnodeop_p)(void *); | |
106 | const struct vnodeopv_entry_desc puffs_vnodeop_entries[] = { | 102 | const 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 | }; | |
194 | const struct vnodeopv_desc puffs_specop_opv_desc = | 190 | const 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 | }; | |
229 | const struct vnodeopv_desc puffs_fifoop_opv_desc = | 225 | const 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 | }; | |
263 | const struct vnodeopv_desc puffs_msgop_opv_desc = | 259 | const 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 |
--- 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 | */ | |
49 | int (**tmpfs_fifoop_p)(void *); | 49 | int (**tmpfs_fifoop_p)(void *); | |
50 | const struct vnodeopv_entry_desc tmpfs_fifoop_entries[] = { | 50 | const 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 | |||
73 | const struct vnodeopv_desc tmpfs_fifoop_opv_desc = { | 73 | const 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 | |||
77 | int | 77 | int | |
78 | tmpfs_fifo_close(void *v) | 78 | tmpfs_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; |
--- 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 | |||
51 | int (**tmpfs_specop_p)(void *); | 51 | int (**tmpfs_specop_p)(void *); | |
52 | 52 | |||
53 | const struct vnodeopv_entry_desc tmpfs_specop_entries[] = { | 53 | const 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 | |||
75 | const struct vnodeopv_desc tmpfs_specop_opv_desc = { | 75 | const 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 | |||
79 | int | 79 | int | |
80 | tmpfs_spec_close(void *v) | 80 | tmpfs_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; |