vfs_vnops.c (102003) | vfs_vnops.c (102112) |
---|---|
1/* 2 * Copyright (c) 1982, 1986, 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * (c) UNIX System Laboratories, Inc. 5 * All or some portions of this file are derived from material licensed 6 * to the University of California by American Telephone and Telegraph 7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with 8 * the permission of UNIX System Laboratories, Inc. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)vfs_vnops.c 8.2 (Berkeley) 1/21/94 | 1/* 2 * Copyright (c) 1982, 1986, 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * (c) UNIX System Laboratories, Inc. 5 * All or some portions of this file are derived from material licensed 6 * to the University of California by American Telephone and Telegraph 7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with 8 * the permission of UNIX System Laboratories, Inc. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)vfs_vnops.c 8.2 (Berkeley) 1/21/94 |
39 * $FreeBSD: head/sys/kern/vfs_vnops.c 102003 2002-08-17 02:36:16Z rwatson $ | 39 * $FreeBSD: head/sys/kern/vfs_vnops.c 102112 2002-08-19 16:43:25Z rwatson $ |
40 */ 41 42#include "opt_mac.h" 43 44#include <sys/param.h> 45#include <sys/systm.h> 46#include <sys/fcntl.h> 47#include <sys/file.h> --- 349 unchanged lines hidden (view full) --- 397 auio.uio_offset = offset; 398 auio.uio_segflg = segflg; 399 auio.uio_rw = rw; 400 auio.uio_td = td; 401 error = 0; 402#ifdef MAC 403 if ((ioflg & IO_NOMACCHECK) == 0) { 404 if (rw == UIO_READ) | 40 */ 41 42#include "opt_mac.h" 43 44#include <sys/param.h> 45#include <sys/systm.h> 46#include <sys/fcntl.h> 47#include <sys/file.h> --- 349 unchanged lines hidden (view full) --- 397 auio.uio_offset = offset; 398 auio.uio_segflg = segflg; 399 auio.uio_rw = rw; 400 auio.uio_td = td; 401 error = 0; 402#ifdef MAC 403 if ((ioflg & IO_NOMACCHECK) == 0) { 404 if (rw == UIO_READ) |
405 error = mac_check_vnode_op(active_cred, vp, 406 MAC_OP_VNODE_READ); | 405 error = mac_check_vnode_read(active_cred, vp); |
407 else | 406 else |
408 error = mac_check_vnode_op(active_cred, vp, 409 MAC_OP_VNODE_WRITE); | 407 error = mac_check_vnode_write(active_cred, vp); |
410 } 411#endif 412 if (error == 0) { 413 if (file_cred) 414 cred = file_cred; 415 else 416 cred = active_cred; 417 if (rw == UIO_READ) --- 84 unchanged lines hidden (view full) --- 502 VOP_LEASE(vp, td, fp->f_cred, LEASE_READ); 503 vn_lock(vp, LK_SHARED | LK_NOPAUSE | LK_RETRY, td); 504 if ((flags & FOF_OFFSET) == 0) 505 uio->uio_offset = fp->f_offset; 506 507 ioflag |= sequential_heuristic(uio, fp); 508 509#ifdef MAC | 408 } 409#endif 410 if (error == 0) { 411 if (file_cred) 412 cred = file_cred; 413 else 414 cred = active_cred; 415 if (rw == UIO_READ) --- 84 unchanged lines hidden (view full) --- 500 VOP_LEASE(vp, td, fp->f_cred, LEASE_READ); 501 vn_lock(vp, LK_SHARED | LK_NOPAUSE | LK_RETRY, td); 502 if ((flags & FOF_OFFSET) == 0) 503 uio->uio_offset = fp->f_offset; 504 505 ioflag |= sequential_heuristic(uio, fp); 506 507#ifdef MAC |
510 error = mac_check_vnode_op(active_cred, vp, MAC_OP_VNODE_READ); | 508 error = mac_check_vnode_read(active_cred, vp); |
511 if (error == 0) 512#endif 513 error = VOP_READ(vp, uio, ioflag, fp->f_cred); 514 if ((flags & FOF_OFFSET) == 0) 515 fp->f_offset = uio->uio_offset; 516 fp->f_nextoff = uio->uio_offset; 517 VOP_UNLOCK(vp, 0, td); 518 mtx_unlock(&Giant); --- 38 unchanged lines hidden (view full) --- 557 return (error); 558 } 559 VOP_LEASE(vp, td, fp->f_cred, LEASE_WRITE); 560 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); 561 if ((flags & FOF_OFFSET) == 0) 562 uio->uio_offset = fp->f_offset; 563 ioflag |= sequential_heuristic(uio, fp); 564#ifdef MAC | 509 if (error == 0) 510#endif 511 error = VOP_READ(vp, uio, ioflag, fp->f_cred); 512 if ((flags & FOF_OFFSET) == 0) 513 fp->f_offset = uio->uio_offset; 514 fp->f_nextoff = uio->uio_offset; 515 VOP_UNLOCK(vp, 0, td); 516 mtx_unlock(&Giant); --- 38 unchanged lines hidden (view full) --- 555 return (error); 556 } 557 VOP_LEASE(vp, td, fp->f_cred, LEASE_WRITE); 558 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); 559 if ((flags & FOF_OFFSET) == 0) 560 uio->uio_offset = fp->f_offset; 561 ioflag |= sequential_heuristic(uio, fp); 562#ifdef MAC |
565 error = mac_check_vnode_op(active_cred, vp, MAC_OP_VNODE_WRITE); | 563 error = mac_check_vnode_write(active_cred, vp); |
566 if (error == 0) 567#endif 568 error = VOP_WRITE(vp, uio, ioflag, fp->f_cred); 569 if ((flags & FOF_OFFSET) == 0) 570 fp->f_offset = uio->uio_offset; 571 fp->f_nextoff = uio->uio_offset; 572 VOP_UNLOCK(vp, 0, td); 573 vn_finished_write(mp); --- 228 unchanged lines hidden (view full) --- 802 struct vnode *vp; 803#ifdef MAC 804 int error; 805#endif 806 807 vp = (struct vnode *)fp->f_data; 808#ifdef MAC 809 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); | 564 if (error == 0) 565#endif 566 error = VOP_WRITE(vp, uio, ioflag, fp->f_cred); 567 if ((flags & FOF_OFFSET) == 0) 568 fp->f_offset = uio->uio_offset; 569 fp->f_nextoff = uio->uio_offset; 570 VOP_UNLOCK(vp, 0, td); 571 vn_finished_write(mp); --- 228 unchanged lines hidden (view full) --- 800 struct vnode *vp; 801#ifdef MAC 802 int error; 803#endif 804 805 vp = (struct vnode *)fp->f_data; 806#ifdef MAC 807 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); |
810 error = mac_check_vnode_op(active_cred, vp, MAC_OP_VNODE_POLL); | 808 error = mac_check_vnode_poll(active_cred, vp); |
811 VOP_UNLOCK(vp, 0, td); 812 if (error) 813 return (error); 814#endif 815 816 return (VOP_POLL(vp, events, fp->f_cred, td)); 817} 818 --- 312 unchanged lines hidden --- | 809 VOP_UNLOCK(vp, 0, td); 810 if (error) 811 return (error); 812#endif 813 814 return (VOP_POLL(vp, events, fp->f_cred, td)); 815} 816 --- 312 unchanged lines hidden --- |