Deleted Added
full compact
vfs_extattr.c (102112) vfs_extattr.c (102129)
1/*
2 * Copyright (c) 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_syscalls.c 8.13 (Berkeley) 4/15/94
1/*
2 * Copyright (c) 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_syscalls.c 8.13 (Berkeley) 4/15/94
39 * $FreeBSD: head/sys/kern/vfs_extattr.c 102112 2002-08-19 16:43:25Z rwatson $
39 * $FreeBSD: head/sys/kern/vfs_extattr.c 102129 2002-08-19 19:04:53Z rwatson $
40 */
41
42/* For 4.3 integer FS ID compatibility */
43#include "opt_compat.h"
44#include "opt_mac.h"
45
46#include <sys/param.h>
47#include <sys/systm.h>

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

729 if (flags & O_TRUNC) {
730 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0)
731 goto bad;
732 VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
733 VATTR_NULL(&vat);
734 vat.va_size = 0;
735 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
736#ifdef MAC
40 */
41
42/* For 4.3 integer FS ID compatibility */
43#include "opt_compat.h"
44#include "opt_mac.h"
45
46#include <sys/param.h>
47#include <sys/systm.h>

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

729 if (flags & O_TRUNC) {
730 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0)
731 goto bad;
732 VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
733 VATTR_NULL(&vat);
734 vat.va_size = 0;
735 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
736#ifdef MAC
737 error = mac_check_vnode_write(td->td_ucred, vp);
737 error = mac_check_vnode_write(td->td_ucred, fp->f_cred, vp);
738 if (error == 0)
739#endif
740 error = VOP_SETATTR(vp, &vat, td->td_ucred, td);
741 VOP_UNLOCK(vp, 0, td);
742 vn_finished_write(mp);
743 if (error)
744 goto bad;
745 }

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

2362 return (error);
2363 }
2364 NDFREE(&nd, NDF_ONLY_PNBUF);
2365 VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
2366 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
2367 if (vp->v_type == VDIR)
2368 error = EISDIR;
2369#ifdef MAC
738 if (error == 0)
739#endif
740 error = VOP_SETATTR(vp, &vat, td->td_ucred, td);
741 VOP_UNLOCK(vp, 0, td);
742 vn_finished_write(mp);
743 if (error)
744 goto bad;
745 }

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

2362 return (error);
2363 }
2364 NDFREE(&nd, NDF_ONLY_PNBUF);
2365 VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
2366 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
2367 if (vp->v_type == VDIR)
2368 error = EISDIR;
2369#ifdef MAC
2370 else if ((error = mac_check_vnode_write(td->td_ucred, vp))) {}
2370 else if ((error = mac_check_vnode_write(td->td_ucred, NOCRED, vp))) {
2371 }
2371#endif
2372 else if ((error = vn_writechk(vp)) == 0 &&
2373 (error = VOP_ACCESS(vp, VWRITE, td->td_ucred, td)) == 0) {
2374 VATTR_NULL(&vattr);
2375 vattr.va_size = SCARG(uap, length);
2376 error = VOP_SETATTR(vp, &vattr, td->td_ucred, td);
2377 }
2378 vput(vp);

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

2419 fdrop(fp, td);
2420 return (error);
2421 }
2422 VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
2423 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
2424 if (vp->v_type == VDIR)
2425 error = EISDIR;
2426#ifdef MAC
2372#endif
2373 else if ((error = vn_writechk(vp)) == 0 &&
2374 (error = VOP_ACCESS(vp, VWRITE, td->td_ucred, td)) == 0) {
2375 VATTR_NULL(&vattr);
2376 vattr.va_size = SCARG(uap, length);
2377 error = VOP_SETATTR(vp, &vattr, td->td_ucred, td);
2378 }
2379 vput(vp);

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

2420 fdrop(fp, td);
2421 return (error);
2422 }
2423 VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
2424 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
2425 if (vp->v_type == VDIR)
2426 error = EISDIR;
2427#ifdef MAC
2427 else if ((error = mac_check_vnode_write(td->td_ucred, vp))) {}
2428 else if ((error = mac_check_vnode_write(td->td_ucred, fp->f_cred,
2429 vp))) {
2430 }
2428#endif
2429 else if ((error = vn_writechk(vp)) == 0) {
2430 VATTR_NULL(&vattr);
2431 vattr.va_size = SCARG(uap, length);
2432 error = VOP_SETATTR(vp, &vattr, fp->f_cred, td);
2433 }
2434 VOP_UNLOCK(vp, 0, td);
2435 vn_finished_write(mp);

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

3337 VOP_UNLOCK(vp, 0, td); /* XXX */
3338 if ((error = vn_start_write(NULL, &mp, V_WAIT | PCATCH)) != 0) {
3339 vrele(vp);
3340 return (error);
3341 }
3342 VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
3343 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); /* XXX */
3344#ifdef MAC
2431#endif
2432 else if ((error = vn_writechk(vp)) == 0) {
2433 VATTR_NULL(&vattr);
2434 vattr.va_size = SCARG(uap, length);
2435 error = VOP_SETATTR(vp, &vattr, fp->f_cred, td);
2436 }
2437 VOP_UNLOCK(vp, 0, td);
2438 vn_finished_write(mp);

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

3340 VOP_UNLOCK(vp, 0, td); /* XXX */
3341 if ((error = vn_start_write(NULL, &mp, V_WAIT | PCATCH)) != 0) {
3342 vrele(vp);
3343 return (error);
3344 }
3345 VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
3346 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); /* XXX */
3347#ifdef MAC
3345 error = mac_check_vnode_write(td->td_ucred, vp);
3348 /*
3349 * We don't yet have fp->f_cred, so use td->td_ucred, which
3350 * should be right.
3351 */
3352 error = mac_check_vnode_write(td->td_ucred, td->td_ucred, vp);
3346 if (error == 0) {
3347#endif
3348 VATTR_NULL(vap);
3349 vap->va_size = 0;
3350 error = VOP_SETATTR(vp, vap, td->td_ucred, td);
3351#ifdef MAC
3352 }
3353#endif

--- 609 unchanged lines hidden ---
3353 if (error == 0) {
3354#endif
3355 VATTR_NULL(vap);
3356 vap->va_size = 0;
3357 error = VOP_SETATTR(vp, vap, td->td_ucred, td);
3358#ifdef MAC
3359 }
3360#endif

--- 609 unchanged lines hidden ---