summaryrefslogtreecommitdiffstats
path: root/sys/gnu/fs/reiserfs/reiserfs_vnops.c
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2008-12-16 21:13:11 +0000
committertrasz <trasz@FreeBSD.org>2008-12-16 21:13:11 +0000
commitb2515a861b17c67bef0ad8eb3e85cdaffe242388 (patch)
tree69e7de47346c349ddf6f303959a812bf891ea077 /sys/gnu/fs/reiserfs/reiserfs_vnops.c
parent4039bb7c824968c46ec054cb3ea586cc81de6623 (diff)
downloadFreeBSD-src-b2515a861b17c67bef0ad8eb3e85cdaffe242388.zip
FreeBSD-src-b2515a861b17c67bef0ad8eb3e85cdaffe242388.tar.gz
According to phk@, VOP_STRATEGY should never, _ever_, return
anything other than 0. Make it so. This fixes "panic: VOP_STRATEGY failed bp=0xc320dd90 vp=0xc3b9f648", encountered when writing to an orphaned filesystem. Reason for the panic was the following assert: KASSERT(i == 0, ("VOP_STRATEGY failed bp=%p vp=%p", bp, bp->b_vp)); at vfs_bio:bufstrategy(). Reviewed by: scottl, phk Approved by: rwatson (mentor) Sponsored by: FreeBSD Foundation
Diffstat (limited to 'sys/gnu/fs/reiserfs/reiserfs_vnops.c')
-rw-r--r--sys/gnu/fs/reiserfs/reiserfs_vnops.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/gnu/fs/reiserfs/reiserfs_vnops.c b/sys/gnu/fs/reiserfs/reiserfs_vnops.c
index e6323ea..12fe409 100644
--- a/sys/gnu/fs/reiserfs/reiserfs_vnops.c
+++ b/sys/gnu/fs/reiserfs/reiserfs_vnops.c
@@ -350,8 +350,13 @@ reiserfs_strategy(struct vop_strategy_args /* {
bp->b_ioflags |= BIO_ERROR;
}
+ if (error) {
+ bp->b_ioflags |= BIO_ERROR;
+ bp->b_error = error;
+ }
+
bufdone(bp);
- return (error);
+ return (0);
}
/*
OpenPOWER on IntegriCloud