[BACK]Return to puffs_vnops.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_vnops.c between version 1.158 and 1.159

version 1.158, 2011/10/17 23:54:01 version 1.159, 2011/10/18 15:39:09
Line 1243  puffs_vnop_readdir(void *v)
Line 1243  puffs_vnop_readdir(void *v)
   
         /* provide cookies to caller if so desired */          /* provide cookies to caller if so desired */
         if (ap->a_cookies) {          if (ap->a_cookies) {
   #ifdef DIAGNOSTIC
                   KASSERT(curlwp != uvm.pagedaemon_lwp);
   #endif
                 *ap->a_cookies = malloc(readdir_msg->pvnr_ncookies*CSIZE,                  *ap->a_cookies = malloc(readdir_msg->pvnr_ncookies*CSIZE,
                     M_TEMP, M_WAITOK);                      M_TEMP, M_WAITOK);
                 *ap->a_ncookies = readdir_msg->pvnr_ncookies;                  *ap->a_ncookies = readdir_msg->pvnr_ncookies;
Line 2217  puffs_vnop_strategy(void *v)
Line 2220  puffs_vnop_strategy(void *v)
         struct buf *bp;          struct buf *bp;
         size_t argsize;          size_t argsize;
         size_t tomove, moved;          size_t tomove, moved;
         int error, dofaf, dobiodone;          int error, dofaf, cansleep, dobiodone;
   
         pmp = MPTOPUFFSMP(vp->v_mount);          pmp = MPTOPUFFSMP(vp->v_mount);
         bp = ap->a_bp;          bp = ap->a_bp;
         error = 0;          error = 0;
         dofaf = 0;          dofaf = 0;
           cansleep = 0;
         pn = VPTOPP(vp);          pn = VPTOPP(vp);
         park_rw = NULL; /* explicit */          park_rw = NULL; /* explicit */
         dobiodone = 1;          dobiodone = 1;
Line 2262  puffs_vnop_strategy(void *v)
Line 2266  puffs_vnop_strategy(void *v)
                 mutex_exit(vp->v_interlock);                  mutex_exit(vp->v_interlock);
         }          }
   
           cansleep = (curlwp == uvm.pagedaemon_lwp || dofaf) ? 0 : 1;
   
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
                 if (curlwp == uvm.pagedaemon_lwp)                  if (curlwp == uvm.pagedaemon_lwp)
                         KASSERT(dofaf || BIOASYNC(bp));                          KASSERT(dofaf || BIOASYNC(bp));
Line 2271  puffs_vnop_strategy(void *v)
Line 2277  puffs_vnop_strategy(void *v)
         tomove = PUFFS_TOMOVE(bp->b_bcount, pmp);          tomove = PUFFS_TOMOVE(bp->b_bcount, pmp);
         argsize = sizeof(struct puffs_vnmsg_rw);          argsize = sizeof(struct puffs_vnmsg_rw);
         error = puffs_msgmem_alloc(argsize + tomove, &park_rw,          error = puffs_msgmem_alloc(argsize + tomove, &park_rw,
             (void *)&rw_msg, dofaf);              (void *)&rw_msg, cansleep);
         if (error)          if (error)
                 goto out;                  goto out;
         RWARGS(rw_msg, 0, tomove, bp->b_blkno << DEV_BSHIFT, FSCRED);          RWARGS(rw_msg, 0, tomove, bp->b_blkno << DEV_BSHIFT, FSCRED);
Line 2531  puffs_vnop_getpages(void *v)
Line 2537  puffs_vnop_getpages(void *v)
 #ifdef notnowjohn  #ifdef notnowjohn
                 /* allocate worst-case memory */                  /* allocate worst-case memory */
                 runsizes = ((npages / 2) + 1) * sizeof(struct puffs_cacherun);                  runsizes = ((npages / 2) + 1) * sizeof(struct puffs_cacherun);
   #ifdef DIAGNOSTIC
                   if (curlwp == uvm.pagedaemon_lwp)
                           KASSERT(locked);
   #endif
                 pcinfo = kmem_zalloc(sizeof(struct puffs_cacheinfo) + runsize,                  pcinfo = kmem_zalloc(sizeof(struct puffs_cacheinfo) + runsize,
                     locked ? KM_NOSLEEP : KM_SLEEP);                      locked ? KM_NOSLEEP : KM_SLEEP);
   

Legend:
Removed from v.1.158  
changed lines
  Added in v.1.159

CVSweb <webmaster@jp.NetBSD.org>