summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJun Kuriyama <kuriyama@FreeBSD.org>2004-06-18 14:35:17 +0000
committerJun Kuriyama <kuriyama@FreeBSD.org>2004-06-18 14:35:17 +0000
commit86030e4a00d02aa62676ea76a924c01122ae5a0c (patch)
tree9a5bd913030b9e96dc4e942e7b87b42a295b66fb
parentbf4f8992cdbaa819119b63db0ca42d514154396a (diff)
Notes
-rw-r--r--sys/ufs/ffs/ffs_snapshot.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c
index adfb41b45b1ce..8557edcdb1f58 100644
--- a/sys/ufs/ffs/ffs_snapshot.c
+++ b/sys/ufs/ffs/ffs_snapshot.c
@@ -424,6 +424,15 @@ loop:
MNT_ILOCK(mp);
continue;
}
+ /*
+ * We can skip parent directory vnode because it must have
+ * this snapshot file in it.
+ */
+ if (xvp == nd.ni_dvp) {
+ VI_UNLOCK(xvp);
+ MNT_ILOCK(mp);
+ continue;
+ }
if (vn_lock(xvp, LK_EXCLUSIVE | LK_INTERLOCK, td) != 0) {
MNT_ILOCK(mp);
goto loop;