vfs_syscalls.c (10093) | vfs_syscalls.c (10358) |
---|---|
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.31 1995/08/11 11:31:08 davidg Exp $ | 39 * $Id: vfs_syscalls.c,v 1.32 1995/08/17 11:53:40 bde Exp $ |
40 */ 41 42#include <sys/param.h> 43#include <sys/systm.h> 44#include <sys/namei.h> 45#include <sys/filedesc.h> 46#include <sys/kernel.h> 47#include <sys/file.h> --- 782 unchanged lines hidden (view full) --- 830 831 NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, uap->path, p); 832 error = namei(&nd); 833 if (error) 834 return (error); 835 vp = nd.ni_vp; 836 if (vp->v_type != VDIR || 837 (error = suser(p->p_ucred, &p->p_acflag)) == 0) { | 40 */ 41 42#include <sys/param.h> 43#include <sys/systm.h> 44#include <sys/namei.h> 45#include <sys/filedesc.h> 46#include <sys/kernel.h> 47#include <sys/file.h> --- 782 unchanged lines hidden (view full) --- 830 831 NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, uap->path, p); 832 error = namei(&nd); 833 if (error) 834 return (error); 835 vp = nd.ni_vp; 836 if (vp->v_type != VDIR || 837 (error = suser(p->p_ucred, &p->p_acflag)) == 0) { |
838 nd.ni_cnd.cn_nameiop = CREATE; 839 nd.ni_cnd.cn_flags = LOCKPARENT; | 838 NDINIT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, uap->link, p); |
840 if (vp->v_type == VDIR) | 839 if (vp->v_type == VDIR) |
841 nd.ni_cnd.cn_flags |= WILLBEDIR; 842 nd.ni_dirp = uap->link; | 840 nd.ni_cnd.cn_flags |= WILLBEDIR; |
843 error = namei(&nd); 844 if (!error) { 845 if (nd.ni_vp != NULL) { 846 VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); 847 if (nd.ni_dvp == nd.ni_vp) 848 vrele(nd.ni_dvp); 849 else 850 vput(nd.ni_dvp); --- 1412 unchanged lines hidden --- | 841 error = namei(&nd); 842 if (!error) { 843 if (nd.ni_vp != NULL) { 844 VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd); 845 if (nd.ni_dvp == nd.ni_vp) 846 vrele(nd.ni_dvp); 847 else 848 vput(nd.ni_dvp); --- 1412 unchanged lines hidden --- |