Lines Matching defs:recovp

277  * Transfer the state recovery information in recovp to mi's resend queue,
281 nfs4_enqueue_lost_rqst(recov_info_t *recovp, mntinfo4_t *mi)
283 nfs4_lost_rqst_t *lrp = recovp->rc_lost_rqst;
300 recovp->rc_lost_rqst = NULL;
308 * Transfer the bad seqid recovery information in recovp to mi's
312 enqueue_bseqid_rqst(recov_info_t *recovp, mntinfo4_t *mi)
316 ASSERT(recovp->rc_bseqid_rqst != NULL);
320 list_insert_tail(&mi->mi_bseqid_list, recovp->rc_bseqid_rqst);
321 recovp->rc_bseqid_rqst = NULL;
344 recov_info_t *recovp;
377 recovp = kmem_alloc(sizeof (recov_info_t), KM_SLEEP);
378 recovp->rc_orig_errors = *ep;
380 errs_to_action(recovp, sp, mi, sid, lost_rqstp, gone, op, bsep);
383 start_recovery(recovp, mi, vp1, vp2, sp, moved_vp, moved_nm);
398 recov_info_t *recovp;
405 recovp = kmem_zalloc(sizeof (recov_info_t), KM_SLEEP);
406 recovp->rc_action = what;
407 recovp->rc_srv_reboot = reboot;
408 recovp->rc_error = EIO;
409 start_recovery(recovp, mi, vp1, vp2, NULL, NULL, NULL);
413 start_recovery(recov_info_t *recovp, mntinfo4_t *mi,
419 nfs4_recov_action_to_str(recovp->rc_action)));
428 switch (recovp->rc_action) {
438 if (recovp->rc_lost_rqst != NULL)
439 nfs4_enqueue_lost_rqst(recovp, mi);
463 if (recovp->rc_srv_reboot)
473 if (recovp->rc_srv_reboot)
488 recov_badstate(recovp, vp1, NFS4ERR_EXPIRED);
490 recov_badstate(recovp, vp2, NFS4ERR_EXPIRED);
495 recov_badstate(recovp, vp1, NFS4ERR_BAD_STATEID);
497 recov_badstate(recovp, vp2, NFS4ERR_BAD_STATEID);
503 recov_throttle(recovp, vp1);
505 recov_throttle(recovp, vp2);
517 recov_filehandle(recovp->rc_action, mi, vp1);
519 recov_filehandle(recovp->rc_action, mi, vp2);
541 recovp->rc_action = NR_FAILOVER;
545 if (recovp->rc_bseqid_rqst) {
546 enqueue_bseqid_rqst(recovp, mi);
551 recov_badstate(recovp, vp1, NFS4ERR_BAD_SEQID);
553 recov_badstate(recovp, vp2, NFS4ERR_BAD_SEQID);
558 recov_badstate(recovp, vp1, NFS4ERR_OLD_STATEID);
560 recov_badstate(recovp, vp2, NFS4ERR_OLD_STATEID);
574 nfs4_enqueue_lost_rqst(recovp, mi);
578 recovp->rc_action, NULL, NULL, 0, NULL, 0, TAG_NONE,
590 recov_throttle(recovp, vp1);
592 recov_throttle(recovp, vp2);
608 recovp->rc_mi = mi;
609 recovp->rc_vp1 = vp1;
612 VN_HOLD(recovp->rc_vp1);
614 recovp->rc_vp2 = vp2;
617 VN_HOLD(recovp->rc_vp2);
619 recovp->rc_moved_vp = moved_vp;
620 recovp->rc_moved_nm = moved_nm;
622 (void) zthread_create(NULL, 0, nfs4_recov_thread, recovp, 0,
639 kmem_free(recovp, sizeof (recov_info_t));
1205 nfs4_recov_thread(recov_info_t *recovp)
1207 mntinfo4_t *mi = recovp->rc_mi;
1215 recovp->rc_vp1, recovp->rc_vp2, 0, NULL, 0, TAG_NONE, TAG_NONE,
1238 * Do any necessary recovery, based on the information in recovp
1266 mi->mi_error = recovp->rc_error;
1299 mi->mi_error = recovp->rc_error;
1326 recov_newserver(recovp, &sp, &recov_fail);
1340 recov_clientid(recovp, sp);
1363 error = nfs4_secinfo_recov(recovp->rc_mi,
1364 recovp->rc_vp1, recovp->rc_vp2);
1372 mi->mi_error = recovp->rc_error;
1375 error, recovp->rc_vp1, recovp->rc_vp2,
1391 recov_bad_seqid(recovp);
1405 recov_openfiles(recovp, sp);
1420 nfs4_resend_lost_rqsts(recovp, sp);
1503 recov_done(mi, recovp);
1509 if (recovp->rc_vp1 != NULL)
1510 VN_RELE(recovp->rc_vp1);
1511 if (recovp->rc_vp2 != NULL)
1512 VN_RELE(recovp->rc_vp2);
1523 kmem_free(recovp, sizeof (recov_info_t));
1535 recov_done(mntinfo4_t *mi, recov_info_t *recovp)
1540 nfs4_queue_event(RE_END, mi, NULL, 0, recovp->rc_vp1,
1541 recovp->rc_vp2, 0, NULL, 0, TAG_NONE, TAG_NONE, 0, 0);
1560 recov_newserver(recov_info_t *recovp, nfs4_server_t **spp, bool_t *recov_fail)
1562 mntinfo4_t *mi = recovp->rc_mi;
1702 if (recovp->rc_srv_reboot)
1731 recov_clientid(recov_info_t *recovp, nfs4_server_t *sp)
1733 mntinfo4_t *mi = recovp->rc_mi;
1779 mi->mi_error = recovp->rc_error;
1797 if (recovp->rc_srv_reboot)
2382 recov_badstate(recov_info_t *recovp, vnode_t *vp, nfsstat4 stat)
2385 recov_throttle(recovp, vp);
2488 recov_openfiles(recov_info_t *recovp, nfs4_server_t *sp)
2490 mntinfo4_t *mi = recovp->rc_mi;
2527 if (recovp->rc_srv_reboot || (mi->mi_recovflags & MI4R_SRV_REBOOT))
2622 nfs4_check_remap(mi, recovp->rc_vp1, NFS4_REMAP_CKATTRS,
2624 nfs4_check_remap(mi, recovp->rc_vp2, NFS4_REMAP_CKATTRS,
2647 nfs4_resend_lost_rqsts(recov_info_t *recovp, nfs4_server_t *sp)
2650 mntinfo4_t *mi = recovp->rc_mi;
3015 * it off of recovp.
3019 nfs4_save_lost_rqst(nfs4_lost_rqst_t *lost_rqstp, recov_info_t *recovp,
3024 ASSERT(recovp->rc_lost_rqst == NULL);
3027 recovp->rc_lost_rqst = destp;
3074 recovp->rc_lost_rqst = NULL;
3109 * action and fill in the following fields of recovp: rc_action,
3114 errs_to_action(recov_info_t *recovp,
3122 int error = recovp->rc_orig_errors.error;
3123 nfsstat4 stat = recovp->rc_orig_errors.stat;
3125 bzero(&recovp->rc_stateid, sizeof (stateid4));
3126 recovp->rc_lost_rqst = NULL;
3127 recovp->rc_bseqid_rqst = NULL;
3129 try_f = nfs4_try_failover(&recovp->rc_orig_errors) &&
3138 recovp->rc_error = (error != 0 ? error : geterrno4(stat));
3141 nfs4_save_lost_rqst(lost_rqstp, recovp, &action, mi);
3146 recovp->rc_error = error;
3151 recovp->rc_error = geterrno4(stat);
3166 save_bseqid_rqst(bsep, recovp);
3183 recovp->rc_stateid = *sidp;
3238 recovp->rc_srv_reboot = reboot;
3239 recovp->rc_action = action;
3360 recov_throttle(recov_info_t *recovp, vnode_t *vp)
3370 recovp->rc_action, curtime,
3372 if (recovp->rc_action == rp->r_recov_act &&
3382 rp->r_recov_act = recovp->rc_action;
3472 save_bseqid_rqst(nfs4_bseqid_entry_t *bsep, recov_info_t *recovp)
3477 recovp->rc_bseqid_rqst = destp;
3516 recov_bad_seqid(recov_info_t *recovp)
3518 mntinfo4_t *mi = recovp->rc_mi;