X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/89b3af67bb32e691275bf6fa803d1834b2284115..fe8ab488e9161c46dd9885d58fc52996dc0249ff:/bsd/vfs/vnode_if.c diff --git a/bsd/vfs/vnode_if.c b/bsd/vfs/vnode_if.c index bad48873e..1fc9bd7df 100644 --- a/bsd/vfs/vnode_if.c +++ b/bsd/vfs/vnode_if.c @@ -1,6 +1,6 @@ /* - * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2014 Apple Computer, Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * @@ -84,7 +84,8 @@ struct vnodeop_desc vnop_default_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; @@ -102,7 +103,25 @@ struct vnodeop_desc vnop_lookup_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_lookup_args, a_cnp), VOPARG_OFFSETOF(struct vnop_lookup_args, a_context), - NULL, + NULL +}; + +int vnop_compound_open_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_compound_open_args, a_dvp), + VDESC_NO_OFFSET +}; + +struct vnodeop_desc vnop_compound_open_desc = { + 0, + "vnop_compound_open", + 0 | VDESC_VP0_WILLRELE, + vnop_compound_open_vp_offsets, + VOPARG_OFFSETOF(struct vnop_compound_open_args, a_vpp), + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_compound_open_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_compound_open_args, a_context), + NULL }; int vnop_create_vp_offsets[] = { @@ -119,7 +138,7 @@ struct vnodeop_desc vnop_create_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_create_args, a_cnp), VOPARG_OFFSETOF(struct vnop_create_args, a_context), - NULL, + NULL }; int vnop_whiteout_vp_offsets[] = { @@ -136,7 +155,7 @@ struct vnodeop_desc vnop_whiteout_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp), VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context), - NULL, + NULL }; int vnop_mknod_vp_offsets[] = { @@ -153,7 +172,7 @@ struct vnodeop_desc vnop_mknod_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp), VOPARG_OFFSETOF(struct vnop_mknod_args, a_context), - NULL, + NULL }; int vnop_open_vp_offsets[] = { @@ -170,7 +189,7 @@ struct vnodeop_desc vnop_open_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_open_args, a_context), - NULL, + NULL }; int vnop_close_vp_offsets[] = { @@ -187,7 +206,7 @@ struct vnodeop_desc vnop_close_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_close_args, a_context), - NULL, + NULL }; int vnop_access_vp_offsets[] = { @@ -204,7 +223,7 @@ struct vnodeop_desc vnop_access_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_close_args, a_context), - NULL, + NULL }; int vnop_getattr_vp_offsets[] = { @@ -221,7 +240,7 @@ struct vnodeop_desc vnop_getattr_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_getattr_args, a_context), - NULL, + NULL }; int vnop_setattr_vp_offsets[] = { @@ -238,41 +257,7 @@ struct vnodeop_desc vnop_setattr_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_setattr_args, a_context), - NULL, -}; - -int vnop_getattrlist_vp_offsets[] = { - VOPARG_OFFSETOF(struct vnop_getattrlist_args,a_vp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vnop_getattrlist_desc = { - 0, - "vnop_getattrlist", - 0, - vnop_getattrlist_vp_offsets, - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vnop_getattrlist_args, a_context), - NULL, -}; - -int vnop_setattrlist_vp_offsets[] = { - VOPARG_OFFSETOF(struct vnop_setattrlist_args,a_vp), - VDESC_NO_OFFSET -}; -struct vnodeop_desc vnop_setattrlist_desc = { - 0, - "vnop_setattrlist", - 0, - vnop_setattrlist_vp_offsets, - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - VDESC_NO_OFFSET, - VOPARG_OFFSETOF(struct vnop_setattrlist_args, a_context), - NULL, + NULL }; int vnop_read_vp_offsets[] = { @@ -289,7 +274,7 @@ struct vnodeop_desc vnop_read_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_read_args, a_context), - NULL, + NULL }; int vnop_write_vp_offsets[] = { @@ -306,7 +291,7 @@ struct vnodeop_desc vnop_write_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_write_args, a_context), - NULL, + NULL }; int vnop_ioctl_vp_offsets[] = { @@ -323,7 +308,7 @@ struct vnodeop_desc vnop_ioctl_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context), - NULL, + NULL }; int vnop_select_vp_offsets[] = { @@ -340,8 +325,7 @@ struct vnodeop_desc vnop_select_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_select_args, a_context), - VDESC_NO_OFFSET, - NULL, + NULL }; int vnop_exchange_vp_offsets[] = { @@ -359,7 +343,7 @@ struct vnodeop_desc vnop_exchange_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_exchange_args, a_context), - NULL, + NULL }; int vnop_kqfilt_add_vp_offsets[] = { @@ -376,7 +360,7 @@ struct vnodeop_desc vnop_kqfilt_add_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context), - NULL, + NULL }; int vnop_kqfilt_remove_vp_offsets[] = { @@ -393,6 +377,40 @@ struct vnodeop_desc vnop_kqfilt_remove_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context), + NULL +}; + +int vnop_monitor_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_monitor_args,a_vp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_monitor_desc = { + 0, + "vnop_monitor", + 0, + vnop_monitor_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_monitor_args, a_context), + NULL +}; + +int vnop_setlabel_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_setlabel_args,a_vp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_setlabel_desc = { + 0, + "vnop_setlabel", + 0, + vnop_setlabel_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_setlabel_args, a_context), NULL, }; @@ -409,7 +427,8 @@ struct vnodeop_desc vnop_revoke_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; @@ -426,7 +445,8 @@ struct vnodeop_desc vnop_mmap_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; @@ -443,7 +463,8 @@ struct vnodeop_desc vnop_mnomap_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; @@ -461,7 +482,7 @@ struct vnodeop_desc vnop_fsync_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_fsync_args, a_context), - NULL, + NULL }; int vnop_remove_vp_offsets[] = { @@ -479,7 +500,24 @@ struct vnodeop_desc vnop_remove_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp), VOPARG_OFFSETOF(struct vnop_remove_args, a_context), - NULL, + NULL +}; + +int vnop_remove_extended_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_compound_remove_desc = { + 0, + "vnop_compound_remove", + 0, + vnop_remove_vp_offsets, + VOPARG_OFFSETOF(struct vnop_compound_remove_args, a_vpp), + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_remove_args, a_context), + NULL }; int vnop_link_vp_offsets[] = { @@ -497,7 +535,7 @@ struct vnodeop_desc vnop_link_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_link_args, a_cnp), VOPARG_OFFSETOF(struct vnop_link_args, a_context), - NULL, + NULL }; int vnop_rename_vp_offsets[] = { @@ -517,7 +555,27 @@ struct vnodeop_desc vnop_rename_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp), VOPARG_OFFSETOF(struct vnop_rename_args, a_context), - NULL, + NULL +}; + +int vnop_compound_rename_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_fdvp), + VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_fvpp), + VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_tdvp), + VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_tvpp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_compound_rename_desc = { + 0, + "vnop_compound_rename", + 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE, + vnop_compound_rename_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fcnp), + VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_context), + NULL }; int vnop_mkdir_vp_offsets[] = { @@ -534,9 +592,27 @@ struct vnodeop_desc vnop_mkdir_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp), VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context), - NULL, + NULL +}; + +int vnop_compound_mkdir_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_compound_mkdir_args,a_dvp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_compound_mkdir_desc = { + 0, + "vnop_compound_mkdir", + 0 | VDESC_VP0_WILLRELE, + vnop_compound_mkdir_vp_offsets, + VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_vpp), + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_context), + NULL }; + int vnop_rmdir_vp_offsets[] = { VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp), VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp), @@ -552,7 +628,24 @@ struct vnodeop_desc vnop_rmdir_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp), VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context), - NULL, + NULL +}; + +int vnop_compound_rmdir_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_compound_rmdir_args,a_dvp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_compound_rmdir_desc = { + 0, + "vnop_compound_rmdir", + 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, + vnop_rmdir_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_cnp), + VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_context), + NULL }; int vnop_symlink_vp_offsets[] = { @@ -569,7 +662,7 @@ struct vnodeop_desc vnop_symlink_desc = { VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp), VOPARG_OFFSETOF(struct vnop_symlink_args, a_context), - NULL, + NULL }; int vnop_readdir_vp_offsets[] = { @@ -586,7 +679,7 @@ struct vnodeop_desc vnop_readdir_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_symlink_args, a_context), - NULL, + NULL }; int vnop_readdirattr_vp_offsets[] = { @@ -603,7 +696,24 @@ struct vnodeop_desc vnop_readdirattr_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context), - NULL, + NULL +}; + +int vnop_getattrlistbulk_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args,a_vp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_getattrlistbulk_desc = { + 0, + "vnop_getattrlistbulk", + 0, + vnop_getattrlistbulk_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_context), + NULL }; int vnop_readlink_vp_offsets[] = { @@ -620,7 +730,7 @@ struct vnodeop_desc vnop_readlink_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_readlink_args, a_context), - NULL, + NULL }; int vnop_inactive_vp_offsets[] = { @@ -637,7 +747,7 @@ struct vnodeop_desc vnop_inactive_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_inactive_args, a_context), - NULL, + NULL }; int vnop_reclaim_vp_offsets[] = { @@ -654,7 +764,7 @@ struct vnodeop_desc vnop_reclaim_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context), - NULL, + NULL }; int vnop_pathconf_vp_offsets[] = { @@ -671,7 +781,7 @@ struct vnodeop_desc vnop_pathconf_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context), - NULL, + NULL }; int vnop_advlock_vp_offsets[] = { @@ -688,7 +798,7 @@ struct vnodeop_desc vnop_advlock_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_advlock_args, a_context), - NULL, + NULL }; int vnop_allocate_vp_offsets[] = { @@ -705,7 +815,7 @@ struct vnodeop_desc vnop_allocate_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_allocate_args, a_context), - NULL, + NULL }; int vnop_pagein_vp_offsets[] = { @@ -722,7 +832,7 @@ struct vnodeop_desc vnop_pagein_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_pagein_args, a_context), - NULL, + NULL }; int vnop_pageout_vp_offsets[] = { @@ -739,7 +849,7 @@ struct vnodeop_desc vnop_pageout_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_pageout_args, a_context), - NULL, + NULL }; int vnop_searchfs_vp_offsets[] = { @@ -755,7 +865,8 @@ struct vnodeop_desc vnop_searchfs_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; int vnop_copyfile_vp_offsets[] = { @@ -773,7 +884,8 @@ struct vnodeop_desc vnop_copyfile_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp), - NULL, + VDESC_NO_OFFSET, + NULL }; int vop_getxattr_vp_offsets[] = { @@ -790,7 +902,7 @@ struct vnodeop_desc vnop_getxattr_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context), - NULL, + NULL }; int vop_setxattr_vp_offsets[] = { @@ -807,7 +919,7 @@ struct vnodeop_desc vnop_setxattr_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context), - NULL, + NULL }; int vop_removexattr_vp_offsets[] = { @@ -824,7 +936,7 @@ struct vnodeop_desc vnop_removexattr_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context), - NULL, + NULL }; int vop_listxattr_vp_offsets[] = { @@ -841,7 +953,7 @@ struct vnodeop_desc vnop_listxattr_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context), - NULL, + NULL }; int vnop_blktooff_vp_offsets[] = { @@ -857,7 +969,8 @@ struct vnodeop_desc vnop_blktooff_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; int vnop_offtoblk_vp_offsets[] = { @@ -873,7 +986,8 @@ struct vnodeop_desc vnop_offtoblk_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; int vnop_blockmap_vp_offsets[] = { @@ -889,9 +1003,68 @@ struct vnodeop_desc vnop_blockmap_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL +}; + +#if NAMEDSTREAMS +int vnop_getnamedstream_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_getnamedstream_desc = { + 0, + "vnop_getnamedstream", + 0, + vnop_getnamedstream_vp_offsets, + VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp), + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name), + VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context), + NULL }; +int vnop_makenamedstream_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_makenamedstream_desc = { + 0, + "vnop_makenamedstream", + 0, /* flags */ + vnop_makenamedstream_vp_offsets, + VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp), + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name), + VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context), + NULL +}; + +int vnop_removenamedstream_vp_offsets[] = { + VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp), + VDESC_NO_OFFSET +}; +struct vnodeop_desc vnop_removenamedstream_desc = { + 0, + "vnop_removenamedstream", + 0, + vnop_removenamedstream_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + 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 vnop_strategy_vp_offsets[] = { @@ -906,7 +1079,8 @@ struct vnodeop_desc vnop_strategy_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; int vnop_bwrite_vp_offsets[] = { @@ -921,7 +1095,8 @@ struct vnodeop_desc vnop_bwrite_desc = { VDESC_NO_OFFSET, VDESC_NO_OFFSET, VDESC_NO_OFFSET, - NULL, + VDESC_NO_OFFSET, + NULL }; /* End of special cases. */ @@ -936,12 +1111,11 @@ struct vnodeop_desc *vfs_op_descs[] = { &vnop_mknod_desc, &vnop_whiteout_desc, &vnop_open_desc, + &vnop_compound_open_desc, &vnop_close_desc, &vnop_access_desc, &vnop_getattr_desc, &vnop_setattr_desc, - &vnop_getattrlist_desc, - &vnop_setattrlist_desc, &vnop_read_desc, &vnop_write_desc, &vnop_ioctl_desc, @@ -949,18 +1123,24 @@ struct vnodeop_desc *vfs_op_descs[] = { &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_compound_remove_desc, &vnop_link_desc, &vnop_rename_desc, + &vnop_compound_rename_desc, &vnop_mkdir_desc, + &vnop_compound_mkdir_desc, &vnop_rmdir_desc, + &vnop_compound_rmdir_desc, &vnop_symlink_desc, &vnop_readdir_desc, &vnop_readdirattr_desc, + &vnop_getattrlistbulk_desc, &vnop_readlink_desc, &vnop_inactive_desc, &vnop_reclaim_desc, @@ -978,6 +1158,12 @@ struct vnodeop_desc *vfs_op_descs[] = { &vnop_blktooff_desc, &vnop_offtoblk_desc, &vnop_blockmap_desc, + &vnop_monitor_desc, +#if NAMEDSTREAMS + &vnop_getnamedstream_desc, + &vnop_makenamedstream_desc, + &vnop_removenamedstream_desc, +#endif NULL };