Home | History | Annotate | Line # | Download | only in rumpvfs
rumpvnode_if.c revision 1.19
      1  1.19     pooka /*	$NetBSD: rumpvnode_if.c,v 1.19 2016/01/26 23:12:18 pooka Exp $	*/
      2   1.1     pooka 
      3   1.1     pooka /*
      4   1.1     pooka  * Warning: DO NOT EDIT! This file is automatically generated!
      5   1.1     pooka  * (Modifications made here may easily be lost!)
      6   1.1     pooka  *
      7   1.1     pooka  * Created from the file:
      8  1.18  riastrad  *	NetBSD: vnode_if.src,v 1.69 2015/04/20 23:08:07 riastradh Exp
      9   1.1     pooka  * by the script:
     10  1.13   hannken  *	NetBSD: vnode_if.sh,v 1.60 2014/01/13 12:07:55 hannken Exp
     11   1.1     pooka  */
     12   1.1     pooka 
     13   1.1     pooka /*
     14   1.1     pooka  * Copyright (c) 1992, 1993, 1994, 1995
     15   1.1     pooka  *	The Regents of the University of California.  All rights reserved.
     16   1.1     pooka  *
     17   1.1     pooka  * Redistribution and use in source and binary forms, with or without
     18   1.1     pooka  * modification, are permitted provided that the following conditions
     19   1.1     pooka  * are met:
     20   1.1     pooka  * 1. Redistributions of source code must retain the above copyright
     21   1.1     pooka  *    notice, this list of conditions and the following disclaimer.
     22   1.1     pooka  * 2. Redistributions in binary form must reproduce the above copyright
     23   1.1     pooka  *    notice, this list of conditions and the following disclaimer in the
     24   1.1     pooka  *    documentation and/or other materials provided with the distribution.
     25   1.1     pooka  * 3. Neither the name of the University nor the names of its contributors
     26   1.1     pooka  *    may be used to endorse or promote products derived from this software
     27   1.1     pooka  *    without specific prior written permission.
     28   1.1     pooka  *
     29   1.1     pooka  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     30   1.1     pooka  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     31   1.1     pooka  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     32   1.1     pooka  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     33   1.1     pooka  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     34   1.1     pooka  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     35   1.1     pooka  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     36   1.1     pooka  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     37   1.1     pooka  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     38   1.1     pooka  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     39   1.1     pooka  * SUCH DAMAGE.
     40   1.1     pooka  */
     41   1.1     pooka 
     42   1.1     pooka #include <sys/cdefs.h>
     43  1.19     pooka __KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.19 2016/01/26 23:12:18 pooka Exp $");
     44   1.1     pooka 
     45   1.1     pooka #include <sys/param.h>
     46   1.1     pooka #include <sys/mount.h>
     47   1.1     pooka #include <sys/buf.h>
     48   1.1     pooka #include <sys/vnode.h>
     49   1.1     pooka #include <sys/lock.h>
     50  1.19     pooka 
     51  1.19     pooka #include <rump-sys/kern.h>
     52  1.19     pooka 
     53   1.1     pooka #include <rump/rumpvnode_if.h>
     54   1.1     pooka 
     55   1.1     pooka int
     56  1.10   hannken RUMP_VOP_BWRITE(struct vnode *vp,
     57  1.10   hannken     struct buf *bp)
     58   1.1     pooka {
     59   1.1     pooka 	int error;
     60   1.6     pooka 
     61   1.6     pooka 	rump_schedule();
     62  1.10   hannken 	error = VOP_BWRITE(vp, bp);
     63   1.3     pooka 	rump_unschedule();
     64   1.6     pooka 
     65   1.1     pooka 	return error;
     66   1.1     pooka }
     67   1.1     pooka 
     68   1.1     pooka int
     69   1.1     pooka RUMP_VOP_LOOKUP(struct vnode *dvp,
     70   1.1     pooka     struct vnode **vpp,
     71   1.1     pooka     struct componentname *cnp)
     72   1.1     pooka {
     73   1.1     pooka 	int error;
     74   1.6     pooka 
     75   1.6     pooka 	rump_schedule();
     76   1.6     pooka 	error = VOP_LOOKUP(dvp, vpp, cnp);
     77   1.6     pooka 	rump_unschedule();
     78   1.6     pooka 
     79   1.1     pooka 	return error;
     80   1.1     pooka }
     81   1.1     pooka 
     82   1.1     pooka int
     83   1.1     pooka RUMP_VOP_CREATE(struct vnode *dvp,
     84   1.1     pooka     struct vnode **vpp,
     85   1.1     pooka     struct componentname *cnp,
     86   1.1     pooka     struct vattr *vap)
     87   1.1     pooka {
     88   1.1     pooka 	int error;
     89   1.6     pooka 
     90   1.6     pooka 	rump_schedule();
     91   1.6     pooka 	error = VOP_CREATE(dvp, vpp, cnp, vap);
     92   1.6     pooka 	rump_unschedule();
     93   1.6     pooka 
     94   1.1     pooka 	return error;
     95   1.1     pooka }
     96   1.1     pooka 
     97   1.1     pooka int
     98   1.1     pooka RUMP_VOP_MKNOD(struct vnode *dvp,
     99   1.1     pooka     struct vnode **vpp,
    100   1.1     pooka     struct componentname *cnp,
    101   1.1     pooka     struct vattr *vap)
    102   1.1     pooka {
    103   1.1     pooka 	int error;
    104   1.6     pooka 
    105   1.6     pooka 	rump_schedule();
    106   1.6     pooka 	error = VOP_MKNOD(dvp, vpp, cnp, vap);
    107   1.6     pooka 	rump_unschedule();
    108   1.6     pooka 
    109   1.1     pooka 	return error;
    110   1.1     pooka }
    111   1.1     pooka 
    112   1.1     pooka int
    113   1.1     pooka RUMP_VOP_OPEN(struct vnode *vp,
    114   1.1     pooka     int mode,
    115   1.6     pooka     struct kauth_cred *cred)
    116   1.1     pooka {
    117   1.1     pooka 	int error;
    118   1.6     pooka 
    119   1.6     pooka 	rump_schedule();
    120   1.6     pooka 	error = VOP_OPEN(vp, mode, cred);
    121   1.3     pooka 	rump_unschedule();
    122   1.6     pooka 
    123   1.1     pooka 	return error;
    124   1.1     pooka }
    125   1.1     pooka 
    126   1.1     pooka int
    127   1.1     pooka RUMP_VOP_CLOSE(struct vnode *vp,
    128   1.1     pooka     int fflag,
    129   1.6     pooka     struct kauth_cred *cred)
    130   1.1     pooka {
    131   1.1     pooka 	int error;
    132   1.6     pooka 
    133   1.6     pooka 	rump_schedule();
    134   1.6     pooka 	error = VOP_CLOSE(vp, fflag, cred);
    135   1.3     pooka 	rump_unschedule();
    136   1.6     pooka 
    137   1.1     pooka 	return error;
    138   1.1     pooka }
    139   1.1     pooka 
    140   1.1     pooka int
    141   1.1     pooka RUMP_VOP_ACCESS(struct vnode *vp,
    142   1.1     pooka     int mode,
    143   1.6     pooka     struct kauth_cred *cred)
    144   1.1     pooka {
    145   1.1     pooka 	int error;
    146   1.6     pooka 
    147   1.6     pooka 	rump_schedule();
    148   1.6     pooka 	error = VOP_ACCESS(vp, mode, cred);
    149   1.3     pooka 	rump_unschedule();
    150   1.6     pooka 
    151   1.1     pooka 	return error;
    152   1.1     pooka }
    153   1.1     pooka 
    154   1.1     pooka int
    155   1.1     pooka RUMP_VOP_GETATTR(struct vnode *vp,
    156   1.1     pooka     struct vattr *vap,
    157   1.6     pooka     struct kauth_cred *cred)
    158   1.1     pooka {
    159   1.1     pooka 	int error;
    160   1.6     pooka 
    161   1.6     pooka 	rump_schedule();
    162   1.6     pooka 	error = VOP_GETATTR(vp, vap, cred);
    163   1.3     pooka 	rump_unschedule();
    164   1.6     pooka 
    165   1.1     pooka 	return error;
    166   1.1     pooka }
    167   1.1     pooka 
    168   1.1     pooka int
    169   1.1     pooka RUMP_VOP_SETATTR(struct vnode *vp,
    170   1.1     pooka     struct vattr *vap,
    171   1.6     pooka     struct kauth_cred *cred)
    172   1.1     pooka {
    173   1.1     pooka 	int error;
    174   1.6     pooka 
    175   1.6     pooka 	rump_schedule();
    176   1.6     pooka 	error = VOP_SETATTR(vp, vap, cred);
    177   1.3     pooka 	rump_unschedule();
    178   1.6     pooka 
    179   1.1     pooka 	return error;
    180   1.1     pooka }
    181   1.1     pooka 
    182   1.1     pooka int
    183   1.1     pooka RUMP_VOP_READ(struct vnode *vp,
    184   1.1     pooka     struct uio *uio,
    185   1.1     pooka     int ioflag,
    186   1.6     pooka     struct kauth_cred *cred)
    187   1.1     pooka {
    188   1.1     pooka 	int error;
    189   1.6     pooka 
    190   1.6     pooka 	rump_schedule();
    191   1.6     pooka 	error = VOP_READ(vp, uio, ioflag, cred);
    192   1.3     pooka 	rump_unschedule();
    193   1.6     pooka 
    194   1.1     pooka 	return error;
    195   1.1     pooka }
    196   1.1     pooka 
    197   1.1     pooka int
    198   1.1     pooka RUMP_VOP_WRITE(struct vnode *vp,
    199   1.1     pooka     struct uio *uio,
    200   1.1     pooka     int ioflag,
    201   1.6     pooka     struct kauth_cred *cred)
    202   1.1     pooka {
    203   1.1     pooka 	int error;
    204   1.6     pooka 
    205   1.6     pooka 	rump_schedule();
    206   1.6     pooka 	error = VOP_WRITE(vp, uio, ioflag, cred);
    207   1.3     pooka 	rump_unschedule();
    208   1.6     pooka 
    209   1.1     pooka 	return error;
    210   1.1     pooka }
    211   1.1     pooka 
    212   1.1     pooka int
    213  1.16  dholland RUMP_VOP_FALLOCATE(struct vnode *vp,
    214  1.16  dholland     off_t pos,
    215  1.16  dholland     off_t len)
    216  1.16  dholland {
    217  1.16  dholland 	int error;
    218  1.16  dholland 
    219  1.16  dholland 	rump_schedule();
    220  1.16  dholland 	error = VOP_FALLOCATE(vp, pos, len);
    221  1.16  dholland 	rump_unschedule();
    222  1.16  dholland 
    223  1.16  dholland 	return error;
    224  1.16  dholland }
    225  1.16  dholland 
    226  1.16  dholland int
    227  1.16  dholland RUMP_VOP_FDISCARD(struct vnode *vp,
    228  1.16  dholland     off_t pos,
    229  1.16  dholland     off_t len)
    230  1.16  dholland {
    231  1.16  dholland 	int error;
    232  1.16  dholland 
    233  1.16  dholland 	rump_schedule();
    234  1.16  dholland 	error = VOP_FDISCARD(vp, pos, len);
    235  1.16  dholland 	rump_unschedule();
    236  1.16  dholland 
    237  1.16  dholland 	return error;
    238  1.16  dholland }
    239  1.16  dholland 
    240  1.16  dholland int
    241   1.1     pooka RUMP_VOP_IOCTL(struct vnode *vp,
    242   1.1     pooka     u_long command,
    243   1.1     pooka     void *data,
    244   1.1     pooka     int fflag,
    245   1.6     pooka     struct kauth_cred *cred)
    246   1.1     pooka {
    247   1.1     pooka 	int error;
    248   1.6     pooka 
    249   1.6     pooka 	rump_schedule();
    250   1.6     pooka 	error = VOP_IOCTL(vp, command, data, fflag, cred);
    251   1.3     pooka 	rump_unschedule();
    252   1.6     pooka 
    253   1.1     pooka 	return error;
    254   1.1     pooka }
    255   1.1     pooka 
    256   1.1     pooka int
    257   1.1     pooka RUMP_VOP_FCNTL(struct vnode *vp,
    258   1.1     pooka     u_int command,
    259   1.1     pooka     void *data,
    260   1.1     pooka     int fflag,
    261   1.6     pooka     struct kauth_cred *cred)
    262   1.1     pooka {
    263   1.1     pooka 	int error;
    264   1.6     pooka 
    265   1.6     pooka 	rump_schedule();
    266   1.6     pooka 	error = VOP_FCNTL(vp, command, data, fflag, cred);
    267   1.3     pooka 	rump_unschedule();
    268   1.6     pooka 
    269   1.1     pooka 	return error;
    270   1.1     pooka }
    271   1.1     pooka 
    272   1.1     pooka int
    273   1.1     pooka RUMP_VOP_POLL(struct vnode *vp,
    274   1.1     pooka     int events)
    275   1.1     pooka {
    276   1.1     pooka 	int error;
    277   1.6     pooka 
    278   1.6     pooka 	rump_schedule();
    279   1.6     pooka 	error = VOP_POLL(vp, events);
    280   1.3     pooka 	rump_unschedule();
    281   1.6     pooka 
    282   1.1     pooka 	return error;
    283   1.1     pooka }
    284   1.1     pooka 
    285   1.1     pooka int
    286   1.1     pooka RUMP_VOP_KQFILTER(struct vnode *vp,
    287   1.1     pooka     struct knote *kn)
    288   1.1     pooka {
    289   1.1     pooka 	int error;
    290   1.6     pooka 
    291   1.6     pooka 	rump_schedule();
    292   1.6     pooka 	error = VOP_KQFILTER(vp, kn);
    293   1.3     pooka 	rump_unschedule();
    294   1.6     pooka 
    295   1.1     pooka 	return error;
    296   1.1     pooka }
    297   1.1     pooka 
    298   1.1     pooka int
    299   1.1     pooka RUMP_VOP_REVOKE(struct vnode *vp,
    300   1.1     pooka     int flags)
    301   1.1     pooka {
    302   1.1     pooka 	int error;
    303   1.6     pooka 
    304   1.6     pooka 	rump_schedule();
    305   1.6     pooka 	error = VOP_REVOKE(vp, flags);
    306   1.3     pooka 	rump_unschedule();
    307   1.6     pooka 
    308   1.1     pooka 	return error;
    309   1.1     pooka }
    310   1.1     pooka 
    311   1.1     pooka int
    312   1.1     pooka RUMP_VOP_MMAP(struct vnode *vp,
    313   1.1     pooka     int prot,
    314   1.6     pooka     struct kauth_cred *cred)
    315   1.1     pooka {
    316   1.1     pooka 	int error;
    317   1.6     pooka 
    318   1.6     pooka 	rump_schedule();
    319   1.6     pooka 	error = VOP_MMAP(vp, prot, cred);
    320   1.3     pooka 	rump_unschedule();
    321   1.6     pooka 
    322   1.1     pooka 	return error;
    323   1.1     pooka }
    324   1.1     pooka 
    325   1.1     pooka int
    326   1.1     pooka RUMP_VOP_FSYNC(struct vnode *vp,
    327   1.6     pooka     struct kauth_cred *cred,
    328   1.1     pooka     int flags,
    329   1.1     pooka     off_t offlo,
    330   1.1     pooka     off_t offhi)
    331   1.1     pooka {
    332   1.1     pooka 	int error;
    333   1.6     pooka 
    334   1.6     pooka 	rump_schedule();
    335   1.6     pooka 	error = VOP_FSYNC(vp, cred, flags, offlo, offhi);
    336   1.3     pooka 	rump_unschedule();
    337   1.6     pooka 
    338   1.1     pooka 	return error;
    339   1.1     pooka }
    340   1.1     pooka 
    341   1.1     pooka int
    342   1.1     pooka RUMP_VOP_SEEK(struct vnode *vp,
    343   1.1     pooka     off_t oldoff,
    344   1.1     pooka     off_t newoff,
    345   1.6     pooka     struct kauth_cred *cred)
    346   1.1     pooka {
    347   1.1     pooka 	int error;
    348   1.6     pooka 
    349   1.6     pooka 	rump_schedule();
    350   1.6     pooka 	error = VOP_SEEK(vp, oldoff, newoff, cred);
    351   1.3     pooka 	rump_unschedule();
    352   1.6     pooka 
    353   1.1     pooka 	return error;
    354   1.1     pooka }
    355   1.1     pooka 
    356   1.1     pooka int
    357   1.1     pooka RUMP_VOP_REMOVE(struct vnode *dvp,
    358   1.1     pooka     struct vnode *vp,
    359   1.1     pooka     struct componentname *cnp)
    360   1.1     pooka {
    361   1.1     pooka 	int error;
    362   1.6     pooka 
    363   1.6     pooka 	rump_schedule();
    364   1.6     pooka 	error = VOP_REMOVE(dvp, vp, cnp);
    365   1.3     pooka 	rump_unschedule();
    366   1.6     pooka 
    367   1.1     pooka 	return error;
    368   1.1     pooka }
    369   1.1     pooka 
    370   1.1     pooka int
    371   1.1     pooka RUMP_VOP_LINK(struct vnode *dvp,
    372   1.1     pooka     struct vnode *vp,
    373   1.1     pooka     struct componentname *cnp)
    374   1.1     pooka {
    375   1.1     pooka 	int error;
    376   1.6     pooka 
    377   1.6     pooka 	rump_schedule();
    378   1.6     pooka 	error = VOP_LINK(dvp, vp, cnp);
    379   1.3     pooka 	rump_unschedule();
    380   1.6     pooka 
    381   1.1     pooka 	return error;
    382   1.1     pooka }
    383   1.1     pooka 
    384   1.1     pooka int
    385   1.1     pooka RUMP_VOP_RENAME(struct vnode *fdvp,
    386   1.1     pooka     struct vnode *fvp,
    387   1.1     pooka     struct componentname *fcnp,
    388   1.1     pooka     struct vnode *tdvp,
    389   1.1     pooka     struct vnode *tvp,
    390   1.1     pooka     struct componentname *tcnp)
    391   1.1     pooka {
    392   1.1     pooka 	int error;
    393   1.6     pooka 
    394   1.6     pooka 	rump_schedule();
    395   1.6     pooka 	error = VOP_RENAME(fdvp, fvp, fcnp, tdvp, tvp, tcnp);
    396   1.3     pooka 	rump_unschedule();
    397   1.6     pooka 
    398   1.1     pooka 	return error;
    399   1.1     pooka }
    400   1.1     pooka 
    401   1.1     pooka int
    402   1.1     pooka RUMP_VOP_MKDIR(struct vnode *dvp,
    403   1.1     pooka     struct vnode **vpp,
    404   1.1     pooka     struct componentname *cnp,
    405   1.1     pooka     struct vattr *vap)
    406   1.1     pooka {
    407   1.1     pooka 	int error;
    408   1.6     pooka 
    409   1.6     pooka 	rump_schedule();
    410   1.6     pooka 	error = VOP_MKDIR(dvp, vpp, cnp, vap);
    411   1.6     pooka 	rump_unschedule();
    412   1.6     pooka 
    413   1.1     pooka 	return error;
    414   1.1     pooka }
    415   1.1     pooka 
    416   1.1     pooka int
    417   1.1     pooka RUMP_VOP_RMDIR(struct vnode *dvp,
    418   1.1     pooka     struct vnode *vp,
    419   1.1     pooka     struct componentname *cnp)
    420   1.1     pooka {
    421   1.1     pooka 	int error;
    422   1.6     pooka 
    423   1.6     pooka 	rump_schedule();
    424   1.6     pooka 	error = VOP_RMDIR(dvp, vp, cnp);
    425   1.3     pooka 	rump_unschedule();
    426   1.6     pooka 
    427   1.1     pooka 	return error;
    428   1.1     pooka }
    429   1.1     pooka 
    430   1.1     pooka int
    431   1.1     pooka RUMP_VOP_SYMLINK(struct vnode *dvp,
    432   1.1     pooka     struct vnode **vpp,
    433   1.1     pooka     struct componentname *cnp,
    434   1.1     pooka     struct vattr *vap,
    435   1.1     pooka     char *target)
    436   1.1     pooka {
    437   1.1     pooka 	int error;
    438   1.6     pooka 
    439   1.6     pooka 	rump_schedule();
    440   1.6     pooka 	error = VOP_SYMLINK(dvp, vpp, cnp, vap, target);
    441   1.6     pooka 	rump_unschedule();
    442   1.6     pooka 
    443   1.1     pooka 	return error;
    444   1.1     pooka }
    445   1.1     pooka 
    446   1.1     pooka int
    447   1.1     pooka RUMP_VOP_READDIR(struct vnode *vp,
    448   1.1     pooka     struct uio *uio,
    449   1.6     pooka     struct kauth_cred *cred,
    450   1.1     pooka     int *eofflag,
    451   1.1     pooka     off_t **cookies,
    452   1.1     pooka     int *ncookies)
    453   1.1     pooka {
    454   1.1     pooka 	int error;
    455   1.6     pooka 
    456   1.6     pooka 	rump_schedule();
    457   1.6     pooka 	error = VOP_READDIR(vp, uio, cred, eofflag, cookies, ncookies);
    458   1.3     pooka 	rump_unschedule();
    459   1.6     pooka 
    460   1.1     pooka 	return error;
    461   1.1     pooka }
    462   1.1     pooka 
    463   1.1     pooka int
    464   1.1     pooka RUMP_VOP_READLINK(struct vnode *vp,
    465   1.1     pooka     struct uio *uio,
    466   1.6     pooka     struct kauth_cred *cred)
    467   1.1     pooka {
    468   1.1     pooka 	int error;
    469   1.6     pooka 
    470   1.6     pooka 	rump_schedule();
    471   1.6     pooka 	error = VOP_READLINK(vp, uio, cred);
    472   1.3     pooka 	rump_unschedule();
    473   1.6     pooka 
    474   1.1     pooka 	return error;
    475   1.1     pooka }
    476   1.1     pooka 
    477   1.1     pooka int
    478   1.1     pooka RUMP_VOP_ABORTOP(struct vnode *dvp,
    479   1.1     pooka     struct componentname *cnp)
    480   1.1     pooka {
    481   1.1     pooka 	int error;
    482   1.6     pooka 
    483   1.6     pooka 	rump_schedule();
    484   1.6     pooka 	error = VOP_ABORTOP(dvp, cnp);
    485   1.3     pooka 	rump_unschedule();
    486   1.6     pooka 
    487   1.1     pooka 	return error;
    488   1.1     pooka }
    489   1.1     pooka 
    490   1.1     pooka int
    491   1.1     pooka RUMP_VOP_INACTIVE(struct vnode *vp,
    492   1.1     pooka     bool *recycle)
    493   1.1     pooka {
    494   1.1     pooka 	int error;
    495   1.6     pooka 
    496   1.6     pooka 	rump_schedule();
    497   1.6     pooka 	error = VOP_INACTIVE(vp, recycle);
    498   1.3     pooka 	rump_unschedule();
    499   1.6     pooka 
    500   1.1     pooka 	return error;
    501   1.1     pooka }
    502   1.1     pooka 
    503   1.1     pooka int
    504   1.1     pooka RUMP_VOP_RECLAIM(struct vnode *vp)
    505   1.1     pooka {
    506   1.1     pooka 	int error;
    507   1.6     pooka 
    508   1.6     pooka 	rump_schedule();
    509   1.6     pooka 	error = VOP_RECLAIM(vp);
    510   1.3     pooka 	rump_unschedule();
    511   1.6     pooka 
    512   1.1     pooka 	return error;
    513   1.1     pooka }
    514   1.1     pooka 
    515   1.1     pooka int
    516   1.1     pooka RUMP_VOP_LOCK(struct vnode *vp,
    517   1.1     pooka     int flags)
    518   1.1     pooka {
    519   1.1     pooka 	int error;
    520   1.6     pooka 
    521   1.6     pooka 	rump_schedule();
    522   1.6     pooka 	error = VOP_LOCK(vp, flags);
    523   1.3     pooka 	rump_unschedule();
    524   1.6     pooka 
    525   1.1     pooka 	return error;
    526   1.1     pooka }
    527   1.1     pooka 
    528   1.1     pooka int
    529   1.7   hannken RUMP_VOP_UNLOCK(struct vnode *vp)
    530   1.1     pooka {
    531   1.1     pooka 	int error;
    532   1.6     pooka 
    533   1.6     pooka 	rump_schedule();
    534   1.7   hannken 	error = VOP_UNLOCK(vp);
    535   1.3     pooka 	rump_unschedule();
    536   1.6     pooka 
    537   1.1     pooka 	return error;
    538   1.1     pooka }
    539   1.1     pooka 
    540   1.1     pooka int
    541   1.1     pooka RUMP_VOP_BMAP(struct vnode *vp,
    542  1.12     pooka     int64_t bn,
    543   1.1     pooka     struct vnode **vpp,
    544  1.12     pooka     int64_t *bnp,
    545   1.1     pooka     int *runp)
    546   1.1     pooka {
    547   1.1     pooka 	int error;
    548   1.6     pooka 
    549   1.6     pooka 	rump_schedule();
    550   1.6     pooka 	error = VOP_BMAP(vp, bn, vpp, bnp, runp);
    551   1.3     pooka 	rump_unschedule();
    552   1.6     pooka 
    553   1.1     pooka 	return error;
    554   1.1     pooka }
    555   1.1     pooka 
    556   1.1     pooka int
    557   1.1     pooka RUMP_VOP_STRATEGY(struct vnode *vp,
    558   1.1     pooka     struct buf *bp)
    559   1.1     pooka {
    560   1.1     pooka 	int error;
    561   1.6     pooka 
    562   1.6     pooka 	rump_schedule();
    563   1.6     pooka 	error = VOP_STRATEGY(vp, bp);
    564   1.3     pooka 	rump_unschedule();
    565   1.6     pooka 
    566   1.1     pooka 	return error;
    567   1.1     pooka }
    568   1.1     pooka 
    569   1.1     pooka int
    570   1.1     pooka RUMP_VOP_PRINT(struct vnode *vp)
    571   1.1     pooka {
    572   1.1     pooka 	int error;
    573   1.6     pooka 
    574   1.6     pooka 	rump_schedule();
    575   1.6     pooka 	error = VOP_PRINT(vp);
    576   1.3     pooka 	rump_unschedule();
    577   1.6     pooka 
    578   1.1     pooka 	return error;
    579   1.1     pooka }
    580   1.1     pooka 
    581   1.1     pooka int
    582   1.1     pooka RUMP_VOP_ISLOCKED(struct vnode *vp)
    583   1.1     pooka {
    584   1.1     pooka 	int error;
    585   1.6     pooka 
    586   1.6     pooka 	rump_schedule();
    587   1.6     pooka 	error = VOP_ISLOCKED(vp);
    588   1.3     pooka 	rump_unschedule();
    589   1.6     pooka 
    590   1.1     pooka 	return error;
    591   1.1     pooka }
    592   1.1     pooka 
    593   1.1     pooka int
    594   1.1     pooka RUMP_VOP_PATHCONF(struct vnode *vp,
    595   1.1     pooka     int name,
    596   1.1     pooka     register_t *retval)
    597   1.1     pooka {
    598   1.1     pooka 	int error;
    599   1.6     pooka 
    600   1.6     pooka 	rump_schedule();
    601   1.6     pooka 	error = VOP_PATHCONF(vp, name, retval);
    602   1.3     pooka 	rump_unschedule();
    603   1.6     pooka 
    604   1.1     pooka 	return error;
    605   1.1     pooka }
    606   1.1     pooka 
    607   1.1     pooka int
    608   1.1     pooka RUMP_VOP_ADVLOCK(struct vnode *vp,
    609   1.1     pooka     void *id,
    610   1.1     pooka     int op,
    611   1.1     pooka     struct flock *fl,
    612   1.1     pooka     int flags)
    613   1.1     pooka {
    614   1.1     pooka 	int error;
    615   1.6     pooka 
    616   1.6     pooka 	rump_schedule();
    617   1.6     pooka 	error = VOP_ADVLOCK(vp, id, op, fl, flags);
    618   1.3     pooka 	rump_unschedule();
    619   1.6     pooka 
    620   1.1     pooka 	return error;
    621   1.1     pooka }
    622   1.1     pooka 
    623   1.1     pooka int
    624   1.1     pooka RUMP_VOP_WHITEOUT(struct vnode *dvp,
    625   1.1     pooka     struct componentname *cnp,
    626   1.1     pooka     int flags)
    627   1.1     pooka {
    628   1.1     pooka 	int error;
    629   1.6     pooka 
    630   1.6     pooka 	rump_schedule();
    631   1.6     pooka 	error = VOP_WHITEOUT(dvp, cnp, flags);
    632   1.3     pooka 	rump_unschedule();
    633   1.6     pooka 
    634   1.1     pooka 	return error;
    635   1.1     pooka }
    636   1.1     pooka 
    637   1.1     pooka int
    638   1.1     pooka RUMP_VOP_GETPAGES(struct vnode *vp,
    639   1.1     pooka     off_t offset,
    640   1.1     pooka     struct vm_page **m,
    641   1.1     pooka     int *count,
    642   1.1     pooka     int centeridx,
    643   1.1     pooka     int access_type,
    644   1.1     pooka     int advice,
    645   1.1     pooka     int flags)
    646   1.1     pooka {
    647   1.1     pooka 	int error;
    648   1.6     pooka 
    649   1.6     pooka 	rump_schedule();
    650   1.6     pooka 	error = VOP_GETPAGES(vp, offset, m, count, centeridx, access_type, advice, flags);
    651   1.3     pooka 	rump_unschedule();
    652   1.6     pooka 
    653   1.1     pooka 	return error;
    654   1.1     pooka }
    655   1.1     pooka 
    656   1.1     pooka int
    657   1.1     pooka RUMP_VOP_PUTPAGES(struct vnode *vp,
    658   1.1     pooka     off_t offlo,
    659   1.1     pooka     off_t offhi,
    660   1.1     pooka     int flags)
    661   1.1     pooka {
    662   1.1     pooka 	int error;
    663   1.6     pooka 
    664   1.6     pooka 	rump_schedule();
    665   1.6     pooka 	error = VOP_PUTPAGES(vp, offlo, offhi, flags);
    666   1.3     pooka 	rump_unschedule();
    667   1.6     pooka 
    668   1.1     pooka 	return error;
    669   1.1     pooka }
    670   1.1     pooka 
    671   1.1     pooka int
    672   1.1     pooka RUMP_VOP_CLOSEEXTATTR(struct vnode *vp,
    673   1.1     pooka     int commit,
    674   1.6     pooka     struct kauth_cred *cred)
    675   1.1     pooka {
    676   1.1     pooka 	int error;
    677   1.6     pooka 
    678   1.6     pooka 	rump_schedule();
    679   1.6     pooka 	error = VOP_CLOSEEXTATTR(vp, commit, cred);
    680   1.3     pooka 	rump_unschedule();
    681   1.6     pooka 
    682   1.1     pooka 	return error;
    683   1.1     pooka }
    684   1.1     pooka 
    685   1.1     pooka int
    686   1.1     pooka RUMP_VOP_GETEXTATTR(struct vnode *vp,
    687   1.1     pooka     int attrnamespace,
    688   1.1     pooka     const char *name,
    689   1.1     pooka     struct uio *uio,
    690   1.1     pooka     size_t *size,
    691   1.6     pooka     struct kauth_cred *cred)
    692   1.1     pooka {
    693   1.1     pooka 	int error;
    694   1.6     pooka 
    695   1.6     pooka 	rump_schedule();
    696   1.6     pooka 	error = VOP_GETEXTATTR(vp, attrnamespace, name, uio, size, cred);
    697   1.3     pooka 	rump_unschedule();
    698   1.6     pooka 
    699   1.1     pooka 	return error;
    700   1.1     pooka }
    701   1.1     pooka 
    702   1.1     pooka int
    703   1.1     pooka RUMP_VOP_LISTEXTATTR(struct vnode *vp,
    704   1.1     pooka     int attrnamespace,
    705   1.1     pooka     struct uio *uio,
    706   1.1     pooka     size_t *size,
    707   1.9      manu     int flag,
    708   1.6     pooka     struct kauth_cred *cred)
    709   1.1     pooka {
    710   1.1     pooka 	int error;
    711   1.6     pooka 
    712   1.6     pooka 	rump_schedule();
    713   1.9      manu 	error = VOP_LISTEXTATTR(vp, attrnamespace, uio, size, flag, cred);
    714   1.3     pooka 	rump_unschedule();
    715   1.6     pooka 
    716   1.1     pooka 	return error;
    717   1.1     pooka }
    718   1.1     pooka 
    719   1.1     pooka int
    720   1.1     pooka RUMP_VOP_OPENEXTATTR(struct vnode *vp,
    721   1.6     pooka     struct kauth_cred *cred)
    722   1.1     pooka {
    723   1.1     pooka 	int error;
    724   1.6     pooka 
    725   1.6     pooka 	rump_schedule();
    726   1.6     pooka 	error = VOP_OPENEXTATTR(vp, cred);
    727   1.3     pooka 	rump_unschedule();
    728   1.6     pooka 
    729   1.1     pooka 	return error;
    730   1.1     pooka }
    731   1.1     pooka 
    732   1.1     pooka int
    733   1.1     pooka RUMP_VOP_DELETEEXTATTR(struct vnode *vp,
    734   1.1     pooka     int attrnamespace,
    735   1.1     pooka     const char *name,
    736   1.6     pooka     struct kauth_cred *cred)
    737   1.1     pooka {
    738   1.1     pooka 	int error;
    739   1.6     pooka 
    740   1.6     pooka 	rump_schedule();
    741   1.6     pooka 	error = VOP_DELETEEXTATTR(vp, attrnamespace, name, cred);
    742   1.3     pooka 	rump_unschedule();
    743   1.6     pooka 
    744   1.1     pooka 	return error;
    745   1.1     pooka }
    746   1.1     pooka 
    747   1.1     pooka int
    748   1.1     pooka RUMP_VOP_SETEXTATTR(struct vnode *vp,
    749   1.1     pooka     int attrnamespace,
    750   1.1     pooka     const char *name,
    751   1.1     pooka     struct uio *uio,
    752   1.6     pooka     struct kauth_cred *cred)
    753   1.1     pooka {
    754   1.1     pooka 	int error;
    755   1.6     pooka 
    756   1.6     pooka 	rump_schedule();
    757   1.6     pooka 	error = VOP_SETEXTATTR(vp, attrnamespace, name, uio, cred);
    758   1.6     pooka 	rump_unschedule();
    759   1.6     pooka 
    760   1.6     pooka 	return error;
    761   1.6     pooka }
    762