summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2004-06-23 15:15:07 +0000
committerbms <bms@FreeBSD.org>2004-06-23 15:15:07 +0000
commit72f48d54670d08a6d096b8c79a51b3a90be61dc5 (patch)
treea63dcc8615db7934b480a765dc7481b31d051711
parenta1484e7d3e34c4e8f1686b39c31df636cc7206a9 (diff)
downloadFreeBSD-src-72f48d54670d08a6d096b8c79a51b3a90be61dc5.zip
FreeBSD-src-72f48d54670d08a6d096b8c79a51b3a90be61dc5.tar.gz
In swap_pager_getpages(), bp->b_dev can be NULL, particularly for the
case of NFS mounted swap, so do not try to dereference it. While we're here, brucify the printf() call which happens when we time out on acquisition of vm_page_queue_mtx. PR: kern/67898 Submitted by: bde (style)
-rw-r--r--sys/vm/swap_pager.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index 66483e6..9f291b8 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -1131,12 +1131,10 @@ swap_pager_getpages(vm_object_t object, vm_page_t *m, int count, int reqpage)
vm_page_flag_set(mreq, PG_WANTED | PG_REFERENCED);
cnt.v_intrans++;
if (msleep(mreq, &vm_page_queue_mtx, PSWP, "swread", hz*20)) {
- printf(
- "swap_pager: indefinite wait buffer: device:"
- " %s, blkno: %ld, size: %ld\n",
- devtoname(bp->b_dev), (long)bp->b_blkno,
- bp->b_bcount
- );
+ printf("swap_pager: indefinite wait buffer: device: "
+ "%s, blkno: %jd, size: %ld\n",
+ bp->b_dev == NULL ? "[NULL]" : devtoname(bp->b_dev),
+ (intmax_t)bp->b_blkno, bp->b_bcount);
}
}
vm_page_unlock_queues();
OpenPOWER on IntegriCloud