Print this page
XXXX give me a better summary

*** 2024,2036 **** /* * Only reason putapage is going to give us SE_NOSWAP as error * is when we ask a page to be written to physical backing store * and there is none. Ignore this because we might be dealing * with a swap page which does not have any backing store ! * on disk. In any other case we won't get this error over here. */ ! if (err == SE_NOSWAP) err = 0; return (err); } long tmp_putpagecnt, tmp_pagespushed; --- 2024,2037 ---- /* * Only reason putapage is going to give us SE_NOSWAP as error * is when we ask a page to be written to physical backing store * and there is none. Ignore this because we might be dealing * with a swap page which does not have any backing store ! * on disk, though the newer SE_NODEV error should cover that. ! * In any other case we won't get this error over here. */ ! if (err == SE_NOSWAP || err == SE_NODEV) err = 0; return (err); } long tmp_putpagecnt, tmp_pagespushed;
*** 2089,2107 **** io_off = pp_off; io_len = pp_len; err = swap_newphysname(vp, offset, &io_off, &io_len, &pvp, &pstart); ASSERT(err != SE_NOANON); /* anon slot must have been filled */ if (err) { ! pvn_write_done(pplist, B_ERROR | B_WRITE | flags); /* * If this routine is called as a result of segvn_sync * operation and we have no physical swap then we can get an * error here. In such case we would return SE_NOSWAP as error. - * At this point, we expect only SE_NOSWAP. */ ! ASSERT(err == SE_NOSWAP); ! if (flags & B_INVAL) err = ENOMEM; goto out; } ASSERT(pp_off <= io_off && io_off + io_len <= pp_off + pp_len); ASSERT(io_off <= offset && offset < io_off + io_len); --- 2090,2108 ---- io_off = pp_off; io_len = pp_len; err = swap_newphysname(vp, offset, &io_off, &io_len, &pvp, &pstart); ASSERT(err != SE_NOANON); /* anon slot must have been filled */ if (err) { ! ASSERT(err == SE_NOSWAP || err == SE_NODEV); ! pvn_write_done(pplist, (err == SE_NODEV ? 0 : B_ERROR) | ! B_WRITE | flags); /* * If this routine is called as a result of segvn_sync * operation and we have no physical swap then we can get an * error here. In such case we would return SE_NOSWAP as error. */ ! if ((flags & B_INVAL) && err == SE_NOSWAP) err = ENOMEM; goto out; } ASSERT(pp_off <= io_off && io_off + io_len <= pp_off + pp_len); ASSERT(io_off <= offset && offset < io_off + io_len);
*** 2141,2151 **** if (lenp) *lenp = io_len; tmp_putpagecnt++; tmp_pagespushed += btop(io_len); } ! if (err && err != ENOMEM && err != SE_NOSWAP) cmn_err(CE_WARN, "tmp_putapage: err %d\n", err); return (err); } /* ARGSUSED */ --- 2142,2152 ---- if (lenp) *lenp = io_len; tmp_putpagecnt++; tmp_pagespushed += btop(io_len); } ! if (err && err != ENOMEM && err != SE_NOSWAP && err != SE_NODEV) cmn_err(CE_WARN, "tmp_putapage: err %d\n", err); return (err); } /* ARGSUSED */