diff options
author | bms <bms@FreeBSD.org> | 2004-06-23 15:15:07 +0000 |
---|---|---|
committer | bms <bms@FreeBSD.org> | 2004-06-23 15:15:07 +0000 |
commit | 72f48d54670d08a6d096b8c79a51b3a90be61dc5 (patch) | |
tree | a63dcc8615db7934b480a765dc7481b31d051711 /sys/vm | |
parent | a1484e7d3e34c4e8f1686b39c31df636cc7206a9 (diff) | |
download | FreeBSD-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)
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/swap_pager.c | 10 |
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(); |