Lines Matching defs:krdc

87 int  rdc_diskq_enqueue(rdc_k_info_t *krdc, rdc_aio_t *);
90 rdc_aio_t *rdc_dequeue(rdc_k_info_t *krdc, int *rc);
91 void rdc_clr_iohdr(rdc_k_info_t *krdc, nsc_off_t qpos);
92 void rdc_close_diskq(rdc_group_t *krdc);
102 extern void rdc_fail_diskq(rdc_k_info_t *krdc, int wait, int flag);
127 rdc_k_info_t *krdc = &rdc_k_info[index];
128 int remote_index = krdc->remote_index;
131 if (krdc->remote_index < 0)
138 if (krdc->intf == NULL)
142 if (krdc->rpc_version <= RDC_VERSION5) {
143 err = rdc_clnt_call(krdc->lsrv, RDCPROC_GETSIZE,
144 krdc->rpc_version, xdr_int, (char *)&remote_index,
149 err = rdc_clnt_call(krdc->lsrv, RDCPROC_GETSIZE6,
150 krdc->rpc_version, xdr_int, (char *)&remote_index,
164 rdc_k_info_t *krdc = &rdc_k_info[index];
173 if (krdc->rpc_version < RDC_VERSION7) {
182 err = rdc_clnt_call(krdc->lsrv, RDCPROC_STATE,
183 krdc->rpc_version, xdr_set_state4, (char *)&s4, xdr_int,
204 err = rdc_clnt_call(krdc->lsrv, RDCPROC_STATE,
205 krdc->rpc_version, xdr_set_state, (char *)&s, xdr_int,
227 rdc_k_info_t *krdc;
229 krdc = &rdc_k_info[index];
231 if (krdc->remote_index < 0)
237 if (krdc->intf == NULL)
242 if (krdc->rpc_version <= RDC_VERSION5) {
243 b.cd = krdc->remote_index;
246 err = rdc_clnt_call(krdc->lsrv, RDCPROC_BMAP,
247 krdc->rpc_version, xdr_bmap, (char *)&b, xdr_int,
251 b6.cd = krdc->remote_index;
254 err = rdc_clnt_call(krdc->lsrv, RDCPROC_BMAP6,
255 krdc->rpc_version, xdr_bmap6, (char *)&b6, xdr_int,
267 rdc_net_getstate(rdc_k_info_t *krdc, int *serial_mode, int *use_mirror,
273 rdc_u_info_t *urdc = &rdc_u_info[krdc->index];
284 if (krdc->lsrv && (krdc->intf == NULL || krdc->intf->if_down) &&
310 krdc->rpc_version = sndr_proto;
312 krdc->rpc_version = RDC_VERS_MAX;
315 err = rdc_clnt_call(krdc->lsrv, RDCPROC_GETSTATE4, krdc->rpc_version,
318 if (err == RPC_PROGVERSMISMATCH && (krdc->rpc_version !=
320 if (krdc->rpc_version-- == RDC_VERSION7) {
344 cmn_err(CE_NOTE, "!sndr get_state: Protocol ver %d", krdc->rpc_version);
410 rdc_k_info_t *krdc;
435 krdc = &rdc_k_info[local_index];
440 if (krdc->remote_fd && !(rdc_get_vflags(urdc) & RDC_FCAL_FAILED)) {
444 ret = nsc_reserve(krdc->remote_fd, NSC_MULTI);
447 ret = nsc_alloc_buf(krdc->remote_fd, fba_pos, fba_len,
455 nsc_release(krdc->remote_fd);
459 rdc_group_enter(krdc);
461 rdc_group_exit(krdc);
465 nsc_release(krdc->remote_fd);
477 if (krdc->intf == NULL)
488 if (krdc->rpc_version <= RDC_VERSION5) {
496 err = rdc_clnt_call(krdc->lsrv, RDCPROC_READ5,
497 krdc->rpc_version, xdr_rread, (char *)&list, xdr_int,
507 err = rdc_clnt_call(krdc->lsrv, RDCPROC_READ6,
508 krdc->rpc_version, xdr_rread6, (char *)&list6, xdr_int,
532 if (krdc->rpc_version <= RDC_VERSION5) {
592 if (krdc->intf == NULL)
597 if (krdc->io_kstats) {
598 mutex_enter(krdc->io_kstats->ks_lock);
599 kstat_runq_enter(KSTAT_IO_PTR(krdc->io_kstats));
600 mutex_exit(krdc->io_kstats->ks_lock);
605 if (krdc->rpc_version <= RDC_VERSION5) {
608 err = rdc_clnt_call(krdc->lsrv, RDCPROC_READ5,
609 krdc->rpc_version, xdr_rread, (char *)&list,
614 err = rdc_clnt_call(krdc->lsrv, RDCPROC_READ6,
615 krdc->rpc_version, xdr_rread6, (char *)&list6,
619 if (krdc->io_kstats) {
620 mutex_enter(krdc->io_kstats->ks_lock);
621 kstat_runq_exit(KSTAT_IO_PTR(krdc->io_kstats));
622 mutex_exit(krdc->io_kstats->ks_lock);
653 if (krdc->rpc_version <= RDC_VERSION5) {
658 if (krdc->io_kstats) {
659 KSTAT_IO_PTR(krdc->io_kstats)->reads++;
660 KSTAT_IO_PTR(krdc->io_kstats)->nread += rr.rr_bufsize;
700 rdc_k_info_t *krdc;
734 krdc = &rdc_k_info[local_index];
740 if (krdc->remote_fd && !(rdc_get_vflags(urdc) & RDC_FCAL_FAILED)) {
744 ret = nsc_reserve(krdc->remote_fd, NSC_MULTI);
747 ret = nsc_alloc_buf(krdc->remote_fd, fba_pos, fba_len,
757 nsc_release(krdc->remote_fd);
761 rdc_group_enter(krdc);
763 rdc_group_exit(krdc);
767 nsc_release(krdc->remote_fd);
791 if (krdc->intf == NULL)
811 if (krdc->rpc_version <= RDC_VERSION5) {
866 if (krdc->intf == NULL)
873 if (krdc->io_kstats) {
874 mutex_enter(krdc->io_kstats->ks_lock);
875 kstat_runq_enter(KSTAT_IO_PTR(krdc->io_kstats));
876 mutex_exit(krdc->io_kstats->ks_lock);
878 if (krdc->rpc_version <= RDC_VERSION5) {
884 err = rdc_clnt_call(krdc->lsrv, RDCPROC_WRITE5,
885 krdc->rpc_version, xdr_net_data5,
900 err = rdc_clnt_call(krdc->lsrv, RDCPROC_WRITE6,
901 krdc->rpc_version, xdr_net_data6,
906 if (krdc->io_kstats) {
907 mutex_enter(krdc->io_kstats->ks_lock);
908 kstat_runq_exit(KSTAT_IO_PTR(krdc->io_kstats));
909 mutex_exit(krdc->io_kstats->ks_lock);
953 if (krdc->rpc_version <= RDC_VERSION5) {
961 if (krdc->io_kstats) {
962 KSTAT_IO_PTR(krdc->io_kstats)->writes++;
963 KSTAT_IO_PTR(krdc->io_kstats)->nwritten +=
1012 rdc_k_info_t *krdc;
1018 krdc = &rdc_k_info[index];
1021 if (!krdc->c_fd) {
1031 dq = &krdc->group->diskq;
1033 if (RDC_IS_DISKQ(krdc->group)) {
1035 (void) _rdc_rsrv_diskq(krdc->group);
1037 qlock = &krdc->group->ra_queue.net_qlock;
1047 q = &krdc->group->ra_queue;
1049 if (RDC_IS_DISKQ(krdc->group)) {
1073 if (RDC_IS_DISKQ(krdc->group)) {
1088 if (tmpkrdc->io_kstats && !RDC_IS_DISKQ(krdc->group)) {
1103 if (krdc->group->asyncstall) {
1104 krdc->group->asyncdis = 1;
1105 cv_broadcast(&krdc->group->asyncqcv);
1107 if (krdc->group->sleepq) {
1108 rdc_sleepqdiscard(krdc->group);
1111 krdc->group->seq = RDC_NEWSEQ;
1112 krdc->group->seqack = RDC_NEWSEQ;
1113 if (RDC_IS_DISKQ(krdc->group)) {
1120 if (RDC_IS_DISKQ(krdc->group)) {
1122 _rdc_rlse_diskq(krdc->group);
1138 rdc_k_info_t *krdc;
1144 krdc = &rdc_k_info[index];
1146 if (krdc->intf == ip) {
1176 rdc_k_info_t *krdc;
1188 for (krdc = this; /* CSTYLED */; krdc = krdc->many_next) {
1189 urdc = &rdc_u_info[krdc->index];
1202 if (IS_ASYNC(urdc) && RDC_IS_MEMQ(krdc->group)) {
1203 net_queue *q = &krdc->group->ra_queue;
1210 if (!krdc->group->rdc_writer)
1211 (void) rdc_writer(krdc->index);
1218 if (IS_ASYNC(urdc) && RDC_IS_DISKQ(krdc->group)) {
1219 disk_queue *q = &krdc->group->diskq;
1233 if (!krdc->group->rdc_writer)
1234 (void) rdc_writer(krdc->index);
1246 rdc_fail_diskq(krdc, RDC_WAIT,
1262 rdc_fail_diskq(krdc, RDC_WAIT,
1271 if (krdc->many_next == this)
1284 rdc_k_info_t *krdc;
1321 krdc = &rdc_k_info[queued->index];
1324 RDC_CLR_BITMAP(krdc, queued->pos, queued->len, \
1328 RDC_CLR_BITMAP(krdc, new->pos, new->len, \
1340 RDC_SET_BITMAP(krdc, queued->pos, queued->len, &bitmask);
1347 rdc_memq_enqueue(rdc_k_info_t *krdc, rdc_aio_t *aio)
1352 group = krdc->group;
1389 if (krdc->io_kstats) {
1390 mutex_enter(krdc->io_kstats->ks_lock);
1391 kstat_waitq_enter(KSTAT_IO_PTR(krdc->io_kstats));
1392 mutex_exit(krdc->io_kstats->ks_lock);
1427 if (!krdc->group->rdc_writer)
1428 (void) rdc_writer(krdc->index);
1434 _rdc_enqueue_write(rdc_k_info_t *krdc, nsc_off_t pos, nsc_size_t len, int flag,
1439 rdc_u_info_t *urdc = &rdc_u_info[krdc->index];
1447 group = krdc->group;
1453 aio->index = krdc->index;
1457 return (rdc_memq_enqueue(krdc, aio));
1460 rc = rdc_diskq_enqueue(krdc, aio);
1479 is_disable_pending(rdc_k_info_t *krdc)
1481 rdc_k_info_t *this = krdc;
1485 if (krdc->type_flag & RDC_DISABLEPEND) {
1486 krdc = this;
1490 krdc = krdc->group_next;
1492 } while (krdc != this);
1504 rdc_k_info_t *krdc = &rdc_k_info[index];
1511 group = krdc->group;
1527 if ((group->rdc_writer) || is_disable_pending(krdc)) {
1548 if (krdc->intf && (krdc->intf->rpc_version >= RDC_VERSION6)) {
1591 rdc_many_enter(krdc);
1605 krdc->group = NULL;
1606 rdc_many_exit(krdc);
1610 rdc_many_exit(krdc);
1622 rdc_k_info_t *krdc = &rdc_k_info[index];
1624 if (krdc->group->flags & RDC_MEMQUE) {
1627 } else if (krdc->group->flags & RDC_DISKQUE) {
1639 rdc_k_info_t *krdc = &rdc_k_info[index];
1643 rdc_group_t *group = krdc->group;
1651 if (!krdc->c_fd) {
1659 if (index < 0 || (krdc->type_flag & RDC_DISABLEPEND)) {
1676 group = krdc->group;
1784 rdc_group_enter(krdc);
1785 ASSERT(krdc->group);
1786 rdc_group_log(krdc, RDC_NOFLUSH | RDC_ALLREMOTE,
1788 rdc_group_exit(krdc);
1793 if (krdc->remote_index < 0 || !krdc->lsrv || !krdc->intf)
1798 rdc_many_enter(krdc);
1815 krdc->group = NULL;
1816 rdc_many_exit(krdc);
1820 rdc_many_exit(krdc);
1830 rdc_k_info_t *krdc = &rdc_k_info[index];
1837 rdc_group_t *group = krdc->group;
1846 if (!krdc->c_fd) {
1854 if (index < 0 || (krdc->type_flag & RDC_DISABLEPEND)) {
1878 group = krdc->group;
1893 aio = rdc_dequeue(krdc, &rc);
1966 rdc_group_enter(krdc);
1967 rdc_group_log(krdc,
1970 rdc_group_exit(krdc);
1978 if (krdc->type_flag & RDC_DISABLEPEND) {
1983 if (krdc->remote_index < 0 || !krdc->lsrv || !krdc->intf)
1994 rdc_many_enter(krdc);
2002 (void) _rdc_rsrv_diskq(krdc->group);
2007 _rdc_rlse_diskq(krdc->group);
2023 krdc->group = NULL;
2024 rdc_many_exit(krdc);
2028 rdc_many_exit(krdc);
2041 rdc_k_info_t *krdc = &rdc_k_info[aio->index];
2043 disk_queue *q = &krdc->group->diskq;
2055 group = krdc->group;
2123 if ((krdc->io_kstats) && (!RDC_IS_DISKQ(krdc->group))) {
2124 mutex_enter(krdc->io_kstats->ks_lock);
2125 kstat_waitq_exit(KSTAT_IO_PTR(krdc->io_kstats));
2126 mutex_exit(krdc->io_kstats->ks_lock);
2131 rc = _rdc_rsrv_devs(krdc, rtype, RDC_INTERNAL);
2146 rc = nsc_alloc_buf(RDC_U_FD(krdc), aio->pos, aio->len,
2175 if (krdc->remote_index < 0) {
2182 krdc->remote_index = rdc_net_state(krdc->index, CCIO_SLAVE);
2183 DTRACE_PROBE1(remote_index_negative, int, krdc->remote_index);
2201 rc = rdc_net_write(krdc->index, krdc->remote_index,
2267 _rdc_rlse_devs(krdc, rtype);
2273 RDC_CLR_BITMAP(krdc, aio->pos, aio->len, \
2276 if (RDC_IS_DISKQ(krdc->group)) {
2279 rdc_clr_iohdr(krdc, aio->qpos);
2337 rdc_clr_iohdr(krdc, vecp->qpos);
2410 _rdc_rlse_devs(krdc, rtype);
2413 if ((waitq && krdc->io_kstats) && (!RDC_IS_DISKQ(krdc->group))) {
2414 mutex_enter(krdc->io_kstats->ks_lock);
2415 kstat_waitq_exit(KSTAT_IO_PTR(krdc->io_kstats));
2416 mutex_exit(krdc->io_kstats->ks_lock);
2420 RDC_CHECK_BIT(krdc, aio->pos, aio->len);
2437 rdc_k_info_t *krdc = &rdc_k_info[index];
2450 if (!(group = krdc->group) || !(diskq = &group->diskq))
2473 if (!(group = krdc->group) || !(diskq = &group->diskq))
2504 rdc_k_info_t *krdc = &rdc_k_info[index];
2505 rdc_group_t *group = krdc->group;
2531 rdc_k_info_t *krdc = &rdc_k_info[index];
2539 if (!krdc->group)
2542 if (!(q = &krdc->group->ra_queue))
2549 (krdc->group->rdc_thrnum == 0)) {
2555 q = (volatile net_queue *)&krdc->group->ra_queue;
2579 rdc_k_info_t *krdc = &rdc_k_info[index];
2586 group = krdc->group;
2959 rdc_clnt_call_walk(rdc_k_info_t *krdc, rpcproc_t proc, xdrproc_t xargs,
2965 rdc_srv_t *svp = krdc->lsrv;
2966 rdc_if_t *ip = krdc->intf;
2967 vers = krdc->rpc_version;
3109 rdc_k_info_t *krdc;
3134 krdc = &rdc_k_info[index];
3136 if (!IS_CONFIGURED(krdc))
3142 if (krdc->rpc_version < RDC_VERSION6)
3180 data6.local_cd = krdc->index;
3181 if (krdc->remote_index == -1) {
3186 data6.cd = krdc->remote_index;
3215 rc = rdc_clnt_call(krdc->lsrv, RDCPROC_WRITE6, krdc->rpc_version,
3260 rdc_k_info_t *krdc;
3298 krdc = &rdc_k_info[index];
3300 if (index < 0 || (krdc->type_flag & RDC_DISABLEPEND)) {
3311 if (krdc->remote_index == -1) {
3317 read6.cd = krdc->remote_index;
3323 read5.cd = krdc->remote_index;
3332 err = rdc_clnt_call(krdc->lsrv, RDCPROC_READ6,
3336 err = rdc_clnt_call(krdc->lsrv, RDCPROC_READ5,
3348 err = rdc_clnt_call(krdc->lsrv, RDCPROC_READ6,
3352 err = rdc_clnt_call(krdc->lsrv, RDCPROC_READ5,