| @@ -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 | */ |