summaryrefslogtreecommitdiffstats
path: root/sys/ufs/ffs
diff options
context:
space:
mode:
authortegge <tegge@FreeBSD.org>2006-05-16 00:14:20 +0000
committertegge <tegge@FreeBSD.org>2006-05-16 00:14:20 +0000
commitf568b4c78d29cd24a82f765e0dc6598d565dfa20 (patch)
tree6dc4244ca7c748318b9149d41e5779ca883d4e4c /sys/ufs/ffs
parent82cbe05afeecd669d4a0af99fef0f3f4022521ff (diff)
downloadFreeBSD-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/ffs')
-rw-r--r--sys/ufs/ffs/ffs_snapshot.c4
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.
*/
OpenPOWER on IntegriCloud