X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/55e303ae13a4cf49d70f2294092726f2fffb9ef2..e2fac8b15b12a7979f72090454d850e612fc5b13:/bsd/vfs/vnode_if.c diff --git a/bsd/vfs/vnode_if.c b/bsd/vfs/vnode_if.c index 2c2f9cc04..df30827ae 100644 --- a/bsd/vfs/vnode_if.c +++ b/bsd/vfs/vnode_if.c @@ -2,16 +2,19 @@ /* * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ - * - * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER @@ -21,7 +24,7 @@ * Please see the License for the specific language governing rights and * limitations under the License. * - * @APPLE_LICENSE_HEADER_END@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved @@ -68,11 +71,11 @@ #include -#include +#include #include -#include +#include -struct vnodeop_desc vop_default_desc = { +struct vnodeop_desc vnop_default_desc = { 0, "default", 0, @@ -81,1095 +84,955 @@ struct vnodeop_desc vop_default_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, -}; - - -int vop_lookup_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_lookup_args,a_dvp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_lookup_desc = { - 0, - "vop_lookup", - 0, - vop_lookup_vp_offsets, - VOPARG_OFFSETOF(struct vop_lookup_args, a_vpp), - VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_lookup_args, a_cnp), - NULL, + NULL }; -int vop_cachedlookup_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_cachedlookup_args,a_dvp), + +int vnop_lookup_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_lookup_args,a_dvp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_cachedlookup_desc = { +struct vnodeop_desc vnop_lookup_desc = { 0, - "vop_cachedlookup", + "vnop_lookup", 0, - vop_cachedlookup_vp_offsets, - VOPARG_OFFSETOF(struct vop_cachedlookup_args, a_vpp), + vnop_lookup_vp_offsets, + VOPARG_OFFSETOF(struct vnop_lookup_args, a_vpp), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_cachedlookup_args, a_cnp), - NULL, + VOPARG_OFFSETOF(struct vnop_lookup_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_lookup_args, a_context), + NULL }; -int vop_create_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_create_args,a_dvp), +int vnop_create_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_create_args,a_dvp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_create_desc = { +struct vnodeop_desc vnop_create_desc = { 0, - "vop_create", + "vnop_create", 0 | VDESC_VP0_WILLRELE, - vop_create_vp_offsets, - VOPARG_OFFSETOF(struct vop_create_args, a_vpp), + vnop_create_vp_offsets, + VOPARG_OFFSETOF(struct vnop_create_args, a_vpp), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_create_args, a_cnp), - NULL, + VOPARG_OFFSETOF(struct vnop_create_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_create_args, a_context), + NULL }; -int vop_whiteout_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_whiteout_args,a_dvp), +int vnop_whiteout_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_whiteout_args,a_dvp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_whiteout_desc = { +struct vnodeop_desc vnop_whiteout_desc = { 0, - "vop_whiteout", + "vnop_whiteout", 0 | VDESC_VP0_WILLRELE, - vop_whiteout_vp_offsets, + vnop_whiteout_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_whiteout_args, a_cnp), - NULL, + VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context), + NULL }; -int vop_mknod_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_mknod_args,a_dvp), - VDESC_NO_OFFSET +int vnop_mknod_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_mknod_args,a_dvp), + VDESC_NO_OFFSET }; -struct vnodeop_desc vop_mknod_desc = { - 0, - "vop_mknod", - 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, - vop_mknod_vp_offsets, - VOPARG_OFFSETOF(struct vop_mknod_args, a_vpp), - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_mknod_args, a_cnp), - NULL, +struct vnodeop_desc vnop_mknod_desc = { + 0, + "vnop_mknod", + 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, + vnop_mknod_vp_offsets, + VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp), + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_mknod_args, a_context), + NULL }; -int vop_mkcomplex_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_mkcomplex_args,a_dvp), +int vnop_open_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_open_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_mkcomplex_desc = { +struct vnodeop_desc vnop_open_desc = { + 0, + "vnop_open", 0, - "vop_mkcomplex", - 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, - vop_mkcomplex_vp_offsets, - VOPARG_OFFSETOF(struct vop_mkcomplex_args, a_vpp), + vnop_open_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_mkcomplex_args, a_cnp), - NULL, -}; - -int vop_open_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_open_args,a_vp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_open_desc = { - 0, - "vop_open", - 0, - vop_open_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_open_args, a_cred), - VOPARG_OFFSETOF(struct vop_open_args, a_p), VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_open_args, a_context), + NULL }; -int vop_close_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_close_args,a_vp), +int vnop_close_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_close_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_close_desc = { +struct vnodeop_desc vnop_close_desc = { 0, - "vop_close", + "vnop_close", 0, - vop_close_vp_offsets, + vnop_close_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_close_args, a_cred), - VOPARG_OFFSETOF(struct vop_close_args, a_p), VDESC_NO_OFFSET, - NULL, -}; - -int vop_access_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_access_args,a_vp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_access_desc = { - 0, - "vop_access", - 0, - vop_access_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_access_args, a_cred), - VOPARG_OFFSETOF(struct vop_access_args, a_p), VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_close_args, a_context), + NULL }; -int vop_getattr_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_getattr_args,a_vp), +int vnop_access_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_access_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_getattr_desc = { +struct vnodeop_desc vnop_access_desc = { 0, - "vop_getattr", + "vnop_access", 0, - vop_getattr_vp_offsets, + vnop_access_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_getattr_args, a_cred), - VOPARG_OFFSETOF(struct vop_getattr_args, a_p), VDESC_NO_OFFSET, - NULL, -}; - -int vop_setattr_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_setattr_args,a_vp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_setattr_desc = { - 0, - "vop_setattr", - 0, - vop_setattr_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_setattr_args, a_cred), - VOPARG_OFFSETOF(struct vop_setattr_args, a_p), VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_close_args, a_context), + NULL }; -int vop_getattrlist_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_getattrlist_args,a_vp), +int vnop_getattr_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_getattr_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_getattrlist_desc = { +struct vnodeop_desc vnop_getattr_desc = { 0, - "vop_getattrlist", + "vnop_getattr", 0, - vop_getattrlist_vp_offsets, + vnop_getattr_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_getattrlist_args, a_cred), - VOPARG_OFFSETOF(struct vop_getattrlist_args, a_p), VDESC_NO_OFFSET, - NULL, -}; - -int vop_setattrlist_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_setattrlist_args,a_vp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_setattrlist_desc = { - 0, - "vop_setattrlist", - 0, - vop_setattrlist_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_setattrlist_args, a_cred), - VOPARG_OFFSETOF(struct vop_setattrlist_args, a_p), VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_getattr_args, a_context), + NULL }; -int vop_read_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_read_args,a_vp), +int vnop_setattr_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_setattr_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_read_desc = { +struct vnodeop_desc vnop_setattr_desc = { 0, - "vop_read", + "vnop_setattr", 0, - vop_read_vp_offsets, + vnop_setattr_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_read_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_setattr_args, a_context), + NULL }; -int vop_write_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_write_args,a_vp), +int vnop_read_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_read_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_write_desc = { +struct vnodeop_desc vnop_read_desc = { 0, - "vop_write", + "vnop_read", 0, - vop_write_vp_offsets, + vnop_read_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_write_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_read_args, a_context), + NULL }; -int vop_lease_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_lease_args,a_vp), +int vnop_write_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_write_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_lease_desc = { +struct vnodeop_desc vnop_write_desc = { 0, - "vop_lease", + "vnop_write", 0, - vop_lease_vp_offsets, + vnop_write_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_lease_args, a_cred), - VOPARG_OFFSETOF(struct vop_lease_args, a_p), VDESC_NO_OFFSET, - NULL, -}; - -int vop_ioctl_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_ioctl_args,a_vp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_ioctl_desc = { - 0, - "vop_ioctl", - 0, - vop_ioctl_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_ioctl_args, a_cred), - VOPARG_OFFSETOF(struct vop_ioctl_args, a_p), VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_write_args, a_context), + NULL }; -int vop_select_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_select_args,a_vp), +int vnop_ioctl_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_ioctl_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_select_desc = { +struct vnodeop_desc vnop_ioctl_desc = { 0, - "vop_select", + "vnop_ioctl", 0, - vop_select_vp_offsets, + vnop_ioctl_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_select_args, a_cred), - VOPARG_OFFSETOF(struct vop_select_args, a_p), VDESC_NO_OFFSET, - NULL, -}; - -int vop_exchange_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_exchange_args,a_fvp), - VOPARG_OFFSETOF(struct vop_exchange_args,a_tvp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_exchange_desc = { - 0, - "vop_exchange", - 0, - vop_exchange_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_exchange_args, a_cred), - VOPARG_OFFSETOF(struct vop_exchange_args, a_p), VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context), + NULL }; -int vop_kqfilt_add_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_kqfilt_add_args,a_vp), +int vnop_select_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_select_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_kqfilt_add_desc = { +struct vnodeop_desc vnop_select_desc = { 0, - "vop_kqfilt_add", + "vnop_select", 0, - vop_kqfilt_add_vp_offsets, + vnop_select_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_kqfilt_add_args, a_p), VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_select_args, a_context), + NULL }; -int vop_kqfilt_remove_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_kqfilt_remove_args,a_vp), +int vnop_exchange_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_exchange_args,a_fvp), + VOPARG_OFFSETOF(struct vnop_exchange_args,a_tvp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_kqfilt_remove_desc = { +struct vnodeop_desc vnop_exchange_desc = { 0, - "vop_kqfilt_remove", + "vnop_exchange", 0, - vop_kqfilt_remove_vp_offsets, + vnop_exchange_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_kqfilt_remove_args, a_p), VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_exchange_args, a_context), + NULL }; -int vop_revoke_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_revoke_args,a_vp), +int vnop_kqfilt_add_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_kqfilt_add_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_revoke_desc = { +struct vnodeop_desc vnop_kqfilt_add_desc = { 0, - "vop_revoke", + "vnop_kqfilt_add", 0, - vop_revoke_vp_offsets, + vnop_kqfilt_add_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context), + NULL }; -int vop_mmap_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_mmap_args,a_vp), +int vnop_kqfilt_remove_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_mmap_desc = { +struct vnodeop_desc vnop_kqfilt_remove_desc = { 0, - "vop_mmap", + "vnop_kqfilt_remove", 0, - vop_mmap_vp_offsets, + vnop_kqfilt_remove_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_mmap_args, a_cred), - VOPARG_OFFSETOF(struct vop_mmap_args, a_p), VDESC_NO_OFFSET, - NULL, -}; - -int vop_fsync_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_fsync_args,a_vp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_fsync_desc = { - 0, - "vop_fsync", - 0, - vop_fsync_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_fsync_args, a_cred), - VOPARG_OFFSETOF(struct vop_fsync_args, a_p), VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context), + NULL }; -int vop_seek_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_seek_args,a_vp), +int vnop_setlabel_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_setlabel_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_seek_desc = { +struct vnodeop_desc vnop_setlabel_desc = { 0, - "vop_seek", + "vnop_setlabel", 0, - vop_seek_vp_offsets, + vnop_setlabel_vp_offsets, + VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_seek_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_setlabel_args, a_context), NULL, }; -int vop_remove_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_remove_args,a_dvp), - VOPARG_OFFSETOF(struct vop_remove_args,a_vp), +int vnop_revoke_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_revoke_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_remove_desc = { +struct vnodeop_desc vnop_revoke_desc = { 0, - "vop_remove", - 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, - vop_remove_vp_offsets, + "vnop_revoke", + 0, + vnop_revoke_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_remove_args, a_cnp), - NULL, -}; - -int vop_link_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_link_args,a_vp), - VOPARG_OFFSETOF(struct vop_link_args,a_tdvp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_link_desc = { - 0, - "vop_link", - 0 | VDESC_VP1_WILLRELE, - vop_link_vp_offsets, - VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_link_args, a_cnp), - NULL, + NULL }; -int vop_rename_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_rename_args,a_fdvp), - VOPARG_OFFSETOF(struct vop_rename_args,a_fvp), - VOPARG_OFFSETOF(struct vop_rename_args,a_tdvp), - VOPARG_OFFSETOF(struct vop_rename_args,a_tvp), + +int vnop_mmap_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_mmap_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_rename_desc = { +struct vnodeop_desc vnop_mmap_desc = { 0, - "vop_rename", - 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE, - vop_rename_vp_offsets, + "vnop_mmap", + 0, + vnop_mmap_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_rename_args, a_fcnp), - NULL, -}; - -int vop_mkdir_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_mkdir_args,a_dvp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_mkdir_desc = { - 0, - "vop_mkdir", - 0 | VDESC_VP0_WILLRELE, - vop_mkdir_vp_offsets, - VOPARG_OFFSETOF(struct vop_mkdir_args, a_vpp), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_mkdir_args, a_cnp), - NULL, + NULL }; -int vop_rmdir_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_rmdir_args,a_dvp), - VOPARG_OFFSETOF(struct vop_rmdir_args,a_vp), + +int vnop_mnomap_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_mnomap_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_rmdir_desc = { +struct vnodeop_desc vnop_mnomap_desc = { 0, - "vop_rmdir", - 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, - vop_rmdir_vp_offsets, + "vnop_mnomap", + 0, + vnop_mnomap_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_rmdir_args, a_cnp), - NULL, -}; - -int vop_symlink_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_symlink_args,a_dvp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_symlink_desc = { - 0, - "vop_symlink", - 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, - vop_symlink_vp_offsets, - VOPARG_OFFSETOF(struct vop_symlink_args, a_vpp), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_symlink_args, a_cnp), - NULL, + NULL }; -int vop_readdir_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_readdir_args,a_vp), + +int vnop_fsync_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_fsync_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_readdir_desc = { +struct vnodeop_desc vnop_fsync_desc = { 0, - "vop_readdir", + "vnop_fsync", 0, - vop_readdir_vp_offsets, + vnop_fsync_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_readdir_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_fsync_args, a_context), + NULL }; -int vop_readdirattr_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_readdirattr_args,a_vp), +int vnop_remove_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp), + VOPARG_OFFSETOF(struct vnop_remove_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_readdirattr_desc = { +struct vnodeop_desc vnop_remove_desc = { 0, - "vop_readdirattr", - 0, - vop_readdirattr_vp_offsets, + "vnop_remove", + 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, + vnop_remove_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_readdirattr_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_remove_args, a_context), + NULL }; -int vop_readlink_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_readlink_args,a_vp), +int vnop_link_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_link_args,a_vp), + VOPARG_OFFSETOF(struct vnop_link_args,a_tdvp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_readlink_desc = { +struct vnodeop_desc vnop_link_desc = { 0, - "vop_readlink", - 0, - vop_readlink_vp_offsets, + "vnop_link", + 0 | VDESC_VP1_WILLRELE, + vnop_link_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_readlink_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_link_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_link_args, a_context), + NULL }; -int vop_abortop_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_abortop_args,a_dvp), +int vnop_rename_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_rename_args,a_fdvp), + VOPARG_OFFSETOF(struct vnop_rename_args,a_fvp), + VOPARG_OFFSETOF(struct vnop_rename_args,a_tdvp), + VOPARG_OFFSETOF(struct vnop_rename_args,a_tvp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_abortop_desc = { +struct vnodeop_desc vnop_rename_desc = { 0, - "vop_abortop", - 0, - vop_abortop_vp_offsets, + "vnop_rename", + 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE, + vnop_rename_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_abortop_args, a_cnp), - NULL, + VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp), + VOPARG_OFFSETOF(struct vnop_rename_args, a_context), + NULL }; -int vop_inactive_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_inactive_args,a_vp), - VDESC_NO_OFFSET +int vnop_mkdir_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_mkdir_args,a_dvp), + VDESC_NO_OFFSET }; -struct vnodeop_desc vop_inactive_desc = { - 0, - "vop_inactive", - 0, - vop_inactive_vp_offsets, - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_inactive_args, a_p), - VDESC_NO_OFFSET, - NULL, +struct vnodeop_desc vnop_mkdir_desc = { + 0, + "vnop_mkdir", + 0 | VDESC_VP0_WILLRELE, + vnop_mkdir_vp_offsets, + VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp), + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context), + NULL }; -int vop_reclaim_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_reclaim_args,a_vp), +int vnop_rmdir_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp), + VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_reclaim_desc = { - 0, - "vop_reclaim", +struct vnodeop_desc vnop_rmdir_desc = { 0, - vop_reclaim_vp_offsets, + "vnop_rmdir", + 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, + vnop_rmdir_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_reclaim_args, a_p), VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context), + NULL }; -int vop_lock_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_lock_args,a_vp), - VDESC_NO_OFFSET +int vnop_symlink_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_symlink_args,a_dvp), + VDESC_NO_OFFSET }; -struct vnodeop_desc vop_lock_desc = { - 0, - "vop_lock", - 0, - vop_lock_vp_offsets, - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_lock_args, a_p), - VDESC_NO_OFFSET, - NULL, +struct vnodeop_desc vnop_symlink_desc = { + 0, + "vnop_symlink", + 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, + vnop_symlink_vp_offsets, + VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp), + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_symlink_args, a_context), + NULL }; -int vop_unlock_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_unlock_args,a_vp), +int vnop_readdir_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_readdir_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_unlock_desc = { +struct vnodeop_desc vnop_readdir_desc = { 0, - "vop_unlock", + "vnop_readdir", 0, - vop_unlock_vp_offsets, + vnop_readdir_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_unlock_args, a_p), VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_symlink_args, a_context), + NULL }; -int vop_bmap_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_bmap_args,a_vp), +int vnop_readdirattr_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_readdirattr_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_bmap_desc = { +struct vnodeop_desc vnop_readdirattr_desc = { 0, - "vop_bmap", + "vnop_readdirattr", 0, - vop_bmap_vp_offsets, - VOPARG_OFFSETOF(struct vop_bmap_args, a_vpp), + vnop_readdirattr_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context), + NULL }; -int vop_print_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_print_args,a_vp), +int vnop_readlink_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_readlink_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_print_desc = { +struct vnodeop_desc vnop_readlink_desc = { 0, - "vop_print", + "vnop_readlink", 0, - vop_print_vp_offsets, + vnop_readlink_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_readlink_args, a_context), + NULL }; -int vop_islocked_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_islocked_args,a_vp), +int vnop_inactive_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_inactive_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_islocked_desc = { +struct vnodeop_desc vnop_inactive_desc = { 0, - "vop_islocked", + "vnop_inactive", 0, - vop_islocked_vp_offsets, + vnop_inactive_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_inactive_args, a_context), + NULL }; -int vop_pathconf_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_pathconf_args,a_vp), +int vnop_reclaim_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_reclaim_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_pathconf_desc = { +struct vnodeop_desc vnop_reclaim_desc = { 0, - "vop_pathconf", + "vnop_reclaim", 0, - vop_pathconf_vp_offsets, + vnop_reclaim_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context), + NULL }; -int vop_advlock_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_advlock_args,a_vp), +int vnop_pathconf_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_pathconf_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_advlock_desc = { +struct vnodeop_desc vnop_pathconf_desc = { 0, - "vop_advlock", + "vnop_pathconf", 0, - vop_advlock_vp_offsets, + vnop_pathconf_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context), + NULL }; -int vop_blkatoff_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_blkatoff_args,a_vp), +int vnop_advlock_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_advlock_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_blkatoff_desc = { +struct vnodeop_desc vnop_advlock_desc = { 0, - "vop_blkatoff", + "vnop_advlock", 0, - vop_blkatoff_vp_offsets, + vnop_advlock_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_advlock_args, a_context), + NULL }; -int vop_valloc_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_valloc_args,a_pvp), +int vnop_allocate_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_allocate_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_valloc_desc = { +struct vnodeop_desc vnop_allocate_desc = { 0, - "vop_valloc", + "vnop_allocate", 0, - vop_valloc_vp_offsets, - VOPARG_OFFSETOF(struct vop_valloc_args, a_vpp), - VOPARG_OFFSETOF(struct vop_valloc_args, a_cred), + vnop_allocate_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_allocate_args, a_context), + NULL }; -int vop_reallocblks_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_reallocblks_args,a_vp), +int vnop_pagein_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_pagein_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_reallocblks_desc = { +struct vnodeop_desc vnop_pagein_desc = { 0, - "vop_reallocblks", + "vnop_pagein", 0, - vop_reallocblks_vp_offsets, + vnop_pagein_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_pagein_args, a_context), + NULL }; -int vop_vfree_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_vfree_args,a_pvp), +int vnop_pageout_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_pageout_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_vfree_desc = { +struct vnodeop_desc vnop_pageout_desc = { 0, - "vop_vfree", + "vnop_pageout", 0, - vop_vfree_vp_offsets, + vnop_pageout_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_pageout_args, a_context), + NULL }; -int vop_truncate_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_truncate_args,a_vp), +int vnop_searchfs_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_searchfs_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_truncate_desc = { +struct vnodeop_desc vnop_searchfs_desc = { 0, - "vop_truncate", + "vnop_searchfs", 0, - vop_truncate_vp_offsets, + vnop_searchfs_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_truncate_args, a_cred), - VOPARG_OFFSETOF(struct vop_truncate_args, a_p), VDESC_NO_OFFSET, - NULL, -}; - -int vop_allocate_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_allocate_args,a_vp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vop_allocate_desc = { - 0, - "vop_allocate", - 0, - vop_allocate_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_allocate_args, a_cred), - VOPARG_OFFSETOF(struct vop_allocate_args, a_p), VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; -int vop_update_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_update_args,a_vp), +int vnop_copyfile_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_copyfile_args,a_fvp), + VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tdvp), + VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tvp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_update_desc = { - 0, - "vop_update", +struct vnodeop_desc vnop_copyfile_desc = { 0, - vop_update_vp_offsets, + "vnop_copyfile", + 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE, + vnop_copyfile_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp), VDESC_NO_OFFSET, - NULL, + NULL }; -int vop_pgrd_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_pgrd_args,a_vp), +int vop_getxattr_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_getxattr_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_pgrd_desc = { +struct vnodeop_desc vnop_getxattr_desc = { 0, - "vop_pgrd", + "vnop_getxattr", 0, - vop_pgrd_vp_offsets, + vop_getxattr_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_pgrd_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context), + NULL }; -int vop_pgwr_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_pgwr_args,a_vp), +int vop_setxattr_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_setxattr_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_pgwr_desc = { +struct vnodeop_desc vnop_setxattr_desc = { 0, - "vop_pgwr", + "vnop_setxattr", 0, - vop_pgwr_vp_offsets, + vop_setxattr_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_pgwr_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context), + NULL }; -int vop_pagein_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_pagein_args,a_vp), +int vop_removexattr_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_removexattr_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_pagein_desc = { +struct vnodeop_desc vnop_removexattr_desc = { 0, - "vop_pagein", + "vnop_removexattr", 0, - vop_pagein_vp_offsets, + vop_removexattr_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_pagein_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context), + NULL }; -int vop_pageout_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_pageout_args,a_vp), +int vop_listxattr_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_listxattr_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_pageout_desc = { +struct vnodeop_desc vnop_listxattr_desc = { 0, - "vop_pageout", + "vnop_listxattr", 0, - vop_pageout_vp_offsets, + vop_listxattr_vp_offsets, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_pageout_args, a_cred), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context), + NULL }; -int vop_devblocksize_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_devblocksize_args,a_vp), +int vnop_blktooff_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_blktooff_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_devblocksize_desc = { +struct vnodeop_desc vnop_blktooff_desc = { 0, - "vop_devblocksize", + "vnop_blktooff", 0, - vop_devblocksize_vp_offsets, + vnop_blktooff_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; -int vop_searchfs_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_searchfs_args,a_vp), +int vnop_offtoblk_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_offtoblk_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_searchfs_desc = { +struct vnodeop_desc vnop_offtoblk_desc = { 0, - "vop_searchfs", + "vnop_offtoblk", 0, - vop_searchfs_vp_offsets, + vnop_offtoblk_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; -int vop_copyfile_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_copyfile_args,a_fvp), - VOPARG_OFFSETOF(struct vop_copyfile_args,a_tdvp), - VOPARG_OFFSETOF(struct vop_copyfile_args,a_tvp), +int vnop_blockmap_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_blockmap_args,a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_copyfile_desc = { +struct vnodeop_desc vnop_blockmap_desc = { 0, - "vop_copyfile", - 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE, - vop_copyfile_vp_offsets, + "vnop_blockmap", + 0, + vnop_blockmap_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vop_copyfile_args, a_tcnp), - NULL, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + NULL }; -int vop_blktooff_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_blktooff_args,a_vp), +#if NAMEDSTREAMS +int vnop_getnamedstream_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_blktooff_desc = { +struct vnodeop_desc vnop_getnamedstream_desc = { 0, - "vop_blktooff", + "vnop_getnamedstream", 0, - vop_blktooff_vp_offsets, - VDESC_NO_OFFSET, + vnop_getnamedstream_vp_offsets, + VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name), + VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context), + NULL }; -int vop_offtoblk_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_offtoblk_args,a_vp), +int vnop_makenamedstream_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_offtoblk_desc = { - 0, - "vop_offtoblk", +struct vnodeop_desc vnop_makenamedstream_desc = { 0, - vop_offtoblk_vp_offsets, - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, + "vnop_makenamedstream", + 0, /* flags */ + vnop_makenamedstream_vp_offsets, + VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp), VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name), + VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context), + NULL }; -int vop_cmap_vp_offsets[] = { - VOPARG_OFFSETOF(struct vop_cmap_args,a_vp), +int vnop_removenamedstream_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp), VDESC_NO_OFFSET }; -struct vnodeop_desc vop_cmap_desc = { +struct vnodeop_desc vnop_removenamedstream_desc = { 0, - "vop_cmap", + "vnop_removenamedstream", 0, - vop_cmap_vp_offsets, + vnop_removenamedstream_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - NULL, + VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_name), + VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_context), + NULL }; +#else +/* These symbols are in the exports list so they need to always be defined. */ +int vnop_getnamedstream_desc; +int vnop_makenamedstream_desc; +int vnop_removenamedstream_desc; +#endif /* Special cases: */ -int vop_strategy_vp_offsets[] = { +int vnop_strategy_vp_offsets[] = { VDESC_NO_OFFSET }; -struct vnodeop_desc vop_strategy_desc = { +struct vnodeop_desc vnop_strategy_desc = { 0, - "vop_strategy", + "vnop_strategy", 0, - vop_strategy_vp_offsets, + vnop_strategy_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; -int vop_bwrite_vp_offsets[] = { +int vnop_bwrite_vp_offsets[] = { VDESC_NO_OFFSET }; -struct vnodeop_desc vop_bwrite_desc = { +struct vnodeop_desc vnop_bwrite_desc = { 0, - "vop_bwrite", + "vnop_bwrite", 0, - vop_bwrite_vp_offsets, + vnop_bwrite_vp_offsets, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; /* End of special cases. */ struct vnodeop_desc *vfs_op_descs[] = { - &vop_default_desc, /* MUST BE FIRST */ - &vop_strategy_desc, /* XXX: SPECIAL CASE */ - &vop_bwrite_desc, /* XXX: SPECIAL CASE */ - - &vop_lookup_desc, - &vop_cachedlookup_desc, - &vop_create_desc, - &vop_whiteout_desc, - &vop_mknod_desc, - &vop_mkcomplex_desc, - &vop_open_desc, - &vop_close_desc, - &vop_access_desc, - &vop_getattr_desc, - &vop_setattr_desc, - &vop_getattrlist_desc, - &vop_setattrlist_desc, - &vop_read_desc, - &vop_write_desc, - &vop_lease_desc, - &vop_ioctl_desc, - &vop_select_desc, - &vop_exchange_desc, - &vop_kqfilt_add_desc, - &vop_kqfilt_remove_desc, - &vop_revoke_desc, - &vop_mmap_desc, - &vop_fsync_desc, - &vop_seek_desc, - &vop_remove_desc, - &vop_link_desc, - &vop_rename_desc, - &vop_mkdir_desc, - &vop_rmdir_desc, - &vop_symlink_desc, - &vop_readdir_desc, - &vop_readdirattr_desc, - &vop_readlink_desc, - &vop_abortop_desc, - &vop_inactive_desc, - &vop_reclaim_desc, - &vop_lock_desc, - &vop_unlock_desc, - &vop_bmap_desc, - &vop_print_desc, - &vop_islocked_desc, - &vop_pathconf_desc, - &vop_advlock_desc, - &vop_blkatoff_desc, - &vop_valloc_desc, - &vop_reallocblks_desc, - &vop_vfree_desc, - &vop_truncate_desc, - &vop_allocate_desc, - &vop_update_desc, - &vop_pgrd_desc, - &vop_pgwr_desc, - &vop_pagein_desc, - &vop_pageout_desc, - &vop_devblocksize_desc, - &vop_searchfs_desc, - &vop_copyfile_desc, - &vop_blktooff_desc, - &vop_offtoblk_desc, - &vop_cmap_desc, + &vnop_default_desc, /* MUST BE FIRST */ + &vnop_strategy_desc, /* XXX: SPECIAL CASE */ + &vnop_bwrite_desc, /* XXX: SPECIAL CASE */ + + &vnop_lookup_desc, + &vnop_create_desc, + &vnop_mknod_desc, + &vnop_whiteout_desc, + &vnop_open_desc, + &vnop_close_desc, + &vnop_access_desc, + &vnop_getattr_desc, + &vnop_setattr_desc, + &vnop_read_desc, + &vnop_write_desc, + &vnop_ioctl_desc, + &vnop_select_desc, + &vnop_exchange_desc, + &vnop_kqfilt_add_desc, + &vnop_kqfilt_remove_desc, + &vnop_setlabel_desc, + &vnop_revoke_desc, + &vnop_mmap_desc, + &vnop_mnomap_desc, + &vnop_fsync_desc, + &vnop_remove_desc, + &vnop_link_desc, + &vnop_rename_desc, + &vnop_mkdir_desc, + &vnop_rmdir_desc, + &vnop_symlink_desc, + &vnop_readdir_desc, + &vnop_readdirattr_desc, + &vnop_readlink_desc, + &vnop_inactive_desc, + &vnop_reclaim_desc, + &vnop_pathconf_desc, + &vnop_advlock_desc, + &vnop_allocate_desc, + &vnop_pagein_desc, + &vnop_pageout_desc, + &vnop_searchfs_desc, + &vnop_copyfile_desc, + &vnop_getxattr_desc, + &vnop_setxattr_desc, + &vnop_removexattr_desc, + &vnop_listxattr_desc, + &vnop_blktooff_desc, + &vnop_offtoblk_desc, + &vnop_blockmap_desc, +#if NAMEDSTREAMS + &vnop_getnamedstream_desc, + &vnop_makenamedstream_desc, + &vnop_removenamedstream_desc, +#endif NULL };