Skip to content

Commit

Permalink
Linux does not HAVE_DNLC
Browse files Browse the repository at this point in the history
Since Linux does not have the Directory Name Lookup Cache, we don't need
the code to manage it.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tim Chase <tim@chase2k.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
Closes openzfs#8031
  • Loading branch information
ahrens authored and Gregor Kopka committed Jan 7, 2019
1 parent c844ee8 commit c250792
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 66 deletions.
2 changes: 1 addition & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ cppcheck:
cppcheck --quiet --force --error-exitcode=2 --inline-suppr \
--suppressions-list=.github/suppressions.txt \
-UHAVE_SSE2 -UHAVE_AVX512F -UHAVE_UIO_ZEROCOPY \
-UHAVE_DNLC ${top_srcdir}; \
${top_srcdir}; \
else \
echo "skipping cppcheck because cppcheck is not installed"; \
fi
Expand Down
37 changes: 0 additions & 37 deletions module/zfs/zfs_dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,6 @@ zfs_match_find(zfsvfs_t *zfsvfs, znode_t *dzp, char *name, matchtype_t mt,

*zoid = ZFS_DIRENT_OBJ(*zoid);

#ifdef HAVE_DNLC
if (error == ENOENT && update)
dnlc_update(ZTOI(dzp), name, DNLC_NO_VNODE);
#endif /* HAVE_DNLC */

return (error);
}

Expand Down Expand Up @@ -151,9 +146,6 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, znode_t *dzp, char *name, znode_t **zpp,
boolean_t update;
matchtype_t mt = 0;
uint64_t zoid;
#ifdef HAVE_DNLC
vnode_t *vp = NULL;
#endif /* HAVE_DNLC */
int error = 0;
int cmpflags;

Expand Down Expand Up @@ -320,29 +312,8 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, znode_t *dzp, char *name, znode_t **zpp,
if (error == 0)
error = (zoid == 0 ? SET_ERROR(ENOENT) : 0);
} else {
#ifdef HAVE_DNLC
if (update)
vp = dnlc_lookup(ZTOI(dzp), name);
if (vp == DNLC_NO_VNODE) {
iput(vp);
error = SET_ERROR(ENOENT);
} else if (vp) {
if (flag & ZNEW) {
zfs_dirent_unlock(dl);
iput(vp);
return (SET_ERROR(EEXIST));
}
*dlpp = dl;
*zpp = VTOZ(vp);
return (0);
} else {
error = zfs_match_find(zfsvfs, dzp, name, mt,
update, direntflags, realpnp, &zoid);
}
#else
error = zfs_match_find(zfsvfs, dzp, name, mt,
update, direntflags, realpnp, &zoid);
#endif /* HAVE_DNLC */
}
if (error) {
if (error != ENOENT || (flag & ZEXISTS)) {
Expand All @@ -359,10 +330,6 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, znode_t *dzp, char *name, znode_t **zpp,
zfs_dirent_unlock(dl);
return (error);
}
#ifdef HAVE_DNLC
if (!(flag & ZXATTR) && update)
dnlc_update(ZTOI(dzp), name, ZTOI(*zpp));
#endif /* HAVE_DNLC */
}

*dlpp = dl;
Expand Down Expand Up @@ -901,10 +868,6 @@ zfs_link_destroy(zfs_dirlock_t *dl, znode_t *zp, dmu_tx_t *tx, int flag,
int count = 0;
int error;

#ifdef HAVE_DNLC
dnlc_remove(ZTOI(dzp), dl->dl_name);
#endif /* HAVE_DNLC */

if (!(flag & ZRENAMING)) {
mutex_enter(&zp->z_lock);

Expand Down
28 changes: 0 additions & 28 deletions module/zfs/zfs_vnops.c
Original file line number Diff line number Diff line change
Expand Up @@ -1208,27 +1208,6 @@ zfs_lookup(struct inode *dip, char *nm, struct inode **ipp, int flags,
return (0);
}
return (error);
#ifdef HAVE_DNLC
} else if (!zdp->z_zfsvfs->z_norm &&
(zdp->z_zfsvfs->z_case == ZFS_CASE_SENSITIVE)) {

vnode_t *tvp = dnlc_lookup(dvp, nm);

if (tvp) {
error = zfs_fastaccesschk_execute(zdp, cr);
if (error) {
iput(tvp);
return (error);
}
if (tvp == DNLC_NO_VNODE) {
iput(tvp);
return (SET_ERROR(ENOENT));
} else {
*vpp = tvp;
return (specvp_check(vpp, cr));
}
}
#endif /* HAVE_DNLC */
}
}

Expand Down Expand Up @@ -1765,13 +1744,6 @@ zfs_remove(struct inode *dip, char *name, cred_t *cr, int flags)
goto out;
}

#ifdef HAVE_DNLC
if (realnmp)
dnlc_remove(dvp, realnmp->pn_buf);
else
dnlc_remove(dvp, name);
#endif /* HAVE_DNLC */

mutex_enter(&zp->z_lock);
may_delete_now = atomic_read(&ip->i_count) == 1 && !(zp->z_is_mapped);
mutex_exit(&zp->z_lock);
Expand Down

0 comments on commit c250792

Please sign in to comment.