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 --- |