diff options
author | tegge <tegge@FreeBSD.org> | 2006-05-16 00:14:20 +0000 |
---|---|---|
committer | tegge <tegge@FreeBSD.org> | 2006-05-16 00:14:20 +0000 |
commit | f568b4c78d29cd24a82f765e0dc6598d565dfa20 (patch) | |
tree | 6dc4244ca7c748318b9149d41e5779ca883d4e4c /sys/ufs | |
parent | 82cbe05afeecd669d4a0af99fef0f3f4022521ff (diff) | |
download | FreeBSD-src-f568b4c78d29cd24a82f765e0dc6598d565dfa20.zip FreeBSD-src-f568b4c78d29cd24a82f765e0dc6598d565dfa20.tar.gz |
Read block hints list from last snapshot on the active snapshot list.
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ffs/ffs_snapshot.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c index 3b1f99b..79afa44 100644 --- a/sys/ufs/ffs/ffs_snapshot.c +++ b/sys/ufs/ffs/ffs_snapshot.c @@ -1889,6 +1889,7 @@ ffs_snapshot_mount(mp) struct thread *td = curthread; struct snapdata *sn; struct vnode *vp; + struct vnode *lastvp; struct inode *ip; struct uio auio; struct iovec aiov; @@ -1906,6 +1907,7 @@ ffs_snapshot_mount(mp) * Process each snapshot listed in the superblock. */ vp = NULL; + lastvp = NULL; sn = devvp->v_rdev->si_snapdata; for (snaploc = 0; snaploc < FSMAXSNAP; snaploc++) { if (fs->fs_snapinum[snaploc] == 0) @@ -1976,7 +1978,9 @@ ffs_snapshot_mount(mp) vp->v_vflag |= VV_SYSTEM; VI_UNLOCK(devvp); VOP_UNLOCK(vp, 0, td); + lastvp = vp; } + vp = lastvp; /* * No usable snapshots found. */ |