# HG changeset patch # Parent c8b7dd680f82af6a02427501cb26af2c8d09fb93 Regen for VOP_FALLOCATE/VOP_FDISCARD. diff -r c8b7dd680f82 sys/kern/vnode_if.c --- a/sys/kern/vnode_if.c Sun Mar 23 02:53:37 2014 -0400 +++ b/sys/kern/vnode_if.c Sun Mar 23 02:54:19 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: vnode_if.c,v 1.92 2014/02/07 15:29:22 hannken Exp $ */ +/* $NetBSD$ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -40,7 +40,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.92 2014/02/07 15:29:22 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD$"); #include #include @@ -432,6 +432,70 @@ return error; } +const int vop_fallocate_vp_offsets[] = { + VOPARG_OFFSETOF(struct vop_fallocate_args,a_vp), + VDESC_NO_OFFSET +}; +const struct vnodeop_desc vop_fallocate_desc = { + VOP_FALLOCATE_DESCOFFSET, + "vop_fallocate", + 0, + vop_fallocate_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, +}; +int +VOP_FALLOCATE(struct vnode *vp, + off_t pos, + off_t len) +{ + int error; + bool mpsafe; + struct vop_fallocate_args a; + a.a_desc = VDESC(vop_fallocate); + a.a_vp = vp; + a.a_pos = pos; + a.a_len = len; + mpsafe = (vp->v_vflag & VV_MPSAFE); + if (!mpsafe) { KERNEL_LOCK(1, curlwp); } + error = (VCALL(vp, VOFFSET(vop_fallocate), &a)); + if (!mpsafe) { KERNEL_UNLOCK_ONE(curlwp); } + return error; +} + +const int vop_fdiscard_vp_offsets[] = { + VOPARG_OFFSETOF(struct vop_fdiscard_args,a_vp), + VDESC_NO_OFFSET +}; +const struct vnodeop_desc vop_fdiscard_desc = { + VOP_FDISCARD_DESCOFFSET, + "vop_fdiscard", + 0, + vop_fdiscard_vp_offsets, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, + VDESC_NO_OFFSET, +}; +int +VOP_FDISCARD(struct vnode *vp, + off_t pos, + off_t len) +{ + int error; + bool mpsafe; + struct vop_fdiscard_args a; + a.a_desc = VDESC(vop_fdiscard); + a.a_vp = vp; + a.a_pos = pos; + a.a_len = len; + mpsafe = (vp->v_vflag & VV_MPSAFE); + if (!mpsafe) { KERNEL_LOCK(1, curlwp); } + error = (VCALL(vp, VOFFSET(vop_fdiscard), &a)); + if (!mpsafe) { KERNEL_UNLOCK_ONE(curlwp); } + return error; +} + const int vop_ioctl_vp_offsets[] = { VOPARG_OFFSETOF(struct vop_ioctl_args,a_vp), VDESC_NO_OFFSET @@ -1652,6 +1716,8 @@ &vop_setattr_desc, &vop_read_desc, &vop_write_desc, + &vop_fallocate_desc, + &vop_fdiscard_desc, &vop_ioctl_desc, &vop_fcntl_desc, &vop_poll_desc, diff -r c8b7dd680f82 sys/rump/include/rump/rumpvnode_if.h --- a/sys/rump/include/rump/rumpvnode_if.h Sun Mar 23 02:53:37 2014 -0400 +++ b/sys/rump/include/rump/rumpvnode_if.h Sun Mar 23 02:54:19 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpvnode_if.h,v 1.16 2014/02/07 15:29:22 hannken Exp $ */ +/* $NetBSD$ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -64,6 +64,8 @@ int RUMP_VOP_SETATTR(struct vnode *, struct vattr *, struct kauth_cred *); int RUMP_VOP_READ(struct vnode *, struct uio *, int, struct kauth_cred *); int RUMP_VOP_WRITE(struct vnode *, struct uio *, int, struct kauth_cred *); +int RUMP_VOP_FALLOCATE(struct vnode *, off_t, off_t); +int RUMP_VOP_FDISCARD(struct vnode *, off_t, off_t); int RUMP_VOP_IOCTL(struct vnode *, u_long, void *, int, struct kauth_cred *); int RUMP_VOP_FCNTL(struct vnode *, u_int, void *, int, struct kauth_cred *); int RUMP_VOP_POLL(struct vnode *, int); diff -r c8b7dd680f82 sys/rump/librump/rumpvfs/rumpvnode_if.c --- a/sys/rump/librump/rumpvfs/rumpvnode_if.c Sun Mar 23 02:53:37 2014 -0400 +++ b/sys/rump/librump/rumpvfs/rumpvnode_if.c Sun Mar 23 02:54:19 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpvnode_if.c,v 1.15 2014/02/07 15:29:23 hannken Exp $ */ +/* $NetBSD$ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -40,7 +40,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.15 2014/02/07 15:29:23 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD$"); #include #include @@ -208,6 +208,34 @@ } int +RUMP_VOP_FALLOCATE(struct vnode *vp, + off_t pos, + off_t len) +{ + int error; + + rump_schedule(); + error = VOP_FALLOCATE(vp, pos, len); + rump_unschedule(); + + return error; +} + +int +RUMP_VOP_FDISCARD(struct vnode *vp, + off_t pos, + off_t len) +{ + int error; + + rump_schedule(); + error = VOP_FDISCARD(vp, pos, len); + rump_unschedule(); + + return error; +} + +int RUMP_VOP_IOCTL(struct vnode *vp, u_long command, void *data, diff -r c8b7dd680f82 sys/sys/vnode_if.h --- a/sys/sys/vnode_if.h Sun Mar 23 02:53:37 2014 -0400 +++ b/sys/sys/vnode_if.h Sun Mar 23 02:54:19 2014 -0400 @@ -1,4 +1,4 @@ -/* $NetBSD: vnode_if.h,v 1.87 2014/02/07 15:29:23 hannken Exp $ */ +/* $NetBSD$ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -165,7 +165,27 @@ extern const struct vnodeop_desc vop_write_desc; int VOP_WRITE(struct vnode *, struct uio *, int, kauth_cred_t); -#define VOP_IOCTL_DESCOFFSET 12 +#define VOP_FALLOCATE_DESCOFFSET 12 +struct vop_fallocate_args { + const struct vnodeop_desc *a_desc; + struct vnode *a_vp; + off_t a_pos; + off_t a_len; +}; +extern const struct vnodeop_desc vop_fallocate_desc; +int VOP_FALLOCATE(struct vnode *, off_t, off_t); + +#define VOP_FDISCARD_DESCOFFSET 13 +struct vop_fdiscard_args { + const struct vnodeop_desc *a_desc; + struct vnode *a_vp; + off_t a_pos; + off_t a_len; +}; +extern const struct vnodeop_desc vop_fdiscard_desc; +int VOP_FDISCARD(struct vnode *, off_t, off_t); + +#define VOP_IOCTL_DESCOFFSET 14 struct vop_ioctl_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -177,7 +197,7 @@ extern const struct vnodeop_desc vop_ioctl_desc; int VOP_IOCTL(struct vnode *, u_long, void *, int, kauth_cred_t); -#define VOP_FCNTL_DESCOFFSET 13 +#define VOP_FCNTL_DESCOFFSET 15 struct vop_fcntl_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -189,7 +209,7 @@ extern const struct vnodeop_desc vop_fcntl_desc; int VOP_FCNTL(struct vnode *, u_int, void *, int, kauth_cred_t); -#define VOP_POLL_DESCOFFSET 14 +#define VOP_POLL_DESCOFFSET 16 struct vop_poll_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -198,7 +218,7 @@ extern const struct vnodeop_desc vop_poll_desc; int VOP_POLL(struct vnode *, int); -#define VOP_KQFILTER_DESCOFFSET 15 +#define VOP_KQFILTER_DESCOFFSET 17 struct vop_kqfilter_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -207,7 +227,7 @@ extern const struct vnodeop_desc vop_kqfilter_desc; int VOP_KQFILTER(struct vnode *, struct knote *); -#define VOP_REVOKE_DESCOFFSET 16 +#define VOP_REVOKE_DESCOFFSET 18 struct vop_revoke_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -216,7 +236,7 @@ extern const struct vnodeop_desc vop_revoke_desc; int VOP_REVOKE(struct vnode *, int); -#define VOP_MMAP_DESCOFFSET 17 +#define VOP_MMAP_DESCOFFSET 19 struct vop_mmap_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -226,7 +246,7 @@ extern const struct vnodeop_desc vop_mmap_desc; int VOP_MMAP(struct vnode *, vm_prot_t, kauth_cred_t); -#define VOP_FSYNC_DESCOFFSET 18 +#define VOP_FSYNC_DESCOFFSET 20 struct vop_fsync_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -238,7 +258,7 @@ extern const struct vnodeop_desc vop_fsync_desc; int VOP_FSYNC(struct vnode *, kauth_cred_t, int, off_t, off_t); -#define VOP_SEEK_DESCOFFSET 19 +#define VOP_SEEK_DESCOFFSET 21 struct vop_seek_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -249,7 +269,7 @@ extern const struct vnodeop_desc vop_seek_desc; int VOP_SEEK(struct vnode *, off_t, off_t, kauth_cred_t); -#define VOP_REMOVE_DESCOFFSET 20 +#define VOP_REMOVE_DESCOFFSET 22 struct vop_remove_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -259,7 +279,7 @@ extern const struct vnodeop_desc vop_remove_desc; int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *); -#define VOP_LINK_DESCOFFSET 21 +#define VOP_LINK_DESCOFFSET 23 struct vop_link_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -269,7 +289,7 @@ extern const struct vnodeop_desc vop_link_desc; int VOP_LINK(struct vnode *, struct vnode *, struct componentname *); -#define VOP_RENAME_DESCOFFSET 22 +#define VOP_RENAME_DESCOFFSET 24 struct vop_rename_args { const struct vnodeop_desc *a_desc; struct vnode *a_fdvp; @@ -283,7 +303,7 @@ int VOP_RENAME(struct vnode *, struct vnode *, struct componentname *, struct vnode *, struct vnode *, struct componentname *); -#define VOP_MKDIR_DESCOFFSET 23 +#define VOP_MKDIR_DESCOFFSET 25 struct vop_mkdir_v3_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -295,7 +315,7 @@ int VOP_MKDIR(struct vnode *, struct vnode **, struct componentname *, struct vattr *); -#define VOP_RMDIR_DESCOFFSET 24 +#define VOP_RMDIR_DESCOFFSET 26 struct vop_rmdir_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -305,7 +325,7 @@ extern const struct vnodeop_desc vop_rmdir_desc; int VOP_RMDIR(struct vnode *, struct vnode *, struct componentname *); -#define VOP_SYMLINK_DESCOFFSET 25 +#define VOP_SYMLINK_DESCOFFSET 27 struct vop_symlink_v3_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -318,7 +338,7 @@ int VOP_SYMLINK(struct vnode *, struct vnode **, struct componentname *, struct vattr *, char *); -#define VOP_READDIR_DESCOFFSET 26 +#define VOP_READDIR_DESCOFFSET 28 struct vop_readdir_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -332,7 +352,7 @@ int VOP_READDIR(struct vnode *, struct uio *, kauth_cred_t, int *, off_t **, int *); -#define VOP_READLINK_DESCOFFSET 27 +#define VOP_READLINK_DESCOFFSET 29 struct vop_readlink_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -342,7 +362,7 @@ extern const struct vnodeop_desc vop_readlink_desc; int VOP_READLINK(struct vnode *, struct uio *, kauth_cred_t); -#define VOP_ABORTOP_DESCOFFSET 28 +#define VOP_ABORTOP_DESCOFFSET 30 struct vop_abortop_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -351,7 +371,7 @@ extern const struct vnodeop_desc vop_abortop_desc; int VOP_ABORTOP(struct vnode *, struct componentname *); -#define VOP_INACTIVE_DESCOFFSET 29 +#define VOP_INACTIVE_DESCOFFSET 31 struct vop_inactive_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -360,7 +380,7 @@ extern const struct vnodeop_desc vop_inactive_desc; int VOP_INACTIVE(struct vnode *, bool *); -#define VOP_RECLAIM_DESCOFFSET 30 +#define VOP_RECLAIM_DESCOFFSET 32 struct vop_reclaim_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -368,7 +388,7 @@ extern const struct vnodeop_desc vop_reclaim_desc; int VOP_RECLAIM(struct vnode *); -#define VOP_LOCK_DESCOFFSET 31 +#define VOP_LOCK_DESCOFFSET 33 struct vop_lock_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -377,7 +397,7 @@ extern const struct vnodeop_desc vop_lock_desc; int VOP_LOCK(struct vnode *, int); -#define VOP_UNLOCK_DESCOFFSET 32 +#define VOP_UNLOCK_DESCOFFSET 34 struct vop_unlock_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -385,7 +405,7 @@ extern const struct vnodeop_desc vop_unlock_desc; int VOP_UNLOCK(struct vnode *); -#define VOP_BMAP_DESCOFFSET 33 +#define VOP_BMAP_DESCOFFSET 35 struct vop_bmap_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -397,7 +417,7 @@ extern const struct vnodeop_desc vop_bmap_desc; int VOP_BMAP(struct vnode *, daddr_t, struct vnode **, daddr_t *, int *); -#define VOP_STRATEGY_DESCOFFSET 34 +#define VOP_STRATEGY_DESCOFFSET 36 struct vop_strategy_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -406,7 +426,7 @@ extern const struct vnodeop_desc vop_strategy_desc; int VOP_STRATEGY(struct vnode *, struct buf *); -#define VOP_PRINT_DESCOFFSET 35 +#define VOP_PRINT_DESCOFFSET 37 struct vop_print_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -414,7 +434,7 @@ extern const struct vnodeop_desc vop_print_desc; int VOP_PRINT(struct vnode *); -#define VOP_ISLOCKED_DESCOFFSET 36 +#define VOP_ISLOCKED_DESCOFFSET 38 struct vop_islocked_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -422,7 +442,7 @@ extern const struct vnodeop_desc vop_islocked_desc; int VOP_ISLOCKED(struct vnode *); -#define VOP_PATHCONF_DESCOFFSET 37 +#define VOP_PATHCONF_DESCOFFSET 39 struct vop_pathconf_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -432,7 +452,7 @@ extern const struct vnodeop_desc vop_pathconf_desc; int VOP_PATHCONF(struct vnode *, int, register_t *); -#define VOP_ADVLOCK_DESCOFFSET 38 +#define VOP_ADVLOCK_DESCOFFSET 40 struct vop_advlock_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -444,7 +464,7 @@ extern const struct vnodeop_desc vop_advlock_desc; int VOP_ADVLOCK(struct vnode *, void *, int, struct flock *, int); -#define VOP_WHITEOUT_DESCOFFSET 39 +#define VOP_WHITEOUT_DESCOFFSET 41 struct vop_whiteout_args { const struct vnodeop_desc *a_desc; struct vnode *a_dvp; @@ -454,7 +474,7 @@ extern const struct vnodeop_desc vop_whiteout_desc; int VOP_WHITEOUT(struct vnode *, struct componentname *, int); -#define VOP_GETPAGES_DESCOFFSET 40 +#define VOP_GETPAGES_DESCOFFSET 42 struct vop_getpages_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -470,7 +490,7 @@ int VOP_GETPAGES(struct vnode *, voff_t, struct vm_page **, int *, int, vm_prot_t, int, int); -#define VOP_PUTPAGES_DESCOFFSET 41 +#define VOP_PUTPAGES_DESCOFFSET 43 struct vop_putpages_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -481,7 +501,7 @@ extern const struct vnodeop_desc vop_putpages_desc; int VOP_PUTPAGES(struct vnode *, voff_t, voff_t, int); -#define VOP_CLOSEEXTATTR_DESCOFFSET 42 +#define VOP_CLOSEEXTATTR_DESCOFFSET 44 struct vop_closeextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -491,7 +511,7 @@ extern const struct vnodeop_desc vop_closeextattr_desc; int VOP_CLOSEEXTATTR(struct vnode *, int, kauth_cred_t); -#define VOP_GETEXTATTR_DESCOFFSET 43 +#define VOP_GETEXTATTR_DESCOFFSET 45 struct vop_getextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -505,7 +525,7 @@ int VOP_GETEXTATTR(struct vnode *, int, const char *, struct uio *, size_t *, kauth_cred_t); -#define VOP_LISTEXTATTR_DESCOFFSET 44 +#define VOP_LISTEXTATTR_DESCOFFSET 46 struct vop_listextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -519,7 +539,7 @@ int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, int, kauth_cred_t); -#define VOP_OPENEXTATTR_DESCOFFSET 45 +#define VOP_OPENEXTATTR_DESCOFFSET 47 struct vop_openextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -528,7 +548,7 @@ extern const struct vnodeop_desc vop_openextattr_desc; int VOP_OPENEXTATTR(struct vnode *, kauth_cred_t); -#define VOP_DELETEEXTATTR_DESCOFFSET 46 +#define VOP_DELETEEXTATTR_DESCOFFSET 48 struct vop_deleteextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -539,7 +559,7 @@ extern const struct vnodeop_desc vop_deleteextattr_desc; int VOP_DELETEEXTATTR(struct vnode *, int, const char *, kauth_cred_t); -#define VOP_SETEXTATTR_DESCOFFSET 47 +#define VOP_SETEXTATTR_DESCOFFSET 49 struct vop_setextattr_args { const struct vnodeop_desc *a_desc; struct vnode *a_vp; @@ -552,6 +572,6 @@ int VOP_SETEXTATTR(struct vnode *, int, const char *, struct uio *, kauth_cred_t); -#define VNODE_OPS_COUNT 48 +#define VNODE_OPS_COUNT 50 #endif /* !_SYS_VNODE_IF_H_ */