devfs_vnops.c (211513) | devfs_vnops.c (211531) |
---|---|
1/*- 2 * Copyright (c) 2000-2004 3 * Poul-Henning Kamp. All rights reserved. 4 * Copyright (c) 1989, 1992-1993, 1995 5 * The Regents of the University of California. All rights reserved. 6 * 7 * This code is derived from software donated to Berkeley by 8 * Jan-Simon Pendry. --- 17 unchanged lines hidden (view full) --- 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 * 31 * @(#)kernfs_vnops.c 8.15 (Berkeley) 5/21/95 32 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vnops.c 1.43 33 * | 1/*- 2 * Copyright (c) 2000-2004 3 * Poul-Henning Kamp. All rights reserved. 4 * Copyright (c) 1989, 1992-1993, 1995 5 * The Regents of the University of California. All rights reserved. 6 * 7 * This code is derived from software donated to Berkeley by 8 * Jan-Simon Pendry. --- 17 unchanged lines hidden (view full) --- 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 * 31 * @(#)kernfs_vnops.c 8.15 (Berkeley) 5/21/95 32 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vnops.c 1.43 33 * |
34 * $FreeBSD: head/sys/fs/devfs/devfs_vnops.c 211513 2010-08-19 16:39:00Z jh $ | 34 * $FreeBSD: head/sys/fs/devfs/devfs_vnops.c 211531 2010-08-20 19:46:50Z jhb $ |
35 */ 36 37/* 38 * TODO: 39 * remove empty directories 40 * mkdir: want it ? 41 */ 42 --- 364 unchanged lines hidden (view full) --- 407 vp->v_op = &devfs_specops; 408 } else if (de->de_dirent->d_type == DT_DIR) { 409 vp->v_type = VDIR; 410 } else if (de->de_dirent->d_type == DT_LNK) { 411 vp->v_type = VLNK; 412 } else { 413 vp->v_type = VBAD; 414 } | 35 */ 36 37/* 38 * TODO: 39 * remove empty directories 40 * mkdir: want it ? 41 */ 42 --- 364 unchanged lines hidden (view full) --- 407 vp->v_op = &devfs_specops; 408 } else if (de->de_dirent->d_type == DT_DIR) { 409 vp->v_type = VDIR; 410 } else if (de->de_dirent->d_type == DT_LNK) { 411 vp->v_type = VLNK; 412 } else { 413 vp->v_type = VBAD; 414 } |
415 VN_LOCK_ASHARE(vp); | |
416 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY | LK_NOWITNESS); | 415 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY | LK_NOWITNESS); |
416 VN_LOCK_ASHARE(vp); |
|
417 mtx_lock(&devfs_de_interlock); 418 vp->v_data = de; 419 de->de_vnode = vp; 420 mtx_unlock(&devfs_de_interlock); 421 error = insmntque1(vp, mp, devfs_insmntque_dtr, de); 422 if (error != 0) { 423 (void) devfs_allocv_drop_refs(1, dmp, de); 424 return (error); --- 1234 unchanged lines hidden --- | 417 mtx_lock(&devfs_de_interlock); 418 vp->v_data = de; 419 de->de_vnode = vp; 420 mtx_unlock(&devfs_de_interlock); 421 error = insmntque1(vp, mp, devfs_insmntque_dtr, de); 422 if (error != 0) { 423 (void) devfs_allocv_drop_refs(1, dmp, de); 424 return (error); --- 1234 unchanged lines hidden --- |