summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/zfs_dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/fs/zfs/zfs_dir.c')
-rw-r--r--usr/src/uts/common/fs/zfs/zfs_dir.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/zfs/zfs_dir.c b/usr/src/uts/common/fs/zfs/zfs_dir.c
index d73315b47d..8262e9d882 100644
--- a/usr/src/uts/common/fs/zfs/zfs_dir.c
+++ b/usr/src/uts/common/fs/zfs/zfs_dir.c
@@ -250,7 +250,8 @@ zfs_dirlook(znode_t *dzp, char *name, vnode_t **vpp)
* If we are a snapshot mounted under .zfs, return
* the vp for the snapshot directory.
*/
- if (zfsvfs->z_parent != zfsvfs) {
+ if (dzp->z_phys->zp_parent == dzp->z_id &&
+ zfsvfs->z_parent != zfsvfs) {
error = zfsctl_root_lookup(zfsvfs->z_parent->z_ctldir,
"snapshot", vpp, NULL, 0, NULL, kcred);
return (error);