Wed Sep 24 09:37:13 2008 UTC ()
Don't assign vnode::v_mount. getnewvnode() does it.


(ad)
diff -r1.15 -r1.16 src/sys/fs/efs/efs_vfsops.c

cvs diff -r1.15 -r1.16 src/sys/fs/efs/efs_vfsops.c (expand / switch to unified diff)

--- src/sys/fs/efs/efs_vfsops.c 2008/05/10 02:26:09 1.15
+++ src/sys/fs/efs/efs_vfsops.c 2008/09/24 09:37:13 1.16
@@ -1,33 +1,33 @@ @@ -1,33 +1,33 @@
1/* $NetBSD: efs_vfsops.c,v 1.15 2008/05/10 02:26:09 rumble Exp $ */ 1/* $NetBSD: efs_vfsops.c,v 1.16 2008/09/24 09:37:13 ad Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2006 Stephen M. Rumble <rumble@ephemeral.org> 4 * Copyright (c) 2006 Stephen M. Rumble <rumble@ephemeral.org>
5 * 5 *
6 * Permission to use, copy, modify, and distribute this software for any 6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above 7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies. 8 * copyright notice and this permission notice appear in all copies.
9 * 9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */ 17 */
18 18
19#include <sys/cdefs.h> 19#include <sys/cdefs.h>
20__KERNEL_RCSID(0, "$NetBSD: efs_vfsops.c,v 1.15 2008/05/10 02:26:09 rumble Exp $"); 20__KERNEL_RCSID(0, "$NetBSD: efs_vfsops.c,v 1.16 2008/09/24 09:37:13 ad Exp $");
21 21
22#include <sys/param.h> 22#include <sys/param.h>
23#include <sys/systm.h> 23#include <sys/systm.h>
24#include <sys/malloc.h> 24#include <sys/malloc.h>
25#include <sys/mount.h> 25#include <sys/mount.h>
26#include <sys/fstypes.h> 26#include <sys/fstypes.h>
27#include <sys/vnode.h> 27#include <sys/vnode.h>
28#include <sys/buf.h> 28#include <sys/buf.h>
29#include <sys/namei.h> 29#include <sys/namei.h>
30#include <sys/fcntl.h> 30#include <sys/fcntl.h>
31#include <sys/stat.h> 31#include <sys/stat.h>
32#include <sys/kauth.h> 32#include <sys/kauth.h>
33#include <sys/proc.h> 33#include <sys/proc.h>
@@ -368,27 +368,26 @@ efs_vget(struct mount *mp, ino_t ino, st @@ -368,27 +368,26 @@ efs_vget(struct mount *mp, ino_t ino, st
368 368
369 efs_ihashunlock(); 369 efs_ihashunlock();
370 ungetnewvnode(vp); 370 ungetnewvnode(vp);
371 pool_put(&efs_inode_pool, eip); 371 pool_put(&efs_inode_pool, eip);
372 } 372 }
373 373
374 vp->v_vflag |= VV_LOCKSWORK; 374 vp->v_vflag |= VV_LOCKSWORK;
375 eip->ei_mode = 0; 375 eip->ei_mode = 0;
376 eip->ei_lockf = NULL; 376 eip->ei_lockf = NULL;
377 eip->ei_number = ino; 377 eip->ei_number = ino;
378 eip->ei_dev = emp->em_dev; 378 eip->ei_dev = emp->em_dev;
379 eip->ei_vp = vp; 379 eip->ei_vp = vp;
380 vp->v_data = eip; 380 vp->v_data = eip;
381 vp->v_mount = mp; 
382 381
383 /* 382 /*
384 * Place the vnode on the hash chain. Doing so will lock the 383 * Place the vnode on the hash chain. Doing so will lock the
385 * vnode, so it's okay to drop the global lock and read in 384 * vnode, so it's okay to drop the global lock and read in
386 * the inode from disk. 385 * the inode from disk.
387 */ 386 */
388 efs_ihashins(eip); 387 efs_ihashins(eip);
389 efs_ihashunlock(); 388 efs_ihashunlock();
390 389
391 /* 390 /*
392 * Init genfs early, otherwise we'll trip up on genfs_node_destroy 391 * Init genfs early, otherwise we'll trip up on genfs_node_destroy
393 * in efs_reclaim when vput()ing in an error branch here. 392 * in efs_reclaim when vput()ing in an error branch here.
394 */ 393 */