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