Deleted Added
full compact
tmpfs_vnops.c (230120) tmpfs_vnops.c (230180)
1/* $NetBSD: tmpfs_vnops.c,v 1.39 2007/07/23 15:41:01 jmmv Exp $ */
2
3/*-
4 * Copyright (c) 2005, 2006 The NetBSD Foundation, Inc.
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Julio M. Merino Vidal, developed as part of Google's Summer of Code

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

29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/*
34 * tmpfs vnode interface.
35 */
36#include <sys/cdefs.h>
1/* $NetBSD: tmpfs_vnops.c,v 1.39 2007/07/23 15:41:01 jmmv Exp $ */
2
3/*-
4 * Copyright (c) 2005, 2006 The NetBSD Foundation, Inc.
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Julio M. Merino Vidal, developed as part of Google's Summer of Code

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

29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/*
34 * tmpfs vnode interface.
35 */
36#include <sys/cdefs.h>
37__FBSDID("$FreeBSD: head/sys/fs/tmpfs/tmpfs_vnops.c 230120 2012-01-14 23:04:27Z alc $");
37__FBSDID("$FreeBSD: head/sys/fs/tmpfs/tmpfs_vnops.c 230180 2012-01-16 00:26:49Z alc $");
38
39#include <sys/param.h>
40#include <sys/fcntl.h>
41#include <sys/lockf.h>
42#include <sys/namei.h>
43#include <sys/priv.h>
44#include <sys/proc.h>
45#include <sys/sched.h>

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

742 VFS_TO_TMPFS(vp->v_mount)->tm_maxfilesize)
743 return (EFBIG);
744
745 if (vn_rlimit_fsize(vp, uio, uio->uio_td))
746 return (EFBIG);
747
748 extended = uio->uio_offset + uio->uio_resid > node->tn_size;
749 if (extended) {
38
39#include <sys/param.h>
40#include <sys/fcntl.h>
41#include <sys/lockf.h>
42#include <sys/namei.h>
43#include <sys/priv.h>
44#include <sys/proc.h>
45#include <sys/sched.h>

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

742 VFS_TO_TMPFS(vp->v_mount)->tm_maxfilesize)
743 return (EFBIG);
744
745 if (vn_rlimit_fsize(vp, uio, uio->uio_td))
746 return (EFBIG);
747
748 extended = uio->uio_offset + uio->uio_resid > node->tn_size;
749 if (extended) {
750 error = tmpfs_reg_resize(vp, uio->uio_offset + uio->uio_resid);
750 error = tmpfs_reg_resize(vp, uio->uio_offset + uio->uio_resid,
751 FALSE);
751 if (error != 0)
752 goto out;
753 }
754
755 uobj = node->tn_reg.tn_aobj;
756 while ((resid = uio->uio_resid) > 0) {
757 if (node->tn_size <= uio->uio_offset)
758 break;

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

768 (extended ? TMPFS_NODE_CHANGED : 0);
769
770 if (node->tn_mode & (S_ISUID | S_ISGID)) {
771 if (priv_check_cred(v->a_cred, PRIV_VFS_RETAINSUGID, 0))
772 node->tn_mode &= ~(S_ISUID | S_ISGID);
773 }
774
775 if (error != 0)
752 if (error != 0)
753 goto out;
754 }
755
756 uobj = node->tn_reg.tn_aobj;
757 while ((resid = uio->uio_resid) > 0) {
758 if (node->tn_size <= uio->uio_offset)
759 break;

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

769 (extended ? TMPFS_NODE_CHANGED : 0);
770
771 if (node->tn_mode & (S_ISUID | S_ISGID)) {
772 if (priv_check_cred(v->a_cred, PRIV_VFS_RETAINSUGID, 0))
773 node->tn_mode &= ~(S_ISUID | S_ISGID);
774 }
775
776 if (error != 0)
776 (void)tmpfs_reg_resize(vp, oldsize);
777 (void)tmpfs_reg_resize(vp, oldsize, TRUE);
777
778out:
779 MPASS(IMPLIES(error == 0, uio->uio_resid == 0));
780 MPASS(IMPLIES(error != 0, oldsize == node->tn_size));
781
782 return error;
783}
784

--- 828 unchanged lines hidden ---
778
779out:
780 MPASS(IMPLIES(error == 0, uio->uio_resid == 0));
781 MPASS(IMPLIES(error != 0, oldsize == node->tn_size));
782
783 return error;
784}
785

--- 828 unchanged lines hidden ---