mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
Linux does not HAVE_DNLC
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 #8031
This commit is contained in:
parent
bfcb82cb54
commit
5fbf85c4e2
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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)) {
|
||||
@ -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;
|
||||
@ -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);
|
||||
|
||||
|
@ -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 */
|
||||
}
|
||||
}
|
||||
|
||||
@ -1765,13 +1744,6 @@ top:
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user