summaryrefslogtreecommitdiffstats
path: root/sys/dev/vn/vn.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/vn/vn.c')
-rw-r--r--sys/dev/vn/vn.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/sys/dev/vn/vn.c b/sys/dev/vn/vn.c
index ba0caad..8acdeb7 100644
--- a/sys/dev/vn/vn.c
+++ b/sys/dev/vn/vn.c
@@ -294,7 +294,7 @@ vnstrategy(struct buf *bp)
if ((vn->sc_flags & VNF_INITED) == 0) {
bp->b_error = ENXIO;
- bp->b_flags |= B_ERROR;
+ bp->b_ioflags |= BIO_ERROR;
biodone(bp);
return;
}
@@ -303,6 +303,7 @@ vnstrategy(struct buf *bp)
IFOPT(vn, VN_LABELS) {
if (vn->sc_slices != NULL && dscheck(bp, vn->sc_slices) <= 0) {
+ /* XXX: Normal B_ERROR processing, instead ? */
bp->b_flags |= B_INVAL;
biodone(bp);
return;
@@ -318,7 +319,8 @@ vnstrategy(struct buf *bp)
if (bp->b_bcount % vn->sc_secsize != 0 ||
bp->b_blkno % (vn->sc_secsize / DEV_BSIZE) != 0) {
bp->b_error = EINVAL;
- bp->b_flags |= B_ERROR | B_INVAL;
+ bp->b_flags |= B_INVAL;
+ bp->b_ioflags |= BIO_ERROR;
biodone(bp);
return;
}
@@ -333,7 +335,8 @@ vnstrategy(struct buf *bp)
if (pbn < 0 || pbn >= vn->sc_size) {
if (pbn != vn->sc_size) {
bp->b_error = EINVAL;
- bp->b_flags |= B_ERROR | B_INVAL;
+ bp->b_flags |= B_INVAL;
+ bp->b_ioflags |= BIO_ERROR;
}
biodone(bp);
return;
@@ -358,7 +361,7 @@ vnstrategy(struct buf *bp)
/*
* VNODE I/O
*
- * If an error occurs, we set B_ERROR but we do not set
+ * If an error occurs, we set BIO_ERROR but we do not set
* B_INVAL because (for a write anyway), the buffer is
* still valid.
*/
@@ -390,7 +393,7 @@ vnstrategy(struct buf *bp)
if (error) {
bp->b_error = error;
- bp->b_flags |= B_ERROR;
+ bp->b_ioflags |= BIO_ERROR;
}
biodone(bp);
} else if (vn->sc_object) {
@@ -410,7 +413,7 @@ vnstrategy(struct buf *bp)
vm_pager_strategy(vn->sc_object, bp);
}
} else {
- bp->b_flags |= B_ERROR;
+ bp->b_ioflags |= BIO_ERROR;
bp->b_error = EINVAL;
biodone(bp);
}
OpenPOWER on IntegriCloud