tmpfs_vnops.c (174265) | tmpfs_vnops.c (175202) |
---|---|
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 --- 27 unchanged lines hidden (view full) --- 36 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 37 * POSSIBILITY OF SUCH DAMAGE. 38 */ 39 40/* 41 * tmpfs vnode interface. 42 */ 43#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 --- 27 unchanged lines hidden (view full) --- 36 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 37 * POSSIBILITY OF SUCH DAMAGE. 38 */ 39 40/* 41 * tmpfs vnode interface. 42 */ 43#include <sys/cdefs.h> |
44__FBSDID("$FreeBSD: head/sys/fs/tmpfs/tmpfs_vnops.c 174265 2007-12-04 20:14:15Z wkoszek $"); | 44__FBSDID("$FreeBSD: head/sys/fs/tmpfs/tmpfs_vnops.c 175202 2008-01-10 01:10:58Z attilio $"); |
45 46#include <sys/param.h> 47#include <sys/fcntl.h> 48#include <sys/lockf.h> 49#include <sys/namei.h> 50#include <sys/priv.h> 51#include <sys/proc.h> 52#include <sys/resourcevar.h> --- 46 unchanged lines hidden (view full) --- 99 100 ltype = VOP_ISLOCKED(dvp, td); 101 vhold(dvp); 102 VOP_UNLOCK(dvp, 0, td); 103 /* Allocate a new vnode on the matching entry. */ 104 error = tmpfs_alloc_vp(dvp->v_mount, dnode->tn_dir.tn_parent, 105 cnp->cn_lkflags, vpp, td); 106 | 45 46#include <sys/param.h> 47#include <sys/fcntl.h> 48#include <sys/lockf.h> 49#include <sys/namei.h> 50#include <sys/priv.h> 51#include <sys/proc.h> 52#include <sys/resourcevar.h> --- 46 unchanged lines hidden (view full) --- 99 100 ltype = VOP_ISLOCKED(dvp, td); 101 vhold(dvp); 102 VOP_UNLOCK(dvp, 0, td); 103 /* Allocate a new vnode on the matching entry. */ 104 error = tmpfs_alloc_vp(dvp->v_mount, dnode->tn_dir.tn_parent, 105 cnp->cn_lkflags, vpp, td); 106 |
107 vn_lock(dvp, ltype | LK_RETRY, td); | 107 vn_lock(dvp, ltype | LK_RETRY); |
108 vdrop(dvp); 109 } else if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') { 110 VREF(dvp); 111 *vpp = dvp; 112 error = 0; 113 } else { 114 de = tmpfs_dir_lookup(dnode, cnp); 115 if (de == NULL) { --- 804 unchanged lines hidden (view full) --- 920 if (fvp == tvp) { 921 error = 0; 922 goto out; 923 } 924 925 /* If we need to move the directory between entries, lock the 926 * source so that we can safely operate on it. */ 927 if (tdvp != fdvp) { | 108 vdrop(dvp); 109 } else if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') { 110 VREF(dvp); 111 *vpp = dvp; 112 error = 0; 113 } else { 114 de = tmpfs_dir_lookup(dnode, cnp); 115 if (de == NULL) { --- 804 unchanged lines hidden (view full) --- 920 if (fvp == tvp) { 921 error = 0; 922 goto out; 923 } 924 925 /* If we need to move the directory between entries, lock the 926 * source so that we can safely operate on it. */ 927 if (tdvp != fdvp) { |
928 error = vn_lock(fdvp, LK_EXCLUSIVE | LK_RETRY, tcnp->cn_thread); | 928 error = vn_lock(fdvp, LK_EXCLUSIVE | LK_RETRY); |
929 if (error != 0) 930 goto out; 931 } 932 fdnode = VP_TO_TMPFS_DIR(fdvp); 933 fnode = VP_TO_TMPFS_NODE(fvp); 934 de = tmpfs_dir_search(fdnode, fnode); 935 936 /* Avoid manipulating '.' and '..' entries. */ --- 563 unchanged lines hidden --- | 929 if (error != 0) 930 goto out; 931 } 932 fdnode = VP_TO_TMPFS_DIR(fdvp); 933 fnode = VP_TO_TMPFS_NODE(fvp); 934 de = tmpfs_dir_search(fdnode, fnode); 935 936 /* Avoid manipulating '.' and '..' entries. */ --- 563 unchanged lines hidden --- |