[BACK]Return to puffs_subr.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / fs / puffs

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/fs/puffs/puffs_subr.c between version 1.57.4.3 and 1.58

version 1.57.4.3, 2008/02/18 21:06:40 version 1.58, 2007/11/16 20:32:18
Line 47  int puffsdebug;
Line 47  int puffsdebug;
   
 void  void
 puffs_makecn(struct puffs_kcn *pkcn, struct puffs_kcred *pkcr,  puffs_makecn(struct puffs_kcn *pkcn, struct puffs_kcred *pkcr,
         const struct componentname *cn, int full)          struct puffs_kcid *pkcid, const struct componentname *cn, int full)
 {  {
   
         pkcn->pkcn_nameiop = cn->cn_nameiop;          pkcn->pkcn_nameiop = cn->cn_nameiop;
         pkcn->pkcn_flags = cn->cn_flags;          pkcn->pkcn_flags = cn->cn_flags;
           puffs_cidcvt(pkcid, cn->cn_lwp);
   
         if (full) {          if (full) {
                 (void)strcpy(pkcn->pkcn_name, cn->cn_nameptr);                  (void)strcpy(pkcn->pkcn_name, cn->cn_nameptr);
Line 87  puffs_credcvt(struct puffs_kcred *pkcr, 
Line 88  puffs_credcvt(struct puffs_kcred *pkcr, 
 }  }
   
 void  void
 puffs_parkdone_asyncbioread(struct puffs_mount *pmp,  puffs_cidcvt(struct puffs_kcid *pkcid, const struct lwp *l)
         struct puffs_req *preq, void *arg)  
 {  {
         struct puffs_vnmsg_read *read_msg = (void *)preq;  
         struct buf *bp = arg;  
         size_t moved;  
   
         DPRINTF(("%s\n", __func__));  
   
         bp->b_error = checkerr(pmp, preq->preq_rv, __func__);  
         if (bp->b_error == 0) {  
                 if (read_msg->pvnr_resid > bp->b_bcount) {  
                         puffs_senderr(pmp, PUFFS_ERR_READ, E2BIG,  
                             "resid grew", preq->preq_cookie);  
                         bp->b_error = E2BIG;  
                 } else {  
                         moved = bp->b_bcount - read_msg->pvnr_resid;  
                         bp->b_resid = read_msg->pvnr_resid;  
   
                         memcpy(bp->b_data, read_msg->pvnr_data, moved);          if (l) {
                 }                  pkcid->pkcid_type = PUFFCID_TYPE_REAL;
                   pkcid->pkcid_pid = l->l_proc->p_pid;
                   pkcid->pkcid_lwpid = l->l_lid;
           } else {
                   pkcid->pkcid_type = PUFFCID_TYPE_FAKE;
                   pkcid->pkcid_pid = 0;
                   pkcid->pkcid_lwpid = 0;
         }          }
   
         biodone(bp);  
 }  }
   
 void  void
 puffs_parkdone_asyncbiowrite(struct puffs_mount *pmp,  puffs_parkdone_asyncbioread(struct puffs_mount *pmp,
         struct puffs_req *preq, void *arg)          struct puffs_req *preq, void *arg)
 {  {
         struct puffs_vnmsg_write *write_msg = (void *)preq;          struct puffs_vnmsg_read *read_msg = (void *)preq;
         struct buf *bp = arg;          struct buf *bp = arg;
           size_t moved;
         DPRINTF(("%s\n", __func__));  
   
         bp->b_error = checkerr(pmp, preq->preq_rv, __func__);          bp->b_error = checkerr(pmp, preq->preq_rv, __func__);
         if (bp->b_error == 0) {          if (bp->b_error == 0) {
                 if (write_msg->pvnr_resid > bp->b_bcount) {                  moved = bp->b_bcount - read_msg->pvnr_resid;
                         puffs_senderr(pmp, PUFFS_ERR_WRITE, E2BIG,                  bp->b_resid = read_msg->pvnr_resid;
                             "resid grew", preq->preq_cookie);  
                         bp->b_error = E2BIG;                  memcpy(bp->b_data, read_msg->pvnr_data, moved);
                 } else {  
                         bp->b_resid = write_msg->pvnr_resid;  
                 }  
         }          }
   
         biodone(bp);          biodone(bp);
Line 194  puffs_gop_markupdate(struct vnode *vp, i
Line 179  puffs_gop_markupdate(struct vnode *vp, i
         if (flags & GOP_UPDATE_MODIFIED)          if (flags & GOP_UPDATE_MODIFIED)
                 uflags |= PUFFS_UPDATEMTIME;                  uflags |= PUFFS_UPDATEMTIME;
   
         puffs_updatenode(VPTOPP(vp), uflags, 0);          puffs_updatenode(vp, uflags);
 }  }
   
 void  void
 puffs_senderr(struct puffs_mount *pmp, int type, int error,  puffs_senderr(struct puffs_mount *pmp, int type, int error,
         const char *str, puffs_cookie_t ck)          const char *str, void *cookie)
 {  {
         struct puffs_msgpark *park;          struct puffs_msgpark *park;
         struct puffs_error *perr;          struct puffs_error *perr;
   
         puffs_msgmem_alloc(sizeof(struct puffs_error), &park, (void *)&perr, 1);          puffs_msgmem_alloc(sizeof(struct puffs_error), &park, (void**)&perr, 1);
         puffs_msg_setfaf(park);          puffs_msg_setfaf(park);
         puffs_msg_setinfo(park, PUFFSOP_ERROR, type, ck);          puffs_msg_setinfo(park, PUFFSOP_ERROR, type, cookie);
   
         perr->perr_error = error;          perr->perr_error = error;
         strlcpy(perr->perr_str, str, sizeof(perr->perr_str));          strlcpy(perr->perr_str, str, sizeof(perr->perr_str));

Legend:
Removed from v.1.57.4.3  
changed lines
  Added in v.1.58

CVSweb <webmaster@jp.NetBSD.org>