diff options
author | alc <alc@FreeBSD.org> | 2003-11-13 03:56:32 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2003-11-13 03:56:32 +0000 |
commit | 0dcebbc29a61720f353976f905620c9e8f64401d (patch) | |
tree | 10c126d427d341d92aeeb66ff4fcfdbff9bf3ed9 /sys/ufs/ffs | |
parent | 72cf6d90a376fbb0b8c9a38adf33583268c09119 (diff) | |
download | FreeBSD-src-0dcebbc29a61720f353976f905620c9e8f64401d.zip FreeBSD-src-0dcebbc29a61720f353976f905620c9e8f64401d.tar.gz |
Call free(9) after the vnode interlock is released, avoiding a lock-order
reversal.
Diffstat (limited to 'sys/ufs/ffs')
-rw-r--r-- | sys/ufs/ffs/ffs_snapshot.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c index bbd9200..0e2191f 100644 --- a/sys/ufs/ffs/ffs_snapshot.c +++ b/sys/ufs/ffs/ffs_snapshot.c @@ -652,9 +652,9 @@ out1: space = devvp->v_rdev->si_snapblklist; devvp->v_rdev->si_snapblklist = snapblklist; devvp->v_rdev->si_snaplistsize = snaplistsize; + VI_UNLOCK(devvp); if (space != NULL) FREE(space, M_UFSMNT); - VI_UNLOCK(devvp); done: free(copy_fs->fs_csp, M_UFSMNT); bawrite(sbp); |