Deleted Added
full compact
vfs_extattr.c (101983) vfs_extattr.c (102112)
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 101983 2002-08-16 12:52:03Z rwatson $
39 * $FreeBSD: head/sys/kern/vfs_extattr.c 102112 2002-08-19 16:43:25Z 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_op(td->td_ucred, vp,
738 MAC_OP_VNODE_WRITE);
737 error = mac_check_vnode_write(td->td_ucred, vp);
739 if (error == 0)
740#endif
741 error = VOP_SETATTR(vp, &vat, td->td_ucred, td);
742 VOP_UNLOCK(vp, 0, td);
743 vn_finished_write(mp);
744 if (error)
745 goto bad;
746 }

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

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

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

2421 fdrop(fp, td);
2422 return (error);
2423 }
2424 VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
2425 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
2426 if (vp->v_type == VDIR)
2427 error = EISDIR;
2428#ifdef MAC
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
2429 else if ((error = mac_check_vnode_op(td->td_ucred, vp,
2430 MAC_OP_VNODE_WRITE))) {}
2427 else if ((error = mac_check_vnode_write(td->td_ucred, vp))) {}
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
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
3348 error = mac_check_vnode_op(td->td_ucred, vp,
3349 MAC_OP_VNODE_WRITE);
3345 error = mac_check_vnode_write(td->td_ucred, vp);
3350 if (error == 0) {
3351#endif
3352 VATTR_NULL(vap);
3353 vap->va_size = 0;
3354 error = VOP_SETATTR(vp, vap, td->td_ucred, td);
3355#ifdef MAC
3356 }
3357#endif

--- 609 unchanged lines hidden ---
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 ---