Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/pseudofs/pseudofs_vnops.c
Show First 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | |||||
#define KASSERT_PN_IS_FILE(pn) \ | #define KASSERT_PN_IS_FILE(pn) \ | ||||
KASSERT((pn)->pn_type == pfstype_file, \ | KASSERT((pn)->pn_type == pfstype_file, \ | ||||
("%s(): VREG vnode refers to non-file pfs_node", __func__)) | ("%s(): VREG vnode refers to non-file pfs_node", __func__)) | ||||
#define KASSERT_PN_IS_LINK(pn) \ | #define KASSERT_PN_IS_LINK(pn) \ | ||||
KASSERT((pn)->pn_type == pfstype_symlink, \ | KASSERT((pn)->pn_type == pfstype_symlink, \ | ||||
("%s(): VLNK vnode refers to non-link pfs_node", __func__)) | ("%s(): VLNK vnode refers to non-link pfs_node", __func__)) | ||||
#define PFS_MAXBUFSIZ 1024 * 1024 | |||||
/* | /* | ||||
* Returns the fileno, adjusted for target pid | * Returns the fileno, adjusted for target pid | ||||
*/ | */ | ||||
static uint32_t | static uint32_t | ||||
pn_fileno(struct pfs_node *pn, pid_t pid) | pn_fileno(struct pfs_node *pn, pid_t pid) | ||||
{ | { | ||||
KASSERT(pn->pn_fileno > 0, | KASSERT(pn->pn_fileno > 0, | ||||
▲ Show 20 Lines • Show All 593 Lines • ▼ Show 20 Lines | pfs_read(struct vop_read_args *va) | ||||
} | } | ||||
if (uio->uio_resid < 0 || uio->uio_offset < 0 || | if (uio->uio_resid < 0 || uio->uio_offset < 0 || | ||||
uio->uio_resid > OFF_MAX - uio->uio_offset) { | uio->uio_resid > OFF_MAX - uio->uio_offset) { | ||||
error = EINVAL; | error = EINVAL; | ||||
goto ret; | goto ret; | ||||
} | } | ||||
buflen = uio->uio_offset + uio->uio_resid; | buflen = uio->uio_offset + uio->uio_resid; | ||||
if (buflen > MAXPHYS) | if (buflen > PFS_MAXBUFSIZ) | ||||
buflen = MAXPHYS; | buflen = PFS_MAXBUFSIZ; | ||||
sb = sbuf_new(sb, NULL, buflen + 1, 0); | sb = sbuf_new(sb, NULL, buflen + 1, 0); | ||||
if (sb == NULL) { | if (sb == NULL) { | ||||
error = EIO; | error = EIO; | ||||
goto ret; | goto ret; | ||||
} | } | ||||
error = pn_fill(curthread, proc, pn, sb, uio); | error = pn_fill(curthread, proc, pn, sb, uio); | ||||
▲ Show 20 Lines • Show All 405 Lines • Show Last 20 Lines |