Print this page
patch lower-case-segops

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/vm/vm_pvn.c
          +++ new/usr/src/uts/common/vm/vm_pvn.c
↓ open down ↓ 132 lines elided ↑ open up ↑
 133  133                           * Still not enough memory, just settle for
 134  134                           * pagesavail which is at least 1.
 135  135                           */
 136  136                          vp_len = ptob(pagesavail);
 137  137                  }
 138  138          }
 139  139  
 140  140          vp_end = vp_off + vp_len;
 141  141          ASSERT(off >= vp_off && off < vp_end);
 142  142  
 143      -        if (isra && SEGOP_KLUSTER(seg, addr, 0))
      143 +        if (isra && segop_kluster(seg, addr, 0))
 144  144                  return ((page_t *)NULL);        /* segment driver says no */
 145  145  
 146  146          if ((plist = page_create_va(vp, off,
 147  147              PAGESIZE, PG_EXCL | PG_WAIT, seg, addr)) == NULL)
 148  148                  return ((page_t *)NULL);
 149  149  
 150  150          if (vp_len <= PAGESIZE || pvn_nofodklust) {
 151  151                  *offp = off;
 152  152                  *lenp = MIN(vp_len, PAGESIZE);
 153  153          } else {
↓ open down ↓ 1 lines elided ↑ open up ↑
 155  155                   * Scan back from front by incrementing "deltab" and
 156  156                   * comparing "off" with "vp_off + deltab" to avoid
 157  157                   * "signed" versus "unsigned" conversion problems.
 158  158                   */
 159  159                  for (deltab = PAGESIZE; off >= vp_off + deltab;
 160  160                      deltab += PAGESIZE) {
 161  161                          /*
 162  162                           * Call back to the segment driver to verify that
 163  163                           * the klustering/read ahead operation makes sense.
 164  164                           */
 165      -                        if (SEGOP_KLUSTER(seg, addr, -deltab))
      165 +                        if (segop_kluster(seg, addr, -deltab))
 166  166                                  break;          /* page not eligible */
 167  167                          if ((pp = page_create_va(vp, off - deltab,
 168  168                              PAGESIZE, PG_EXCL, seg, addr - deltab))
 169  169                              == NULL)
 170  170                                  break;          /* already have the page */
 171  171                          /*
 172  172                           * Add page to front of page list.
 173  173                           */
 174  174                          page_add(&plist, pp);
 175  175                  }
 176  176                  deltab -= PAGESIZE;
 177  177  
 178  178                  /* scan forward from front */
 179  179                  for (deltaf = PAGESIZE; off + deltaf < vp_end;
 180  180                      deltaf += PAGESIZE) {
 181  181                          /*
 182  182                           * Call back to the segment driver to verify that
 183  183                           * the klustering/read ahead operation makes sense.
 184  184                           */
 185      -                        if (SEGOP_KLUSTER(seg, addr, deltaf))
      185 +                        if (segop_kluster(seg, addr, deltaf))
 186  186                                  break;          /* page not file extension */
 187  187                          if ((pp = page_create_va(vp, off + deltaf,
 188  188                              PAGESIZE, PG_EXCL, seg, addr + deltaf))
 189  189                              == NULL)
 190  190                                  break;          /* already have page */
 191  191  
 192  192                          /*
 193  193                           * Add page to end of page list.
 194  194                           */
 195  195                          page_add(&plist, pp);
↓ open down ↓ 1024 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX