Print this page
basic FSH

*** 63,72 **** --- 63,73 ---- #include <sys/nbmlock.h> #include <sys/fcntl.h> #include <fs/fs_subr.h> #include <sys/taskq.h> #include <fs/fs_reparse.h> + #include <sys/fsh_impl.h> /* Determine if this vnode is a file that is read-only */ #define ISROFILE(vp) \ ((vp)->v_type != VCHR && (vp)->v_type != VBLK && \ (vp)->v_type != VFIFO && vn_is_readonly(vp))
*** 3140,3150 **** atomic_add_32(&((*vpp)->v_wrcnt), 1); } VOPXID_MAP_CR(vp, cr); ! ret = (*(*(vpp))->v_op->vop_open)(vpp, mode, cr, ct); if (ret) { /* * Use the saved vp just in case the vnode ptr got trashed * by the error. --- 3141,3151 ---- atomic_add_32(&((*vpp)->v_wrcnt), 1); } VOPXID_MAP_CR(vp, cr); ! ret = fsh_open(vpp, mode, cr, ct); if (ret) { /* * Use the saved vp just in case the vnode ptr got trashed * by the error.
*** 3191,3201 **** { int err; VOPXID_MAP_CR(vp, cr); ! err = (*(vp)->v_op->vop_close)(vp, flag, count, offset, cr, ct); VOPSTATS_UPDATE(vp, close); /* * Check passed in count to handle possible dups. Vnode counts are only * kept on regular files */ --- 3192,3202 ---- { int err; VOPXID_MAP_CR(vp, cr); ! err = fsh_close(vp, flag, count, offset, cr, ct); VOPSTATS_UPDATE(vp, close); /* * Check passed in count to handle possible dups. Vnode counts are only * kept on regular files */
*** 3223,3233 **** int err; ssize_t resid_start = uiop->uio_resid; VOPXID_MAP_CR(vp, cr); ! err = (*(vp)->v_op->vop_read)(vp, uiop, ioflag, cr, ct); VOPSTATS_UPDATE_IO(vp, read, read_bytes, (resid_start - uiop->uio_resid)); return (err); } --- 3224,3234 ---- int err; ssize_t resid_start = uiop->uio_resid; VOPXID_MAP_CR(vp, cr); ! err = fsh_read(vp, uiop, ioflag, cr, ct); VOPSTATS_UPDATE_IO(vp, read, read_bytes, (resid_start - uiop->uio_resid)); return (err); }
*** 3242,3252 **** int err; ssize_t resid_start = uiop->uio_resid; VOPXID_MAP_CR(vp, cr); ! err = (*(vp)->v_op->vop_write)(vp, uiop, ioflag, cr, ct); VOPSTATS_UPDATE_IO(vp, write, write_bytes, (resid_start - uiop->uio_resid)); return (err); } --- 3243,3253 ---- int err; ssize_t resid_start = uiop->uio_resid; VOPXID_MAP_CR(vp, cr); ! err = fsh_write(vp, uiop, ioflag, cr, ct); VOPSTATS_UPDATE_IO(vp, write, write_bytes, (resid_start - uiop->uio_resid)); return (err); }