Changeset View
Changeset View
Standalone View
Standalone View
sys/contrib/openzfs/module/zfs/zfs_sa.c
Show First 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | sa_attr_reg_t zfs_attr_table[ZPL_END+1] = { | ||||
{"ZPL_DACL_ACES", 0, SA_ACL, 0}, | {"ZPL_DACL_ACES", 0, SA_ACL, 0}, | ||||
{"ZPL_DXATTR", 0, SA_UINT8_ARRAY, 0}, | {"ZPL_DXATTR", 0, SA_UINT8_ARRAY, 0}, | ||||
{"ZPL_PROJID", sizeof (uint64_t), SA_UINT64_ARRAY, 0}, | {"ZPL_PROJID", sizeof (uint64_t), SA_UINT64_ARRAY, 0}, | ||||
{NULL, 0, 0, 0} | {NULL, 0, 0, 0} | ||||
}; | }; | ||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
int | int | ||||
zfs_sa_readlink(znode_t *zp, uio_t *uio) | zfs_sa_readlink(znode_t *zp, zfs_uio_t *uio) | ||||
{ | { | ||||
dmu_buf_t *db = sa_get_db(zp->z_sa_hdl); | dmu_buf_t *db = sa_get_db(zp->z_sa_hdl); | ||||
size_t bufsz; | size_t bufsz; | ||||
int error; | int error; | ||||
bufsz = zp->z_size; | bufsz = zp->z_size; | ||||
if (bufsz + ZFS_OLD_ZNODE_PHYS_SIZE <= db->db_size) { | if (bufsz + ZFS_OLD_ZNODE_PHYS_SIZE <= db->db_size) { | ||||
error = uiomove((caddr_t)db->db_data + | error = zfs_uiomove((caddr_t)db->db_data + | ||||
ZFS_OLD_ZNODE_PHYS_SIZE, | ZFS_OLD_ZNODE_PHYS_SIZE, | ||||
MIN((size_t)bufsz, uio_resid(uio)), UIO_READ, uio); | MIN((size_t)bufsz, zfs_uio_resid(uio)), UIO_READ, uio); | ||||
} else { | } else { | ||||
dmu_buf_t *dbp; | dmu_buf_t *dbp; | ||||
if ((error = dmu_buf_hold(ZTOZSB(zp)->z_os, zp->z_id, | if ((error = dmu_buf_hold(ZTOZSB(zp)->z_os, zp->z_id, | ||||
0, FTAG, &dbp, DMU_READ_NO_PREFETCH)) == 0) { | 0, FTAG, &dbp, DMU_READ_NO_PREFETCH)) == 0) { | ||||
error = uiomove(dbp->db_data, | error = zfs_uiomove(dbp->db_data, | ||||
MIN((size_t)bufsz, uio_resid(uio)), UIO_READ, uio); | MIN((size_t)bufsz, zfs_uio_resid(uio)), UIO_READ, | ||||
uio); | |||||
dmu_buf_rele(dbp, FTAG); | dmu_buf_rele(dbp, FTAG); | ||||
} | } | ||||
} | } | ||||
return (error); | return (error); | ||||
} | } | ||||
void | void | ||||
zfs_sa_symlink(znode_t *zp, char *link, int len, dmu_tx_t *tx) | zfs_sa_symlink(znode_t *zp, char *link, int len, dmu_tx_t *tx) | ||||
▲ Show 20 Lines • Show All 347 Lines • Show Last 20 Lines |