geom_ccd.c (21144e3bf1f416a758f6546bfabfa8e4e8cba507) | geom_ccd.c (b99c307a21423935df9af6a532033f28b62e2966) |
---|---|
1/* $FreeBSD$ */ 2 3/* $NetBSD: ccd.c,v 1.22 1995/12/08 19:13:26 thorpej Exp $ */ 4 5/* 6 * Copyright (c) 1995 Jason R. Thorpe. 7 * All rights reserved. 8 * --- 876 unchanged lines hidden (view full) --- 885 * We attempt to localize reads to the disk whos arm 886 * is nearest the read request. We ignore seeks due 887 * to writes when making this determination and we 888 * also try to avoid hogging. 889 */ 890 if (cbp[0]->cb_buf.b_iocmd == BIO_WRITE) { 891 cbp[0]->cb_buf.b_vp->v_numoutput++; 892 cbp[1]->cb_buf.b_vp->v_numoutput++; | 1/* $FreeBSD$ */ 2 3/* $NetBSD: ccd.c,v 1.22 1995/12/08 19:13:26 thorpej Exp $ */ 4 5/* 6 * Copyright (c) 1995 Jason R. Thorpe. 7 * All rights reserved. 8 * --- 876 unchanged lines hidden (view full) --- 885 * We attempt to localize reads to the disk whos arm 886 * is nearest the read request. We ignore seeks due 887 * to writes when making this determination and we 888 * also try to avoid hogging. 889 */ 890 if (cbp[0]->cb_buf.b_iocmd == BIO_WRITE) { 891 cbp[0]->cb_buf.b_vp->v_numoutput++; 892 cbp[1]->cb_buf.b_vp->v_numoutput++; |
893 VOP_STRATEGY(cbp[0]->cb_buf.b_vp, 894 &cbp[0]->cb_buf); 895 VOP_STRATEGY(cbp[1]->cb_buf.b_vp, 896 &cbp[1]->cb_buf); | 893 BUF_STRATEGY(&cbp[0]->cb_buf); 894 BUF_STRATEGY(&cbp[1]->cb_buf); |
897 } else { 898 int pick = cs->sc_pick; 899 daddr_t range = cs->sc_size / 16; 900 901 if (bn < cs->sc_blk[pick] - range || 902 bn > cs->sc_blk[pick] + range 903 ) { 904 cs->sc_pick = pick = 1 - pick; 905 } 906 cs->sc_blk[pick] = bn + btodb(rcount); | 895 } else { 896 int pick = cs->sc_pick; 897 daddr_t range = cs->sc_size / 16; 898 899 if (bn < cs->sc_blk[pick] - range || 900 bn > cs->sc_blk[pick] + range 901 ) { 902 cs->sc_pick = pick = 1 - pick; 903 } 904 cs->sc_blk[pick] = bn + btodb(rcount); |
907 VOP_STRATEGY(cbp[pick]->cb_buf.b_vp, 908 &cbp[pick]->cb_buf); | 905 BUF_STRATEGY(&cbp[pick]->cb_buf); |
909 } 910 } else { 911 /* 912 * Not mirroring 913 */ 914 if (cbp[0]->cb_buf.b_iocmd == BIO_WRITE) 915 cbp[0]->cb_buf.b_vp->v_numoutput++; | 906 } 907 } else { 908 /* 909 * Not mirroring 910 */ 911 if (cbp[0]->cb_buf.b_iocmd == BIO_WRITE) 912 cbp[0]->cb_buf.b_vp->v_numoutput++; |
916 VOP_STRATEGY(cbp[0]->cb_buf.b_vp, &cbp[0]->cb_buf); | 913 BUF_STRATEGY(&cbp[0]->cb_buf); |
917 } 918 bn += btodb(rcount); 919 addr += rcount; 920 } 921} 922 923/* 924 * Build a component buffer header. --- 280 unchanged lines hidden (view full) --- 1205 * When reading, either dispose of the second buffer 1206 * or initiate I/O on the second buffer if an error 1207 * occured with this one. 1208 */ 1209 if ((cbp->cb_pflags & CCDPF_MIRROR_DONE) == 0) { 1210 if (cbp->cb_buf.b_flags & B_ERROR) { 1211 cbp->cb_mirror->cb_pflags |= 1212 CCDPF_MIRROR_DONE; | 914 } 915 bn += btodb(rcount); 916 addr += rcount; 917 } 918} 919 920/* 921 * Build a component buffer header. --- 280 unchanged lines hidden (view full) --- 1202 * When reading, either dispose of the second buffer 1203 * or initiate I/O on the second buffer if an error 1204 * occured with this one. 1205 */ 1206 if ((cbp->cb_pflags & CCDPF_MIRROR_DONE) == 0) { 1207 if (cbp->cb_buf.b_flags & B_ERROR) { 1208 cbp->cb_mirror->cb_pflags |= 1209 CCDPF_MIRROR_DONE; |
1213 VOP_STRATEGY( 1214 cbp->cb_mirror->cb_buf.b_vp, 1215 &cbp->cb_mirror->cb_buf 1216 ); | 1210 BUF_STRATEGY(&cbp->cb_mirror->cb_buf); |
1217 putccdbuf(cbp); 1218 splx(s); 1219 return; 1220 } else { 1221 putccdbuf(cbp->cb_mirror); 1222 /* fall through */ 1223 } 1224 } --- 508 unchanged lines hidden --- | 1211 putccdbuf(cbp); 1212 splx(s); 1213 return; 1214 } else { 1215 putccdbuf(cbp->cb_mirror); 1216 /* fall through */ 1217 } 1218 } --- 508 unchanged lines hidden --- |