Lines Matching refs:devvp
86 struct vnode *devvp, in ffs_snapblkfree() argument
117 ffs_copyonwrite(struct vnode *devvp, struct buf *bp) in ffs_copyonwrite() argument
162 static void try_free_snapdata(struct vnode *devvp);
164 static struct snapdata *ffs_snapdata_acquire(struct vnode *devvp);
213 struct vnode *vp, *xvp, *mvp, *devvp; in ffs_snapshot() local
308 devvp = ITODEVVP(ip); in ffs_snapshot()
499 if ((error = bread(devvp, fsbtodb(fs, fs->fs_csaddr + loc), in ffs_snapshot()
670 sn = ffs_snapdata_acquire(devvp); in ffs_snapshot()
701 VI_LOCK(devvp); in ffs_snapshot()
706 VI_UNLOCK(devvp); in ffs_snapshot()
712 VI_LOCK(devvp); in ffs_snapshot()
718 devvp->v_vflag |= VV_COPYONWRITE; in ffs_snapshot()
719 VI_UNLOCK(devvp); in ffs_snapshot()
849 VI_LOCK(devvp); in ffs_snapshot()
853 VI_UNLOCK(devvp); in ffs_snapshot()
1650 struct vnode *devvp; in ffs_snapremove() local
1659 devvp = ITODEVVP(ip); in ffs_snapremove()
1667 VI_LOCK(devvp); in ffs_snapremove()
1669 sn = devvp->v_rdev->si_snapdata; in ffs_snapremove()
1672 revert_snaplock(vp, devvp, sn); in ffs_snapremove()
1673 try_free_snapdata(devvp); in ffs_snapremove()
1675 VI_UNLOCK(devvp); in ffs_snapremove()
1777 struct vnode *devvp, in ffs_snapblkfree() argument
1795 VI_LOCK(devvp); in ffs_snapblkfree()
1796 sn = devvp->v_rdev->si_snapdata; in ffs_snapblkfree()
1798 VI_UNLOCK(devvp); in ffs_snapblkfree()
1807 VI_MTX(devvp)) != 0) in ffs_snapblkfree()
1997 struct vnode *devvp = ump->um_devvp; in ffs_snapshot_mount() local
2061 sn = ffs_snapdata_acquire(devvp); in ffs_snapshot_mount()
2071 VI_LOCK(devvp); in ffs_snapshot_mount()
2078 VI_UNLOCK(devvp); in ffs_snapshot_mount()
2122 VI_LOCK(devvp); in ffs_snapshot_mount()
2125 devvp->v_vflag |= VV_COPYONWRITE; in ffs_snapshot_mount()
2126 VI_UNLOCK(devvp); in ffs_snapshot_mount()
2135 struct vnode *devvp = VFSTOUFS(mp)->um_devvp; in ffs_snapshot_unmount() local
2140 VI_LOCK(devvp); in ffs_snapshot_unmount()
2141 sn = devvp->v_rdev->si_snapdata; in ffs_snapshot_unmount()
2147 VI_MTX(devvp)); in ffs_snapshot_unmount()
2148 VI_LOCK(devvp); in ffs_snapshot_unmount()
2149 revert_snaplock(vp, devvp, sn); in ffs_snapshot_unmount()
2152 VI_UNLOCK(devvp); in ffs_snapshot_unmount()
2154 VI_LOCK(devvp); in ffs_snapshot_unmount()
2156 sn = devvp->v_rdev->si_snapdata; in ffs_snapshot_unmount()
2158 try_free_snapdata(devvp); in ffs_snapshot_unmount()
2159 VI_UNLOCK(devvp); in ffs_snapshot_unmount()
2168 ffs_bp_snapblk(struct vnode *devvp, struct buf *bp) in ffs_bp_snapblk() argument
2175 ASSERT_VI_LOCKED(devvp, "ffs_bp_snapblk"); in ffs_bp_snapblk()
2176 KASSERT(devvp->v_type == VCHR, ("Not a device %p", devvp)); in ffs_bp_snapblk()
2177 sn = devvp->v_rdev->si_snapdata; in ffs_bp_snapblk()
2203 struct vnode *vp, *devvp; in ffs_bdflush() local
2212 devvp = bo2vnode(bo); in ffs_bdflush()
2213 KASSERT(vp == devvp, ("devvp != vp %p %p", bo, bp)); in ffs_bdflush()
2215 VI_LOCK(devvp); in ffs_bdflush()
2216 bp_bdskip = ffs_bp_snapblk(devvp, bp); in ffs_bdflush()
2219 VI_UNLOCK(devvp); in ffs_bdflush()
2246 VI_LOCK(devvp); in ffs_bdflush()
2248 VI_UNLOCK(devvp); in ffs_bdflush()
2253 VI_UNLOCK(devvp); in ffs_bdflush()
2274 ffs_copyonwrite(struct vnode *devvp, struct buf *bp) in ffs_copyonwrite() argument
2287 if (devvp != bp->b_vp && IS_SNAPSHOT(VTOI(bp->b_vp))) in ffs_copyonwrite()
2295 VI_LOCK(devvp); in ffs_copyonwrite()
2296 sn = devvp->v_rdev->si_snapdata; in ffs_copyonwrite()
2299 VI_UNLOCK(devvp); in ffs_copyonwrite()
2306 VI_UNLOCK(devvp); in ffs_copyonwrite()
2322 VI_UNLOCK(devvp); in ffs_copyonwrite()
2339 VI_MTX(devvp)) != 0) { in ffs_copyonwrite()
2340 VI_LOCK(devvp); in ffs_copyonwrite()
2341 sn = devvp->v_rdev->si_snapdata; in ffs_copyonwrite()
2344 VI_UNLOCK(devvp); in ffs_copyonwrite()
2412 if (bp->b_vp == devvp) in ffs_copyonwrite()
2434 if ((devvp == bp->b_vp || bp->b_vp->v_type == VDIR || in ffs_copyonwrite()
2447 if ((devvp == bp->b_vp || bp->b_vp->v_type == VDIR || in ffs_copyonwrite()
2467 if ((devvp == bp->b_vp || bp->b_vp->v_type == VDIR || in ffs_copyonwrite()
2494 struct vnode *devvp; in ffs_sync_snap() local
2498 devvp = VFSTOUFS(mp)->um_devvp; in ffs_sync_snap()
2499 if ((devvp->v_vflag & VV_COPYONWRITE) == 0) in ffs_sync_snap()
2502 VI_LOCK(devvp); in ffs_sync_snap()
2503 sn = devvp->v_rdev->si_snapdata; in ffs_sync_snap()
2505 VI_UNLOCK(devvp); in ffs_sync_snap()
2510 VI_MTX(devvp)) == 0) in ffs_sync_snap()
2642 try_free_snapdata(struct vnode *devvp) in try_free_snapdata() argument
2647 ASSERT_VI_LOCKED(devvp, "try_free_snapdata"); in try_free_snapdata()
2648 sn = devvp->v_rdev->si_snapdata; in try_free_snapdata()
2651 (devvp->v_vflag & VV_COPYONWRITE) == 0) in try_free_snapdata()
2654 devvp->v_rdev->si_snapdata = NULL; in try_free_snapdata()
2655 devvp->v_vflag &= ~VV_COPYONWRITE; in try_free_snapdata()
2656 lockmgr(&sn->sn_lock, LK_DRAIN|LK_INTERLOCK, VI_MTX(devvp)); in try_free_snapdata()
2664 VI_LOCK(devvp); in try_free_snapdata()
2676 struct vnode *devvp, in revert_snaplock() argument
2681 ASSERT_VI_LOCKED(devvp, "revert_snaplock"); in revert_snaplock()
2689 LK_INTERLOCK, VI_MTX(devvp)) != 0) { in revert_snaplock()
2693 VI_MTX(devvp)); in revert_snaplock()
2695 VI_LOCK(devvp); in revert_snaplock()
2706 ffs_snapdata_acquire(struct vnode *devvp) in ffs_snapdata_acquire() argument
2719 VI_LOCK(devvp); in ffs_snapdata_acquire()
2720 sn = devvp->v_rdev->si_snapdata; in ffs_snapdata_acquire()
2732 sn = devvp->v_rdev->si_snapdata = nsn; in ffs_snapdata_acquire()
2733 VI_UNLOCK(devvp); in ffs_snapdata_acquire()
2743 LK_EXCLUSIVE | LK_SLEEPFAIL, VI_MTX(devvp)); in ffs_snapdata_acquire()