vfs_syscalls.c (34951) | vfs_syscalls.c (35105) |
---|---|
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 * $Id: vfs_syscalls.c,v 1.95 1998/03/08 09:57:21 julian Exp $ | 39 * $Id: vfs_syscalls.c,v 1.96 1998/03/29 18:23:44 dyson Exp $ |
40 */ 41 42/* For 4.3 integer FS ID compatibility */ 43#include "opt_compat.h" 44 45/* 46 * XXX - The following is required because of some magic done 47 * in getdirentries() below which is only done if the translucent --- 212 unchanged lines hidden (view full) --- 260 * Set the mount level flags. 261 */ 262 if (SCARG(uap, flags) & MNT_RDONLY) 263 mp->mnt_flag |= MNT_RDONLY; 264 else if (mp->mnt_flag & MNT_RDONLY) 265 mp->mnt_kern_flag |= MNTK_WANTRDWR; 266 mp->mnt_flag &=~ (MNT_NOSUID | MNT_NOEXEC | MNT_NODEV | 267 MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | MNT_NOATIME | | 40 */ 41 42/* For 4.3 integer FS ID compatibility */ 43#include "opt_compat.h" 44 45/* 46 * XXX - The following is required because of some magic done 47 * in getdirentries() below which is only done if the translucent --- 212 unchanged lines hidden (view full) --- 260 * Set the mount level flags. 261 */ 262 if (SCARG(uap, flags) & MNT_RDONLY) 263 mp->mnt_flag |= MNT_RDONLY; 264 else if (mp->mnt_flag & MNT_RDONLY) 265 mp->mnt_kern_flag |= MNTK_WANTRDWR; 266 mp->mnt_flag &=~ (MNT_NOSUID | MNT_NOEXEC | MNT_NODEV | 267 MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | MNT_NOATIME | |
268 MNT_NOSYMFOLLOW | |
|
268 MNT_NOCLUSTERR | MNT_NOCLUSTERW | MNT_SUIDDIR); 269 mp->mnt_flag |= SCARG(uap, flags) & (MNT_NOSUID | MNT_NOEXEC | 270 MNT_NODEV | MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | MNT_FORCE | | 269 MNT_NOCLUSTERR | MNT_NOCLUSTERW | MNT_SUIDDIR); 270 mp->mnt_flag |= SCARG(uap, flags) & (MNT_NOSUID | MNT_NOEXEC | 271 MNT_NODEV | MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | MNT_FORCE | |
272 MNT_NOSYMFOLLOW | |
|
271 MNT_NOATIME | MNT_NOCLUSTERR | MNT_NOCLUSTERW | MNT_SUIDDIR); 272 /* 273 * Mount the filesystem. 274 */ 275 error = VFS_MOUNT(mp, SCARG(uap, path), SCARG(uap, data), &nd, p); 276 if (mp->mnt_flag & MNT_UPDATE) { 277 vrele(vp); 278 if (mp->mnt_kern_flag & MNTK_WANTRDWR) --- 1219 unchanged lines hidden (view full) --- 1498 struct nameidata nd; 1499 1500 NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | NOOBJ, UIO_USERSPACE, 1501 SCARG(uap, path), p); 1502 if (error = namei(&nd)) 1503 return (error); 1504 vp = nd.ni_vp; 1505 error = vn_stat(vp, &sb, p); | 273 MNT_NOATIME | MNT_NOCLUSTERR | MNT_NOCLUSTERW | MNT_SUIDDIR); 274 /* 275 * Mount the filesystem. 276 */ 277 error = VFS_MOUNT(mp, SCARG(uap, path), SCARG(uap, data), &nd, p); 278 if (mp->mnt_flag & MNT_UPDATE) { 279 vrele(vp); 280 if (mp->mnt_kern_flag & MNTK_WANTRDWR) --- 1219 unchanged lines hidden (view full) --- 1500 struct nameidata nd; 1501 1502 NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | NOOBJ, UIO_USERSPACE, 1503 SCARG(uap, path), p); 1504 if (error = namei(&nd)) 1505 return (error); 1506 vp = nd.ni_vp; 1507 error = vn_stat(vp, &sb, p); |
1506 if (vp->v_type == VLNK) 1507 sb.st_mode |= S_IFLNK | ACCESSPERMS; /* 0777 */ | |
1508 vput(vp); 1509 if (error) 1510 return (error); 1511 cvtstat(&sb, &osb); 1512 error = copyout((caddr_t)&osb, (caddr_t)SCARG(uap, ub), sizeof (osb)); 1513 return (error); 1514} 1515 --- 85 unchanged lines hidden (view full) --- 1601 struct nameidata nd; 1602 1603 NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | NOOBJ, UIO_USERSPACE, 1604 SCARG(uap, path), p); 1605 if (error = namei(&nd)) 1606 return (error); 1607 vp = nd.ni_vp; 1608 error = vn_stat(vp, &sb, p); | 1508 vput(vp); 1509 if (error) 1510 return (error); 1511 cvtstat(&sb, &osb); 1512 error = copyout((caddr_t)&osb, (caddr_t)SCARG(uap, ub), sizeof (osb)); 1513 return (error); 1514} 1515 --- 85 unchanged lines hidden (view full) --- 1601 struct nameidata nd; 1602 1603 NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | NOOBJ, UIO_USERSPACE, 1604 SCARG(uap, path), p); 1605 if (error = namei(&nd)) 1606 return (error); 1607 vp = nd.ni_vp; 1608 error = vn_stat(vp, &sb, p); |
1609 if (vp->v_type == VLNK) 1610 sb.st_mode |= S_IFLNK | ACCESSPERMS; /* 0777 */ | |
1611 vput(vp); 1612 if (error) 1613 return (error); 1614 error = copyout((caddr_t)&sb, (caddr_t)SCARG(uap, ub), sizeof (sb)); 1615 return (error); 1616} 1617 1618/* --- 1230 unchanged lines hidden --- | 1609 vput(vp); 1610 if (error) 1611 return (error); 1612 error = copyout((caddr_t)&sb, (caddr_t)SCARG(uap, ub), sizeof (sb)); 1613 return (error); 1614} 1615 1616/* --- 1230 unchanged lines hidden --- |