diff --git a/include/os/freebsd/Makefile.am b/include/os/freebsd/Makefile.am index 3796f20ae7..a750f52e7d 100644 --- a/include/os/freebsd/Makefile.am +++ b/include/os/freebsd/Makefile.am @@ -21,7 +21,6 @@ noinst_HEADERS = \ %D%/spl/sys/dirent.h \ %D%/spl/sys/disp.h \ %D%/spl/sys/dkio.h \ - %D%/spl/sys/extdirent.h \ %D%/spl/sys/fcntl.h \ %D%/spl/sys/file.h \ %D%/spl/sys/freebsd_rwlock.h \ diff --git a/include/os/freebsd/spl/sys/extdirent.h b/include/os/freebsd/spl/sys/extdirent.h deleted file mode 100644 index d6927ae40b..0000000000 --- a/include/os/freebsd/spl/sys/extdirent.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or https://opensource.org/licenses/CDDL-1.0. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_EXTDIRENT_H -#define _SYS_EXTDIRENT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * Extended file-system independent directory entry. This style of - * dirent provides additional informational flag bits for each - * directory entry. This dirent will be returned instead of the - * standard dirent if a VOP_READDIR() requests dirent flags via - * V_RDDIR_ENTFLAGS, and if the file system supports the flags. - */ -typedef struct edirent { - ino64_t ed_ino; /* "inode number" of entry */ - off64_t ed_off; /* offset of disk directory entry */ - uint32_t ed_eflags; /* per-entry flags */ - unsigned short ed_reclen; /* length of this record */ - char ed_name[1]; /* name of file */ -} edirent_t; - -#define EDIRENT_RECLEN(namelen) \ - ((offsetof(edirent_t, ed_name[0]) + 1 + (namelen) + 7) & ~ 7) -#define EDIRENT_NAMELEN(reclen) \ - ((reclen) - (offsetof(edirent_t, ed_name[0]))) - -/* - * Extended entry flags - * Extended entries include a bitfield of extra information - * regarding that entry. - */ -#define ED_CASE_CONFLICT 0x10 /* Disconsidering case, entry is not unique */ - -/* - * Extended flags accessor function - */ -#define ED_CASE_CONFLICTS(x) ((x)->ed_eflags & ED_CASE_CONFLICT) -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_EXTDIRENT_H */ diff --git a/include/os/freebsd/spl/sys/vnode_impl.h b/include/os/freebsd/spl/sys/vnode_impl.h index 3e698d7ac9..4e04b5e80a 100644 --- a/include/os/freebsd/spl/sys/vnode_impl.h +++ b/include/os/freebsd/spl/sys/vnode_impl.h @@ -44,8 +44,6 @@ #define IS_DEVVP(vp) \ ((vp)->v_type == VCHR || (vp)->v_type == VBLK || (vp)->v_type == VFIFO) -#define V_XATTRDIR 0x0000 /* attribute unnamed directory */ - #define AV_SCANSTAMP_SZ 32 /* length of anti-virus scanstamp */ /* @@ -193,11 +191,6 @@ #define MODEMASK 07777 /* mode bits plus permission bits */ #define PERMMASK 00777 /* permission bits */ -/* - * VOP_ACCESS flags - */ -#define V_ACE_MASK 0x1 /* mask represents NFSv4 ACE permissions */ - /* * Flags for vnode operations. */ @@ -234,12 +227,6 @@ struct taskq; #define CREATE_XATTR_DIR 0x04 /* Create extended attr dir */ #define LOOKUP_HAVE_SYSATTR_DIR 0x08 /* Already created virtual GFS dir */ -/* - * Flags for VOP_READDIR - */ -#define V_RDDIR_ENTFLAGS 0x01 /* request dirent flags */ -#define V_RDDIR_ACCFILTER 0x02 /* filter out inaccessible dirents */ - /* * Public vnode manipulation functions. */ diff --git a/module/os/freebsd/zfs/zfs_dir.c b/module/os/freebsd/zfs/zfs_dir.c index 6321f0b532..778e415165 100644 --- a/module/os/freebsd/zfs/zfs_dir.c +++ b/module/os/freebsd/zfs/zfs_dir.c @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include diff --git a/module/os/freebsd/zfs/zfs_vnops_os.c b/module/os/freebsd/zfs/zfs_vnops_os.c index 57889b7390..e2222df123 100644 --- a/module/os/freebsd/zfs/zfs_vnops_os.c +++ b/module/os/freebsd/zfs/zfs_vnops_os.c @@ -76,7 +76,6 @@ #include #include #include -#include #include #include #include @@ -1648,10 +1647,11 @@ zfs_rmdir(znode_t *dzp, const char *name, znode_t *cwd, cred_t *cr, int flags) * and return buffer. * cr - credentials of caller. * ct - caller context - * flags - case flags * * OUT: uio - updated offset and range, buffer filled. * eofp - set to true if end-of-file detected. + * ncookies- number of entries in cookies + * cookies - offsets to directory entries * * RETURN: 0 on success, error code on failure. * @@ -1669,7 +1669,6 @@ zfs_readdir(vnode_t *vp, zfs_uio_t *uio, cred_t *cr, int *eofp, { znode_t *zp = VTOZ(vp); iovec_t *iovp; - edirent_t *eodp; dirent64_t *odp; zfsvfs_t *zfsvfs = zp->z_zfsvfs; objset_t *os; @@ -1687,7 +1686,6 @@ zfs_readdir(vnode_t *vp, zfs_uio_t *uio, cred_t *cr, int *eofp, uint8_t type; int ncooks; cookie_t *cooks = NULL; - int flags = 0; if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0) return (error); @@ -1755,7 +1753,6 @@ zfs_readdir(vnode_t *vp, zfs_uio_t *uio, cred_t *cr, int *eofp, outbuf = NULL; odp = (struct dirent64 *)iovp->iov_base; } - eodp = (struct edirent *)odp; if (ncookies != NULL) { /* @@ -1824,25 +1821,7 @@ zfs_readdir(vnode_t *vp, zfs_uio_t *uio, cred_t *cr, int *eofp, type = ZFS_DIRENT_TYPE(zap.za_first_integer); } - if (flags & V_RDDIR_ACCFILTER) { - /* - * If we have no access at all, don't include - * this entry in the returned information - */ - znode_t *ezp; - if (zfs_zget(zp->z_zfsvfs, objnum, &ezp) != 0) - goto skip_entry; - if (!zfs_has_access(ezp, cr)) { - vrele(ZTOV(ezp)); - goto skip_entry; - } - vrele(ZTOV(ezp)); - } - - if (flags & V_RDDIR_ENTFLAGS) - reclen = EDIRENT_RECLEN(strlen(zap.za_name)); - else - reclen = DIRENT64_RECLEN(strlen(zap.za_name)); + reclen = DIRENT64_RECLEN(strlen(zap.za_name)); /* * Will this entry fit in the buffer? @@ -1857,33 +1836,19 @@ zfs_readdir(vnode_t *vp, zfs_uio_t *uio, cred_t *cr, int *eofp, } break; } - if (flags & V_RDDIR_ENTFLAGS) { - /* - * Add extended flag entry: - */ - eodp->ed_ino = objnum; - eodp->ed_reclen = reclen; - /* NOTE: ed_off is the offset for the *next* entry */ - next = &(eodp->ed_off); - eodp->ed_eflags = zap.za_normalization_conflict ? - ED_CASE_CONFLICT : 0; - (void) strncpy(eodp->ed_name, zap.za_name, - EDIRENT_NAMELEN(reclen)); - eodp = (edirent_t *)((intptr_t)eodp + reclen); - } else { - /* - * Add normal entry: - */ - odp->d_ino = objnum; - odp->d_reclen = reclen; - odp->d_namlen = strlen(zap.za_name); - /* NOTE: d_off is the offset for the *next* entry. */ - next = &odp->d_off; - strlcpy(odp->d_name, zap.za_name, odp->d_namlen + 1); - odp->d_type = type; - dirent_terminate(odp); - odp = (dirent64_t *)((intptr_t)odp + reclen); - } + /* + * Add normal entry: + */ + odp->d_ino = objnum; + odp->d_reclen = reclen; + odp->d_namlen = strlen(zap.za_name); + /* NOTE: d_off is the offset for the *next* entry. */ + next = &odp->d_off; + strlcpy(odp->d_name, zap.za_name, odp->d_namlen + 1); + odp->d_type = type; + dirent_terminate(odp); + odp = (dirent64_t *)((intptr_t)odp + reclen); + outcount += reclen; ASSERT3S(outcount, <=, bufsize); @@ -1893,7 +1858,6 @@ zfs_readdir(vnode_t *vp, zfs_uio_t *uio, cred_t *cr, int *eofp, dmu_prefetch(os, objnum, 0, 0, 0, ZIO_PRIORITY_SYNC_READ); - skip_entry: /* * Move to the next entry, fill in the previous offset. */