Deleted Added
full compact
null_vnops.c (232303) null_vnops.c (234607)
1/*-
2 * Copyright (c) 1992, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * John Heidemann of the UCLA Ficus project.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 22 unchanged lines hidden (view full) ---

31 *
32 * @(#)null_vnops.c 8.6 (Berkeley) 5/27/95
33 *
34 * Ancestors:
35 * @(#)lofs_vnops.c 1.2 (Berkeley) 6/18/92
36 * ...and...
37 * @(#)null_vnodeops.c 1.20 92/07/07 UCLA Ficus project
38 *
1/*-
2 * Copyright (c) 1992, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * John Heidemann of the UCLA Ficus project.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 22 unchanged lines hidden (view full) ---

31 *
32 * @(#)null_vnops.c 8.6 (Berkeley) 5/27/95
33 *
34 * Ancestors:
35 * @(#)lofs_vnops.c 1.2 (Berkeley) 6/18/92
36 * ...and...
37 * @(#)null_vnodeops.c 1.20 92/07/07 UCLA Ficus project
38 *
39 * $FreeBSD: head/sys/fs/nullfs/null_vnops.c 232303 2012-02-29 15:15:36Z kib $
39 * $FreeBSD: head/sys/fs/nullfs/null_vnops.c 234607 2012-04-23 14:10:34Z trasz $
40 */
41
42/*
43 * Null Layer
44 *
45 * (See mount_nullfs(8) for more information.)
46 *
47 * The null layer duplicates a portion of the filesystem

--- 625 unchanged lines hidden (view full) ---

673 * appropriate VXLOCK stuff is done because other process can find this
674 * vnode in hash during inactivation and may be sitting in vget() and waiting
675 * for null_inactive to unlock vnode. Thus we will do all those in VOP_RECLAIM.
676 */
677static int
678null_inactive(struct vop_inactive_args *ap)
679{
680 struct vnode *vp = ap->a_vp;
40 */
41
42/*
43 * Null Layer
44 *
45 * (See mount_nullfs(8) for more information.)
46 *
47 * The null layer duplicates a portion of the filesystem

--- 625 unchanged lines hidden (view full) ---

673 * appropriate VXLOCK stuff is done because other process can find this
674 * vnode in hash during inactivation and may be sitting in vget() and waiting
675 * for null_inactive to unlock vnode. Thus we will do all those in VOP_RECLAIM.
676 */
677static int
678null_inactive(struct vop_inactive_args *ap)
679{
680 struct vnode *vp = ap->a_vp;
681 struct thread *td = ap->a_td;
682
683 vp->v_object = NULL;
684
685 /*
686 * If this is the last reference, then free up the vnode
687 * so as not to tie up the lower vnodes.
688 */
681
682 vp->v_object = NULL;
683
684 /*
685 * If this is the last reference, then free up the vnode
686 * so as not to tie up the lower vnodes.
687 */
689 vrecycle(vp, td);
688 vrecycle(vp);
690
691 return (0);
692}
693
694/*
695 * Now, the VXLOCK is in force and we're free to destroy the null vnode.
696 */
697static int

--- 146 unchanged lines hidden ---
689
690 return (0);
691}
692
693/*
694 * Now, the VXLOCK is in force and we're free to destroy the null vnode.
695 */
696static int

--- 146 unchanged lines hidden ---