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.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/usr/src/uts/common/fs/zfs/zfs_dir.c b/usr/src/uts/common/fs/zfs/zfs_dir.c
index 1c5eb19559..c8f0ac1e38 100644
--- a/usr/src/uts/common/fs/zfs/zfs_dir.c
+++ b/usr/src/uts/common/fs/zfs/zfs_dir.c
@@ -74,7 +74,7 @@ zfs_match_find(zfsvfs_t *zfsvfs, znode_t *dzp, char *name, boolean_t exact,
char *buf = NULL;
if (rpnp) {
- buf = rpnp->pn_path;
+ buf = rpnp->pn_buf;
bufsz = rpnp->pn_bufsize;
}
if (exact)
@@ -85,7 +85,7 @@ zfs_match_find(zfsvfs_t *zfsvfs, znode_t *dzp, char *name, boolean_t exact,
*/
error = zap_lookup_norm(zfsvfs->z_os, dzp->z_id, name, 8, 1,
zoid, mt, buf, bufsz, &conflict);
- if (deflags)
+ if (!error && deflags)
*deflags = conflict ? ED_CASE_CONFLICT : 0;
} else {
error = zap_lookup(zfsvfs->z_os, dzp->z_id, name, 8, 1, zoid);
@@ -401,8 +401,8 @@ zfs_dirlook(znode_t *dzp, char *name, vnode_t **vpp, int flags,
rpnp = NULL;
}
- if ((flags & FIGNORECASE) && rpnp)
- (void) strlcpy(rpnp->pn_path, name, rpnp->pn_bufsize);
+ if ((flags & FIGNORECASE) && rpnp && !error)
+ (void) strlcpy(rpnp->pn_buf, name, rpnp->pn_bufsize);
return (error);
}