Print this page
[mq]: core-v2
*** 1008,1019 ****
}
do {
retry:
pp = page_numtopp_nolock(pfn + i);
! if ((pp == NULL) || IS_DUMP_PAGE(pp) ||
! (page_trylock(pp, SE_EXCL) == 0)) {
(*pfnp)++;
break;
}
if (page_pptonum(pp) != pfn + i) {
page_unlock(pp);
--- 1008,1018 ----
}
do {
retry:
pp = page_numtopp_nolock(pfn + i);
! if ((pp == NULL) || (page_trylock(pp, SE_EXCL) == 0)) {
(*pfnp)++;
break;
}
if (page_pptonum(pp) != pfn + i) {
page_unlock(pp);
*** 3111,3122 ****
pcm = PC_BIN_MUTEX(mnode, bin, PG_FREE_LIST);
mutex_enter(pcm);
pp = PAGE_FREELISTS(mnode, szc, bin, mtype);
first_pp = pp;
while (pp != NULL) {
! if (IS_DUMP_PAGE(pp) || page_trylock(pp,
! SE_EXCL) == 0) {
pp = pp->p_next;
if (pp == first_pp) {
pp = NULL;
}
continue;
--- 3110,3120 ----
pcm = PC_BIN_MUTEX(mnode, bin, PG_FREE_LIST);
mutex_enter(pcm);
pp = PAGE_FREELISTS(mnode, szc, bin, mtype);
first_pp = pp;
while (pp != NULL) {
! if (page_trylock(pp, SE_EXCL) == 0) {
pp = pp->p_next;
if (pp == first_pp) {
pp = NULL;
}
continue;
*** 3206,3217 ****
pcm = PC_BIN_MUTEX(mnode, bin, PG_CACHE_LIST);
mutex_enter(pcm);
pp = PAGE_CACHELISTS(mnode, bin, mtype);
first_pp = pp;
while (pp != NULL) {
! if (IS_DUMP_PAGE(pp) || page_trylock(pp,
! SE_EXCL) == 0) {
pp = pp->p_next;
if (pp == first_pp)
pp = NULL;
continue;
}
--- 3204,3214 ----
pcm = PC_BIN_MUTEX(mnode, bin, PG_CACHE_LIST);
mutex_enter(pcm);
pp = PAGE_CACHELISTS(mnode, bin, mtype);
first_pp = pp;
while (pp != NULL) {
! if (page_trylock(pp, SE_EXCL) == 0) {
pp = pp->p_next;
if (pp == first_pp)
pp = NULL;
continue;
}