Deleted Added
full compact
vfs_vnops.c (102112) vfs_vnops.c (102129)
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 102112 2002-08-19 16:43:25Z rwatson $
39 * $FreeBSD: head/sys/kern/vfs_vnops.c 102129 2002-08-19 19:04:53Z 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_read(active_cred, vp);
405 error = mac_check_vnode_read(active_cred, file_cred,
406 vp);
406 else
407 else
407 error = mac_check_vnode_write(active_cred, vp);
408 error = mac_check_vnode_write(active_cred, file_cred,
409 vp);
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
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
508 error = mac_check_vnode_read(active_cred, vp);
510 error = mac_check_vnode_read(active_cred, fp->f_cred, vp);
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
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
563 error = mac_check_vnode_write(active_cred, vp);
565 error = mac_check_vnode_write(active_cred, fp->f_cred, vp);
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);

--- 33 unchanged lines hidden (view full) ---

605 struct thread *td;
606{
607 struct vattr vattr;
608 register struct vattr *vap;
609 int error;
610 u_short mode;
611
612#ifdef MAC
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);

--- 33 unchanged lines hidden (view full) ---

607 struct thread *td;
608{
609 struct vattr vattr;
610 register struct vattr *vap;
611 int error;
612 u_short mode;
613
614#ifdef MAC
613 error = mac_check_vnode_stat(active_cred, vp);
615 error = mac_check_vnode_stat(active_cred, file_cred, vp);
614 if (error)
615 return (error);
616#endif
617
618 vap = &vattr;
619 error = VOP_GETATTR(vp, vap, active_cred, td);
620 if (error)
621 return (error);

--- 178 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);
616 if (error)
617 return (error);
618#endif
619
620 vap = &vattr;
621 error = VOP_GETATTR(vp, vap, active_cred, td);
622 if (error)
623 return (error);

--- 178 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);
808 error = mac_check_vnode_poll(active_cred, vp);
810 error = mac_check_vnode_poll(active_cred, fp->f_cred, vp);
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 ---
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 ---