mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 03:19:35 +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 \
|
cppcheck --quiet --force --error-exitcode=2 --inline-suppr \
|
||||||
--suppressions-list=.github/suppressions.txt \
|
--suppressions-list=.github/suppressions.txt \
|
||||||
-UHAVE_SSE2 -UHAVE_AVX512F -UHAVE_UIO_ZEROCOPY \
|
-UHAVE_SSE2 -UHAVE_AVX512F -UHAVE_UIO_ZEROCOPY \
|
||||||
-UHAVE_DNLC ${top_srcdir}; \
|
${top_srcdir}; \
|
||||||
else \
|
else \
|
||||||
echo "skipping cppcheck because cppcheck is not installed"; \
|
echo "skipping cppcheck because cppcheck is not installed"; \
|
||||||
fi
|
fi
|
||||||
|
@ -99,11 +99,6 @@ zfs_match_find(zfsvfs_t *zfsvfs, znode_t *dzp, char *name, matchtype_t mt,
|
|||||||
|
|
||||||
*zoid = ZFS_DIRENT_OBJ(*zoid);
|
*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);
|
return (error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,9 +146,6 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, znode_t *dzp, char *name, znode_t **zpp,
|
|||||||
boolean_t update;
|
boolean_t update;
|
||||||
matchtype_t mt = 0;
|
matchtype_t mt = 0;
|
||||||
uint64_t zoid;
|
uint64_t zoid;
|
||||||
#ifdef HAVE_DNLC
|
|
||||||
vnode_t *vp = NULL;
|
|
||||||
#endif /* HAVE_DNLC */
|
|
||||||
int error = 0;
|
int error = 0;
|
||||||
int cmpflags;
|
int cmpflags;
|
||||||
|
|
||||||
@ -320,30 +312,9 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, znode_t *dzp, char *name, znode_t **zpp,
|
|||||||
if (error == 0)
|
if (error == 0)
|
||||||
error = (zoid == 0 ? SET_ERROR(ENOENT) : 0);
|
error = (zoid == 0 ? SET_ERROR(ENOENT) : 0);
|
||||||
} else {
|
} 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,
|
error = zfs_match_find(zfsvfs, dzp, name, mt,
|
||||||
update, direntflags, realpnp, &zoid);
|
update, direntflags, realpnp, &zoid);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
error = zfs_match_find(zfsvfs, dzp, name, mt,
|
|
||||||
update, direntflags, realpnp, &zoid);
|
|
||||||
#endif /* HAVE_DNLC */
|
|
||||||
}
|
|
||||||
if (error) {
|
if (error) {
|
||||||
if (error != ENOENT || (flag & ZEXISTS)) {
|
if (error != ENOENT || (flag & ZEXISTS)) {
|
||||||
zfs_dirent_unlock(dl);
|
zfs_dirent_unlock(dl);
|
||||||
@ -359,10 +330,6 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, znode_t *dzp, char *name, znode_t **zpp,
|
|||||||
zfs_dirent_unlock(dl);
|
zfs_dirent_unlock(dl);
|
||||||
return (error);
|
return (error);
|
||||||
}
|
}
|
||||||
#ifdef HAVE_DNLC
|
|
||||||
if (!(flag & ZXATTR) && update)
|
|
||||||
dnlc_update(ZTOI(dzp), name, ZTOI(*zpp));
|
|
||||||
#endif /* HAVE_DNLC */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*dlpp = dl;
|
*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 count = 0;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
#ifdef HAVE_DNLC
|
|
||||||
dnlc_remove(ZTOI(dzp), dl->dl_name);
|
|
||||||
#endif /* HAVE_DNLC */
|
|
||||||
|
|
||||||
if (!(flag & ZRENAMING)) {
|
if (!(flag & ZRENAMING)) {
|
||||||
mutex_enter(&zp->z_lock);
|
mutex_enter(&zp->z_lock);
|
||||||
|
|
||||||
|
@ -1208,27 +1208,6 @@ zfs_lookup(struct inode *dip, char *nm, struct inode **ipp, int flags,
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
return (error);
|
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;
|
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);
|
mutex_enter(&zp->z_lock);
|
||||||
may_delete_now = atomic_read(&ip->i_count) == 1 && !(zp->z_is_mapped);
|
may_delete_now = atomic_read(&ip->i_count) == 1 && !(zp->z_is_mapped);
|
||||||
mutex_exit(&zp->z_lock);
|
mutex_exit(&zp->z_lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user