diff options
author | Jun Kuriyama <kuriyama@FreeBSD.org> | 2004-06-18 14:35:17 +0000 |
---|---|---|
committer | Jun Kuriyama <kuriyama@FreeBSD.org> | 2004-06-18 14:35:17 +0000 |
commit | 86030e4a00d02aa62676ea76a924c01122ae5a0c (patch) | |
tree | 9a5bd913030b9e96dc4e942e7b87b42a295b66fb | |
parent | bf4f8992cdbaa819119b63db0ca42d514154396a (diff) |
Notes
-rw-r--r-- | sys/ufs/ffs/ffs_snapshot.c | 9 |
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; |