Page MenuHomeFreeBSD

D23755.id68570.diff
No OneTemporary

D23755.id68570.diff

Index: head/sys/vm/vnode_pager.c
===================================================================
--- head/sys/vm/vnode_pager.c
+++ head/sys/vm/vnode_pager.c
@@ -628,8 +628,11 @@
bwait(bp, PVM, "vnsrd");
- if ((bp->b_ioflags & BIO_ERROR) != 0)
- error = EIO;
+ if ((bp->b_ioflags & BIO_ERROR) != 0) {
+ KASSERT(bp->b_error != 0,
+ ("%s: buf error but b_error == 0\n", __func__));
+ error = bp->b_error;
+ }
/*
* free the buffer header back to the swap buffer pool
@@ -1113,7 +1116,9 @@
off_t tfoff, nextoff;
int i, error;
- error = (bp->b_ioflags & BIO_ERROR) != 0 ? EIO : 0;
+ KASSERT((bp->b_ioflags & BIO_ERROR) == 0 || bp->b_error != 0,
+ ("%s: buf error but b_error == 0\n", __func__));
+ error = (bp->b_ioflags & BIO_ERROR) != 0 ? bp->b_error : 0;
object = bp->b_vp->v_object;
if (error == 0 && bp->b_bcount != bp->b_npages * PAGE_SIZE) {

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 21, 6:08 PM (16 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25784568
Default Alt Text
D23755.id68570.diff (904 B)

Event Timeline