1 1.20 pooka /* $NetBSD: rumpvnode_if.c,v 1.41 2023/06/15 09:15:13 hannken 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.41 hannken * NetBSD: vnode_if.src,v 1.85 2023/06/15 09:13:36 hannken Exp 9 1.1 pooka * by the script: 10 1.41 hannken * NetBSD: vnode_if.sh,v 1.77 2022/10/26 23:39:43 riastradh 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.20 pooka __KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.41 2023/06/15 09:15:13 hannken 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.37 thorpej #include <sys/fcntl.h> 49 1.1 pooka #include <sys/vnode.h> 50 1.1 pooka #include <sys/lock.h> 51 1.20 pooka #include <rump/rumpvnode_if.h> 52 1.19 pooka #include <rump-sys/kern.h> 53 1.19 pooka 54 1.1 pooka int 55 1.10 hannken RUMP_VOP_BWRITE(struct vnode *vp, 56 1.10 hannken struct buf *bp) 57 1.1 pooka { 58 1.1 pooka int error; 59 1.6 pooka 60 1.6 pooka rump_schedule(); 61 1.10 hannken error = VOP_BWRITE(vp, bp); 62 1.3 pooka rump_unschedule(); 63 1.6 pooka 64 1.1 pooka return error; 65 1.1 pooka } 66 1.1 pooka 67 1.1 pooka int 68 1.35 dholland RUMP_VOP_PARSEPATH(struct vnode *dvp, 69 1.35 dholland const char *name, 70 1.35 dholland size_t *retval) 71 1.35 dholland { 72 1.35 dholland int error; 73 1.35 dholland 74 1.35 dholland rump_schedule(); 75 1.35 dholland error = VOP_PARSEPATH(dvp, name, retval); 76 1.35 dholland rump_unschedule(); 77 1.35 dholland 78 1.35 dholland return error; 79 1.35 dholland } 80 1.35 dholland 81 1.35 dholland int 82 1.1 pooka RUMP_VOP_LOOKUP(struct vnode *dvp, 83 1.1 pooka struct vnode **vpp, 84 1.1 pooka struct componentname *cnp) 85 1.1 pooka { 86 1.1 pooka int error; 87 1.6 pooka 88 1.6 pooka rump_schedule(); 89 1.6 pooka error = VOP_LOOKUP(dvp, vpp, cnp); 90 1.6 pooka rump_unschedule(); 91 1.6 pooka 92 1.1 pooka return error; 93 1.1 pooka } 94 1.1 pooka 95 1.1 pooka int 96 1.1 pooka RUMP_VOP_CREATE(struct vnode *dvp, 97 1.1 pooka struct vnode **vpp, 98 1.1 pooka struct componentname *cnp, 99 1.1 pooka struct vattr *vap) 100 1.1 pooka { 101 1.1 pooka int error; 102 1.6 pooka 103 1.6 pooka rump_schedule(); 104 1.6 pooka error = VOP_CREATE(dvp, vpp, cnp, vap); 105 1.6 pooka rump_unschedule(); 106 1.6 pooka 107 1.1 pooka return error; 108 1.1 pooka } 109 1.1 pooka 110 1.1 pooka int 111 1.1 pooka RUMP_VOP_MKNOD(struct vnode *dvp, 112 1.1 pooka struct vnode **vpp, 113 1.1 pooka struct componentname *cnp, 114 1.1 pooka struct vattr *vap) 115 1.1 pooka { 116 1.1 pooka int error; 117 1.6 pooka 118 1.6 pooka rump_schedule(); 119 1.6 pooka error = VOP_MKNOD(dvp, vpp, cnp, vap); 120 1.6 pooka rump_unschedule(); 121 1.6 pooka 122 1.1 pooka return error; 123 1.1 pooka } 124 1.1 pooka 125 1.1 pooka int 126 1.1 pooka RUMP_VOP_OPEN(struct vnode *vp, 127 1.1 pooka int mode, 128 1.6 pooka struct kauth_cred *cred) 129 1.1 pooka { 130 1.1 pooka int error; 131 1.6 pooka 132 1.6 pooka rump_schedule(); 133 1.6 pooka error = VOP_OPEN(vp, mode, cred); 134 1.3 pooka rump_unschedule(); 135 1.6 pooka 136 1.1 pooka return error; 137 1.1 pooka } 138 1.1 pooka 139 1.1 pooka int 140 1.1 pooka RUMP_VOP_CLOSE(struct vnode *vp, 141 1.1 pooka int fflag, 142 1.6 pooka struct kauth_cred *cred) 143 1.1 pooka { 144 1.1 pooka int error; 145 1.6 pooka 146 1.6 pooka rump_schedule(); 147 1.6 pooka error = VOP_CLOSE(vp, fflag, cred); 148 1.3 pooka rump_unschedule(); 149 1.6 pooka 150 1.1 pooka return error; 151 1.1 pooka } 152 1.1 pooka 153 1.1 pooka int 154 1.1 pooka RUMP_VOP_ACCESS(struct vnode *vp, 155 1.34 christos accmode_t accmode, 156 1.6 pooka struct kauth_cred *cred) 157 1.1 pooka { 158 1.1 pooka int error; 159 1.6 pooka 160 1.6 pooka rump_schedule(); 161 1.34 christos error = VOP_ACCESS(vp, accmode, cred); 162 1.34 christos rump_unschedule(); 163 1.34 christos 164 1.34 christos return error; 165 1.34 christos } 166 1.34 christos 167 1.34 christos int 168 1.34 christos RUMP_VOP_ACCESSX(struct vnode *vp, 169 1.34 christos accmode_t accmode, 170 1.34 christos struct kauth_cred *cred) 171 1.34 christos { 172 1.34 christos int error; 173 1.34 christos 174 1.34 christos rump_schedule(); 175 1.34 christos error = VOP_ACCESSX(vp, accmode, cred); 176 1.3 pooka rump_unschedule(); 177 1.6 pooka 178 1.1 pooka return error; 179 1.1 pooka } 180 1.1 pooka 181 1.1 pooka int 182 1.1 pooka RUMP_VOP_GETATTR(struct vnode *vp, 183 1.1 pooka struct vattr *vap, 184 1.6 pooka struct kauth_cred *cred) 185 1.1 pooka { 186 1.1 pooka int error; 187 1.6 pooka 188 1.6 pooka rump_schedule(); 189 1.6 pooka error = VOP_GETATTR(vp, vap, cred); 190 1.3 pooka rump_unschedule(); 191 1.6 pooka 192 1.1 pooka return error; 193 1.1 pooka } 194 1.1 pooka 195 1.1 pooka int 196 1.1 pooka RUMP_VOP_SETATTR(struct vnode *vp, 197 1.1 pooka struct vattr *vap, 198 1.6 pooka struct kauth_cred *cred) 199 1.1 pooka { 200 1.1 pooka int error; 201 1.6 pooka 202 1.6 pooka rump_schedule(); 203 1.6 pooka error = VOP_SETATTR(vp, vap, cred); 204 1.3 pooka rump_unschedule(); 205 1.6 pooka 206 1.1 pooka return error; 207 1.1 pooka } 208 1.1 pooka 209 1.1 pooka int 210 1.1 pooka RUMP_VOP_READ(struct vnode *vp, 211 1.1 pooka struct uio *uio, 212 1.1 pooka int ioflag, 213 1.6 pooka struct kauth_cred *cred) 214 1.1 pooka { 215 1.1 pooka int error; 216 1.6 pooka 217 1.6 pooka rump_schedule(); 218 1.6 pooka error = VOP_READ(vp, uio, ioflag, cred); 219 1.3 pooka rump_unschedule(); 220 1.6 pooka 221 1.1 pooka return error; 222 1.1 pooka } 223 1.1 pooka 224 1.1 pooka int 225 1.1 pooka RUMP_VOP_WRITE(struct vnode *vp, 226 1.1 pooka struct uio *uio, 227 1.1 pooka int ioflag, 228 1.6 pooka struct kauth_cred *cred) 229 1.1 pooka { 230 1.1 pooka int error; 231 1.6 pooka 232 1.6 pooka rump_schedule(); 233 1.6 pooka error = VOP_WRITE(vp, uio, ioflag, cred); 234 1.3 pooka rump_unschedule(); 235 1.6 pooka 236 1.1 pooka return error; 237 1.1 pooka } 238 1.1 pooka 239 1.1 pooka int 240 1.16 dholland RUMP_VOP_FALLOCATE(struct vnode *vp, 241 1.16 dholland off_t pos, 242 1.16 dholland off_t len) 243 1.16 dholland { 244 1.16 dholland int error; 245 1.16 dholland 246 1.16 dholland rump_schedule(); 247 1.16 dholland error = VOP_FALLOCATE(vp, pos, len); 248 1.16 dholland rump_unschedule(); 249 1.16 dholland 250 1.16 dholland return error; 251 1.16 dholland } 252 1.16 dholland 253 1.16 dholland int 254 1.16 dholland RUMP_VOP_FDISCARD(struct vnode *vp, 255 1.16 dholland off_t pos, 256 1.16 dholland off_t len) 257 1.16 dholland { 258 1.16 dholland int error; 259 1.16 dholland 260 1.16 dholland rump_schedule(); 261 1.16 dholland error = VOP_FDISCARD(vp, pos, len); 262 1.16 dholland rump_unschedule(); 263 1.16 dholland 264 1.16 dholland return error; 265 1.16 dholland } 266 1.16 dholland 267 1.16 dholland int 268 1.1 pooka RUMP_VOP_IOCTL(struct vnode *vp, 269 1.1 pooka u_long command, 270 1.1 pooka void *data, 271 1.1 pooka int fflag, 272 1.6 pooka struct kauth_cred *cred) 273 1.1 pooka { 274 1.1 pooka int error; 275 1.6 pooka 276 1.6 pooka rump_schedule(); 277 1.6 pooka error = VOP_IOCTL(vp, command, data, fflag, cred); 278 1.3 pooka rump_unschedule(); 279 1.6 pooka 280 1.1 pooka return error; 281 1.1 pooka } 282 1.1 pooka 283 1.1 pooka int 284 1.1 pooka RUMP_VOP_FCNTL(struct vnode *vp, 285 1.1 pooka u_int command, 286 1.1 pooka void *data, 287 1.1 pooka int fflag, 288 1.6 pooka struct kauth_cred *cred) 289 1.1 pooka { 290 1.1 pooka int error; 291 1.6 pooka 292 1.6 pooka rump_schedule(); 293 1.6 pooka error = VOP_FCNTL(vp, command, data, fflag, cred); 294 1.3 pooka rump_unschedule(); 295 1.6 pooka 296 1.1 pooka return error; 297 1.1 pooka } 298 1.1 pooka 299 1.1 pooka int 300 1.1 pooka RUMP_VOP_POLL(struct vnode *vp, 301 1.1 pooka int events) 302 1.1 pooka { 303 1.1 pooka int error; 304 1.6 pooka 305 1.6 pooka rump_schedule(); 306 1.6 pooka error = VOP_POLL(vp, events); 307 1.3 pooka rump_unschedule(); 308 1.6 pooka 309 1.1 pooka return error; 310 1.1 pooka } 311 1.1 pooka 312 1.1 pooka int 313 1.1 pooka RUMP_VOP_KQFILTER(struct vnode *vp, 314 1.1 pooka struct knote *kn) 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_KQFILTER(vp, kn); 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_REVOKE(struct vnode *vp, 327 1.1 pooka int flags) 328 1.1 pooka { 329 1.1 pooka int error; 330 1.6 pooka 331 1.6 pooka rump_schedule(); 332 1.6 pooka error = VOP_REVOKE(vp, flags); 333 1.3 pooka rump_unschedule(); 334 1.6 pooka 335 1.1 pooka return error; 336 1.1 pooka } 337 1.1 pooka 338 1.1 pooka int 339 1.1 pooka RUMP_VOP_MMAP(struct vnode *vp, 340 1.1 pooka int prot, 341 1.6 pooka struct kauth_cred *cred) 342 1.1 pooka { 343 1.1 pooka int error; 344 1.6 pooka 345 1.6 pooka rump_schedule(); 346 1.6 pooka error = VOP_MMAP(vp, prot, cred); 347 1.3 pooka rump_unschedule(); 348 1.6 pooka 349 1.1 pooka return error; 350 1.1 pooka } 351 1.1 pooka 352 1.1 pooka int 353 1.1 pooka RUMP_VOP_FSYNC(struct vnode *vp, 354 1.6 pooka struct kauth_cred *cred, 355 1.1 pooka int flags, 356 1.1 pooka off_t offlo, 357 1.1 pooka off_t offhi) 358 1.1 pooka { 359 1.1 pooka int error; 360 1.6 pooka 361 1.6 pooka rump_schedule(); 362 1.6 pooka error = VOP_FSYNC(vp, cred, flags, offlo, offhi); 363 1.3 pooka rump_unschedule(); 364 1.6 pooka 365 1.1 pooka return error; 366 1.1 pooka } 367 1.1 pooka 368 1.1 pooka int 369 1.1 pooka RUMP_VOP_SEEK(struct vnode *vp, 370 1.1 pooka off_t oldoff, 371 1.1 pooka off_t newoff, 372 1.6 pooka struct kauth_cred *cred) 373 1.1 pooka { 374 1.1 pooka int error; 375 1.6 pooka 376 1.6 pooka rump_schedule(); 377 1.6 pooka error = VOP_SEEK(vp, oldoff, newoff, cred); 378 1.3 pooka rump_unschedule(); 379 1.6 pooka 380 1.1 pooka return error; 381 1.1 pooka } 382 1.1 pooka 383 1.1 pooka int 384 1.1 pooka RUMP_VOP_REMOVE(struct vnode *dvp, 385 1.1 pooka struct vnode *vp, 386 1.1 pooka struct componentname *cnp) 387 1.1 pooka { 388 1.1 pooka int error; 389 1.6 pooka 390 1.6 pooka rump_schedule(); 391 1.6 pooka error = VOP_REMOVE(dvp, vp, cnp); 392 1.3 pooka rump_unschedule(); 393 1.6 pooka 394 1.1 pooka return error; 395 1.1 pooka } 396 1.1 pooka 397 1.1 pooka int 398 1.1 pooka RUMP_VOP_LINK(struct vnode *dvp, 399 1.1 pooka struct vnode *vp, 400 1.1 pooka struct componentname *cnp) 401 1.1 pooka { 402 1.1 pooka int error; 403 1.6 pooka 404 1.6 pooka rump_schedule(); 405 1.6 pooka error = VOP_LINK(dvp, vp, cnp); 406 1.3 pooka rump_unschedule(); 407 1.6 pooka 408 1.1 pooka return error; 409 1.1 pooka } 410 1.1 pooka 411 1.1 pooka int 412 1.1 pooka RUMP_VOP_RENAME(struct vnode *fdvp, 413 1.1 pooka struct vnode *fvp, 414 1.1 pooka struct componentname *fcnp, 415 1.1 pooka struct vnode *tdvp, 416 1.1 pooka struct vnode *tvp, 417 1.1 pooka struct componentname *tcnp) 418 1.1 pooka { 419 1.1 pooka int error; 420 1.6 pooka 421 1.6 pooka rump_schedule(); 422 1.6 pooka error = VOP_RENAME(fdvp, fvp, fcnp, tdvp, tvp, tcnp); 423 1.3 pooka rump_unschedule(); 424 1.6 pooka 425 1.1 pooka return error; 426 1.1 pooka } 427 1.1 pooka 428 1.1 pooka int 429 1.1 pooka RUMP_VOP_MKDIR(struct vnode *dvp, 430 1.1 pooka struct vnode **vpp, 431 1.1 pooka struct componentname *cnp, 432 1.1 pooka struct vattr *vap) 433 1.1 pooka { 434 1.1 pooka int error; 435 1.6 pooka 436 1.6 pooka rump_schedule(); 437 1.6 pooka error = VOP_MKDIR(dvp, vpp, cnp, vap); 438 1.6 pooka rump_unschedule(); 439 1.6 pooka 440 1.1 pooka return error; 441 1.1 pooka } 442 1.1 pooka 443 1.1 pooka int 444 1.1 pooka RUMP_VOP_RMDIR(struct vnode *dvp, 445 1.1 pooka struct vnode *vp, 446 1.1 pooka struct componentname *cnp) 447 1.1 pooka { 448 1.1 pooka int error; 449 1.6 pooka 450 1.6 pooka rump_schedule(); 451 1.6 pooka error = VOP_RMDIR(dvp, vp, cnp); 452 1.3 pooka rump_unschedule(); 453 1.6 pooka 454 1.1 pooka return error; 455 1.1 pooka } 456 1.1 pooka 457 1.1 pooka int 458 1.1 pooka RUMP_VOP_SYMLINK(struct vnode *dvp, 459 1.1 pooka struct vnode **vpp, 460 1.1 pooka struct componentname *cnp, 461 1.1 pooka struct vattr *vap, 462 1.1 pooka char *target) 463 1.1 pooka { 464 1.1 pooka int error; 465 1.6 pooka 466 1.6 pooka rump_schedule(); 467 1.6 pooka error = VOP_SYMLINK(dvp, vpp, cnp, vap, target); 468 1.6 pooka rump_unschedule(); 469 1.6 pooka 470 1.1 pooka return error; 471 1.1 pooka } 472 1.1 pooka 473 1.1 pooka int 474 1.1 pooka RUMP_VOP_READDIR(struct vnode *vp, 475 1.1 pooka struct uio *uio, 476 1.6 pooka struct kauth_cred *cred, 477 1.1 pooka int *eofflag, 478 1.1 pooka off_t **cookies, 479 1.1 pooka int *ncookies) 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_READDIR(vp, uio, cred, eofflag, cookies, ncookies); 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_READLINK(struct vnode *vp, 492 1.1 pooka struct uio *uio, 493 1.6 pooka struct kauth_cred *cred) 494 1.1 pooka { 495 1.1 pooka int error; 496 1.6 pooka 497 1.6 pooka rump_schedule(); 498 1.6 pooka error = VOP_READLINK(vp, uio, cred); 499 1.3 pooka rump_unschedule(); 500 1.6 pooka 501 1.1 pooka return error; 502 1.1 pooka } 503 1.1 pooka 504 1.1 pooka int 505 1.1 pooka RUMP_VOP_ABORTOP(struct vnode *dvp, 506 1.1 pooka struct componentname *cnp) 507 1.1 pooka { 508 1.1 pooka int error; 509 1.6 pooka 510 1.6 pooka rump_schedule(); 511 1.6 pooka error = VOP_ABORTOP(dvp, cnp); 512 1.3 pooka rump_unschedule(); 513 1.6 pooka 514 1.1 pooka return error; 515 1.1 pooka } 516 1.1 pooka 517 1.1 pooka int 518 1.1 pooka RUMP_VOP_INACTIVE(struct vnode *vp, 519 1.1 pooka bool *recycle) 520 1.1 pooka { 521 1.1 pooka int error; 522 1.6 pooka 523 1.6 pooka rump_schedule(); 524 1.6 pooka error = VOP_INACTIVE(vp, recycle); 525 1.3 pooka rump_unschedule(); 526 1.6 pooka 527 1.1 pooka return error; 528 1.1 pooka } 529 1.1 pooka 530 1.1 pooka int 531 1.1 pooka RUMP_VOP_RECLAIM(struct vnode *vp) 532 1.1 pooka { 533 1.1 pooka int error; 534 1.6 pooka 535 1.6 pooka rump_schedule(); 536 1.6 pooka error = VOP_RECLAIM(vp); 537 1.3 pooka rump_unschedule(); 538 1.6 pooka 539 1.1 pooka return error; 540 1.1 pooka } 541 1.1 pooka 542 1.1 pooka int 543 1.1 pooka RUMP_VOP_LOCK(struct vnode *vp, 544 1.1 pooka int flags) 545 1.1 pooka { 546 1.1 pooka int error; 547 1.6 pooka 548 1.6 pooka rump_schedule(); 549 1.6 pooka error = VOP_LOCK(vp, flags); 550 1.3 pooka rump_unschedule(); 551 1.6 pooka 552 1.1 pooka return error; 553 1.1 pooka } 554 1.1 pooka 555 1.1 pooka int 556 1.7 hannken RUMP_VOP_UNLOCK(struct vnode *vp) 557 1.1 pooka { 558 1.1 pooka int error; 559 1.6 pooka 560 1.6 pooka rump_schedule(); 561 1.7 hannken error = VOP_UNLOCK(vp); 562 1.3 pooka rump_unschedule(); 563 1.6 pooka 564 1.1 pooka return error; 565 1.1 pooka } 566 1.1 pooka 567 1.1 pooka int 568 1.1 pooka RUMP_VOP_BMAP(struct vnode *vp, 569 1.12 pooka int64_t bn, 570 1.1 pooka struct vnode **vpp, 571 1.12 pooka int64_t *bnp, 572 1.1 pooka int *runp) 573 1.1 pooka { 574 1.1 pooka int error; 575 1.6 pooka 576 1.6 pooka rump_schedule(); 577 1.6 pooka error = VOP_BMAP(vp, bn, vpp, bnp, runp); 578 1.3 pooka rump_unschedule(); 579 1.6 pooka 580 1.1 pooka return error; 581 1.1 pooka } 582 1.1 pooka 583 1.1 pooka int 584 1.1 pooka RUMP_VOP_STRATEGY(struct vnode *vp, 585 1.1 pooka struct buf *bp) 586 1.1 pooka { 587 1.1 pooka int error; 588 1.6 pooka 589 1.6 pooka rump_schedule(); 590 1.6 pooka error = VOP_STRATEGY(vp, bp); 591 1.3 pooka rump_unschedule(); 592 1.6 pooka 593 1.1 pooka return error; 594 1.1 pooka } 595 1.1 pooka 596 1.1 pooka int 597 1.1 pooka RUMP_VOP_PRINT(struct vnode *vp) 598 1.1 pooka { 599 1.1 pooka int error; 600 1.6 pooka 601 1.6 pooka rump_schedule(); 602 1.6 pooka error = VOP_PRINT(vp); 603 1.3 pooka rump_unschedule(); 604 1.6 pooka 605 1.1 pooka return error; 606 1.1 pooka } 607 1.1 pooka 608 1.1 pooka int 609 1.1 pooka RUMP_VOP_ISLOCKED(struct vnode *vp) 610 1.1 pooka { 611 1.1 pooka int error; 612 1.6 pooka 613 1.6 pooka rump_schedule(); 614 1.6 pooka error = VOP_ISLOCKED(vp); 615 1.3 pooka rump_unschedule(); 616 1.6 pooka 617 1.1 pooka return error; 618 1.1 pooka } 619 1.1 pooka 620 1.1 pooka int 621 1.1 pooka RUMP_VOP_PATHCONF(struct vnode *vp, 622 1.1 pooka int name, 623 1.1 pooka register_t *retval) 624 1.1 pooka { 625 1.1 pooka int error; 626 1.6 pooka 627 1.6 pooka rump_schedule(); 628 1.6 pooka error = VOP_PATHCONF(vp, name, retval); 629 1.3 pooka rump_unschedule(); 630 1.6 pooka 631 1.1 pooka return error; 632 1.1 pooka } 633 1.1 pooka 634 1.1 pooka int 635 1.1 pooka RUMP_VOP_ADVLOCK(struct vnode *vp, 636 1.1 pooka void *id, 637 1.1 pooka int op, 638 1.1 pooka struct flock *fl, 639 1.1 pooka int flags) 640 1.1 pooka { 641 1.1 pooka int error; 642 1.6 pooka 643 1.6 pooka rump_schedule(); 644 1.6 pooka error = VOP_ADVLOCK(vp, id, op, fl, flags); 645 1.3 pooka rump_unschedule(); 646 1.6 pooka 647 1.1 pooka return error; 648 1.1 pooka } 649 1.1 pooka 650 1.1 pooka int 651 1.1 pooka RUMP_VOP_WHITEOUT(struct vnode *dvp, 652 1.1 pooka struct componentname *cnp, 653 1.1 pooka int flags) 654 1.1 pooka { 655 1.1 pooka int error; 656 1.6 pooka 657 1.6 pooka rump_schedule(); 658 1.6 pooka error = VOP_WHITEOUT(dvp, cnp, flags); 659 1.3 pooka rump_unschedule(); 660 1.6 pooka 661 1.1 pooka return error; 662 1.1 pooka } 663 1.1 pooka 664 1.1 pooka int 665 1.1 pooka RUMP_VOP_GETPAGES(struct vnode *vp, 666 1.1 pooka off_t offset, 667 1.1 pooka struct vm_page **m, 668 1.1 pooka int *count, 669 1.1 pooka int centeridx, 670 1.1 pooka int access_type, 671 1.1 pooka int advice, 672 1.1 pooka int flags) 673 1.1 pooka { 674 1.1 pooka int error; 675 1.6 pooka 676 1.6 pooka rump_schedule(); 677 1.6 pooka error = VOP_GETPAGES(vp, offset, m, count, centeridx, access_type, advice, flags); 678 1.3 pooka rump_unschedule(); 679 1.6 pooka 680 1.1 pooka return error; 681 1.1 pooka } 682 1.1 pooka 683 1.1 pooka int 684 1.1 pooka RUMP_VOP_PUTPAGES(struct vnode *vp, 685 1.1 pooka off_t offlo, 686 1.1 pooka off_t offhi, 687 1.1 pooka int flags) 688 1.1 pooka { 689 1.1 pooka int error; 690 1.6 pooka 691 1.6 pooka rump_schedule(); 692 1.6 pooka error = VOP_PUTPAGES(vp, offlo, offhi, flags); 693 1.3 pooka rump_unschedule(); 694 1.6 pooka 695 1.1 pooka return error; 696 1.1 pooka } 697 1.1 pooka 698 1.1 pooka int 699 1.34 christos RUMP_VOP_GETACL(struct vnode *vp, 700 1.34 christos acl_type_t type, 701 1.34 christos struct acl *aclp, 702 1.34 christos struct kauth_cred *cred) 703 1.34 christos { 704 1.34 christos int error; 705 1.34 christos 706 1.34 christos rump_schedule(); 707 1.34 christos error = VOP_GETACL(vp, type, aclp, cred); 708 1.34 christos rump_unschedule(); 709 1.34 christos 710 1.34 christos return error; 711 1.34 christos } 712 1.34 christos 713 1.34 christos int 714 1.34 christos RUMP_VOP_SETACL(struct vnode *vp, 715 1.34 christos acl_type_t type, 716 1.34 christos struct acl *aclp, 717 1.34 christos struct kauth_cred *cred) 718 1.34 christos { 719 1.34 christos int error; 720 1.34 christos 721 1.34 christos rump_schedule(); 722 1.34 christos error = VOP_SETACL(vp, type, aclp, cred); 723 1.34 christos rump_unschedule(); 724 1.34 christos 725 1.34 christos return error; 726 1.34 christos } 727 1.34 christos 728 1.34 christos int 729 1.34 christos RUMP_VOP_ACLCHECK(struct vnode *vp, 730 1.34 christos acl_type_t type, 731 1.34 christos struct acl *aclp, 732 1.34 christos struct kauth_cred *cred) 733 1.34 christos { 734 1.34 christos int error; 735 1.34 christos 736 1.34 christos rump_schedule(); 737 1.34 christos error = VOP_ACLCHECK(vp, type, aclp, cred); 738 1.34 christos rump_unschedule(); 739 1.34 christos 740 1.34 christos return error; 741 1.34 christos } 742 1.34 christos 743 1.34 christos int 744 1.1 pooka RUMP_VOP_CLOSEEXTATTR(struct vnode *vp, 745 1.1 pooka int commit, 746 1.6 pooka struct kauth_cred *cred) 747 1.1 pooka { 748 1.1 pooka int error; 749 1.6 pooka 750 1.6 pooka rump_schedule(); 751 1.6 pooka error = VOP_CLOSEEXTATTR(vp, commit, cred); 752 1.3 pooka rump_unschedule(); 753 1.6 pooka 754 1.1 pooka return error; 755 1.1 pooka } 756 1.1 pooka 757 1.1 pooka int 758 1.1 pooka RUMP_VOP_GETEXTATTR(struct vnode *vp, 759 1.1 pooka int attrnamespace, 760 1.1 pooka const char *name, 761 1.1 pooka struct uio *uio, 762 1.1 pooka size_t *size, 763 1.6 pooka struct kauth_cred *cred) 764 1.1 pooka { 765 1.1 pooka int error; 766 1.6 pooka 767 1.6 pooka rump_schedule(); 768 1.6 pooka error = VOP_GETEXTATTR(vp, attrnamespace, name, uio, size, cred); 769 1.3 pooka rump_unschedule(); 770 1.6 pooka 771 1.1 pooka return error; 772 1.1 pooka } 773 1.1 pooka 774 1.1 pooka int 775 1.1 pooka RUMP_VOP_LISTEXTATTR(struct vnode *vp, 776 1.1 pooka int attrnamespace, 777 1.1 pooka struct uio *uio, 778 1.1 pooka size_t *size, 779 1.9 manu int flag, 780 1.6 pooka struct kauth_cred *cred) 781 1.1 pooka { 782 1.1 pooka int error; 783 1.6 pooka 784 1.6 pooka rump_schedule(); 785 1.9 manu error = VOP_LISTEXTATTR(vp, attrnamespace, uio, size, flag, cred); 786 1.3 pooka rump_unschedule(); 787 1.6 pooka 788 1.1 pooka return error; 789 1.1 pooka } 790 1.1 pooka 791 1.1 pooka int 792 1.1 pooka RUMP_VOP_OPENEXTATTR(struct vnode *vp, 793 1.6 pooka struct kauth_cred *cred) 794 1.1 pooka { 795 1.1 pooka int error; 796 1.6 pooka 797 1.6 pooka rump_schedule(); 798 1.6 pooka error = VOP_OPENEXTATTR(vp, cred); 799 1.3 pooka rump_unschedule(); 800 1.6 pooka 801 1.1 pooka return error; 802 1.1 pooka } 803 1.1 pooka 804 1.1 pooka int 805 1.1 pooka RUMP_VOP_DELETEEXTATTR(struct vnode *vp, 806 1.1 pooka int attrnamespace, 807 1.1 pooka const char *name, 808 1.6 pooka struct kauth_cred *cred) 809 1.1 pooka { 810 1.1 pooka int error; 811 1.6 pooka 812 1.6 pooka rump_schedule(); 813 1.6 pooka error = VOP_DELETEEXTATTR(vp, attrnamespace, name, cred); 814 1.3 pooka rump_unschedule(); 815 1.6 pooka 816 1.1 pooka return error; 817 1.1 pooka } 818 1.1 pooka 819 1.1 pooka int 820 1.1 pooka RUMP_VOP_SETEXTATTR(struct vnode *vp, 821 1.1 pooka int attrnamespace, 822 1.1 pooka const char *name, 823 1.1 pooka struct uio *uio, 824 1.6 pooka struct kauth_cred *cred) 825 1.1 pooka { 826 1.1 pooka int error; 827 1.6 pooka 828 1.6 pooka rump_schedule(); 829 1.6 pooka error = VOP_SETEXTATTR(vp, attrnamespace, name, uio, cred); 830 1.6 pooka rump_unschedule(); 831 1.6 pooka 832 1.6 pooka return error; 833 1.6 pooka } 834