summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-11-13 03:56:32 +0000
committeralc <alc@FreeBSD.org>2003-11-13 03:56:32 +0000
commit0dcebbc29a61720f353976f905620c9e8f64401d (patch)
tree10c126d427d341d92aeeb66ff4fcfdbff9bf3ed9 /sys/ufs
parent72cf6d90a376fbb0b8c9a38adf33583268c09119 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/ufs/ffs/ffs_snapshot.c2
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);
OpenPOWER on IntegriCloud