Lines Matching refs:f

82 	struct frame *f;  in getframe_deferred()  local
86 f = list_entry(pos, struct frame, head); in getframe_deferred()
87 if (f->tag == tag) { in getframe_deferred()
89 return f; in getframe_deferred()
98 struct frame *f; in getframe() local
105 f = list_entry(pos, struct frame, head); in getframe()
106 if (f->tag == tag) { in getframe()
108 return f; in getframe()
193 aoe_freetframe(struct frame *f) in aoe_freetframe() argument
197 t = f->t; in aoe_freetframe()
198 f->buf = NULL; in aoe_freetframe()
199 memset(&f->iter, 0, sizeof(f->iter)); in aoe_freetframe()
200 f->r_skb = NULL; in aoe_freetframe()
201 f->flags = 0; in aoe_freetframe()
202 list_add(&f->head, &t->ffree); in aoe_freetframe()
208 struct frame *f; in newtframe() local
215 f = kcalloc(1, sizeof(*f), GFP_ATOMIC); in newtframe()
216 if (f == NULL) in newtframe()
219 f->t = t; in newtframe()
223 f = list_entry(pos, struct frame, head); in newtframe()
226 skb = f->skb; in newtframe()
228 f->skb = skb = new_skb(ETH_ZLEN); in newtframe()
230 bail: aoe_freetframe(f); in newtframe()
239 skb_pool_put(d, f->skb); in newtframe()
240 f->skb = skb; in newtframe()
246 return f; in newtframe()
252 struct frame *f; in newframe() local
275 f = newtframe(d, t); in newframe()
276 if (f) { in newframe()
279 return f; in newframe()
308 fhash(struct frame *f) in fhash() argument
310 struct aoedev *d = f->t->d; in fhash()
313 n = f->tag % NFACTIVE; in fhash()
314 list_add_tail(&f->head, &d->factive[n]); in fhash()
318 ata_rw_frameinit(struct frame *f) in ata_rw_frameinit() argument
326 skb = f->skb; in ata_rw_frameinit()
335 t = f->t; in ata_rw_frameinit()
336 f->tag = aoehdr_atainit(t->d, t, h); in ata_rw_frameinit()
337 fhash(f); in ata_rw_frameinit()
339 f->waited = 0; in ata_rw_frameinit()
340 f->waited_total = 0; in ata_rw_frameinit()
343 ah->scnt = f->iter.bi_size >> 9; in ata_rw_frameinit()
344 put_lba(ah, f->iter.bi_sector); in ata_rw_frameinit()
352 if (f->buf && bio_data_dir(f->buf->bio) == WRITE) { in ata_rw_frameinit()
353 skb_fillup(skb, f->buf->bio, f->iter); in ata_rw_frameinit()
355 skb->len += f->iter.bi_size; in ata_rw_frameinit()
356 skb->data_len = f->iter.bi_size; in ata_rw_frameinit()
357 skb->truesize += f->iter.bi_size; in ata_rw_frameinit()
371 struct frame *f; in aoecmd_ata_rw() local
379 f = newframe(d); in aoecmd_ata_rw()
380 if (f == NULL) in aoecmd_ata_rw()
384 f->buf = buf; in aoecmd_ata_rw()
385 f->iter = buf->iter; in aoecmd_ata_rw()
386 f->iter.bi_size = min_t(unsigned long, in aoecmd_ata_rw()
388 f->iter.bi_size); in aoecmd_ata_rw()
389 bio_advance_iter(buf->bio, &buf->iter, f->iter.bi_size); in aoecmd_ata_rw()
397 ata_rw_frameinit(f); in aoecmd_ata_rw()
399 skb = skb_clone(f->skb, GFP_ATOMIC); in aoecmd_ata_rw()
401 do_gettimeofday(&f->sent); in aoecmd_ata_rw()
402 f->sent_jiffs = (u32) jiffies; in aoecmd_ata_rw()
453 resend(struct aoedev *d, struct frame *f) in resend() argument
462 t = f->t; in resend()
464 skb = f->skb; in resend()
468 ktcomplete(f, NULL); in resend()
473 if (!(f->flags & FFL_PROBE)) { in resend()
477 f->tag, jiffies, n, in resend()
482 f->tag = n; in resend()
483 fhash(f); in resend()
492 do_gettimeofday(&f->sent); in resend()
493 f->sent_jiffs = (u32) jiffies; in resend()
500 tsince_hr(struct frame *f) in tsince_hr() argument
506 n = now.tv_usec - f->sent.tv_usec; in tsince_hr()
507 n += (now.tv_sec - f->sent.tv_sec) * USEC_PER_SEC; in tsince_hr()
524 n = ((u32) jiffies) - f->sent_jiffs; in tsince_hr()
572 reassign_frame(struct frame *f) in reassign_frame() argument
577 nf = newframe(f->t->d); in reassign_frame()
580 if (nf->t == f->t) { in reassign_frame()
586 nf->skb = f->skb; in reassign_frame()
587 nf->buf = f->buf; in reassign_frame()
588 nf->iter = f->iter; in reassign_frame()
590 nf->waited_total = f->waited_total; in reassign_frame()
591 nf->sent = f->sent; in reassign_frame()
592 nf->sent_jiffs = f->sent_jiffs; in reassign_frame()
593 f->skb = skb; in reassign_frame()
602 struct frame *f; in probe() local
609 f = newtframe(d, t); in probe()
610 if (!f) { in probe()
618 f->flags |= FFL_PROBE; in probe()
620 f->iter.bi_size = t->d->maxbcnt ? t->d->maxbcnt : DEFAULTBCNT; in probe()
621 ata_rw_frameinit(f); in probe()
622 skb = f->skb; in probe()
623 for (frag = 0, n = f->iter.bi_size; n > 0; ++frag, n -= m) { in probe()
630 skb->len += f->iter.bi_size; in probe()
631 skb->data_len = f->iter.bi_size; in probe()
632 skb->truesize += f->iter.bi_size; in probe()
634 skb = skb_clone(f->skb, GFP_ATOMIC); in probe()
636 do_gettimeofday(&f->sent); in probe()
637 f->sent_jiffs = (u32) jiffies; in probe()
661 struct frame *f; in rexmit_deferred() local
671 f = list_entry(pos, struct frame, head); in rexmit_deferred()
672 t = f->t; in rexmit_deferred()
674 if (!(f->flags & FFL_PROBE)) { in rexmit_deferred()
675 nf = reassign_frame(f); in rexmit_deferred()
682 list_replace(&f->head, &nf->head); in rexmit_deferred()
684 aoe_freetframe(f); in rexmit_deferred()
685 f = nf; in rexmit_deferred()
686 t = f->t; in rexmit_deferred()
691 } else if (tsince_hr(f) < t->taint * rto(d)) { in rexmit_deferred()
695 } else if (f->flags & FFL_PROBE) { in rexmit_deferred()
698 aoe_freetframe(f); in rexmit_deferred()
700 f->t->d->flags |= DEVFL_KICKME; in rexmit_deferred()
707 if (f->flags & FFL_PROBE) in rexmit_deferred()
709 since = tsince_hr(f); in rexmit_deferred()
710 f->waited += since; in rexmit_deferred()
711 f->waited_total += since; in rexmit_deferred()
712 resend(d, f); in rexmit_deferred()
752 struct frame *f; in rexmit_timer() local
779 f = list_entry(pos, struct frame, head); in rexmit_timer()
780 if (tsince_hr(f) < timeout) in rexmit_timer()
790 f = list_entry(pos, struct frame, head); in rexmit_timer()
791 since = tsince_hr(f); in rexmit_timer()
792 n = f->waited_total + since; in rexmit_timer()
796 && !(f->flags & FFL_PROBE)) { in rexmit_timer()
806 t = f->t; in rexmit_timer()
807 n = f->waited + since; in rexmit_timer()
818 if (f->flags & FFL_PROBE) { in rexmit_timer()
821 ifp = getif(t, f->skb->dev); in rexmit_timer()
1139 ktiocomplete(struct frame *f) in ktiocomplete() argument
1151 if (f == NULL) in ktiocomplete()
1154 t = f->t; in ktiocomplete()
1156 skb = f->r_skb; in ktiocomplete()
1157 buf = f->buf; in ktiocomplete()
1158 if (f->flags & FFL_PROBE) in ktiocomplete()
1163 hout = (struct aoe_hdr *) skb_mac_header(f->skb); in ktiocomplete()
1191 if (n > f->iter.bi_size) { in ktiocomplete()
1195 n, f->iter.bi_size); in ktiocomplete()
1199 bvcpy(skb, f->buf->bio, f->iter, n); in ktiocomplete()
1240 aoe_freetframe(f); in ktiocomplete()
1256 struct frame *f; in ktio() local
1268 f = list_entry(pos, struct frame, head); in ktio()
1270 ktiocomplete(f); in ktio()
1273 actual_id = f->t->d->aoeminor % ncpus; in ktio()
1340 ktcomplete(struct frame *f, struct sk_buff *skb) in ktcomplete() argument
1345 f->r_skb = skb; in ktcomplete()
1346 id = f->t->d->aoeminor % ncpus; in ktcomplete()
1357 list_add_tail(&f->head, &iocq[id].head); in ktcomplete()
1367 struct frame *f; in aoecmd_ata_rsp() local
1387 f = getframe(d, n); in aoecmd_ata_rsp()
1388 if (f) { in aoecmd_ata_rsp()
1389 calc_rttavg(d, f->t, tsince_hr(f)); in aoecmd_ata_rsp()
1390 f->t->nout--; in aoecmd_ata_rsp()
1391 if (f->flags & FFL_PROBE) in aoecmd_ata_rsp()
1392 f->t->nout_probes--; in aoecmd_ata_rsp()
1394 f = getframe_deferred(d, n); in aoecmd_ata_rsp()
1395 if (f) { in aoecmd_ata_rsp()
1396 calc_rttavg(d, NULL, tsince_hr(f)); in aoecmd_ata_rsp()
1418 ktcomplete(f, skb); in aoecmd_ata_rsp()
1442 struct frame *f; in aoecmd_ata_id() local
1446 f = newframe(d); in aoecmd_ata_id()
1447 if (f == NULL) in aoecmd_ata_id()
1453 skb = f->skb; in aoecmd_ata_id()
1458 f->tag = aoehdr_atainit(d, t, h); in aoecmd_ata_id()
1459 fhash(f); in aoecmd_ata_id()
1461 f->waited = 0; in aoecmd_ata_id()
1462 f->waited_total = 0; in aoecmd_ata_id()
1477 do_gettimeofday(&f->sent); in aoecmd_ata_id()
1478 f->sent_jiffs = (u32) jiffies; in aoecmd_ata_id()
1717 struct frame *f; in aoe_flush_iocq_by_index() local
1730 f = list_entry(pos, struct frame, head); in aoe_flush_iocq_by_index()
1731 d = f->t->d; in aoe_flush_iocq_by_index()
1732 skb = f->r_skb; in aoe_flush_iocq_by_index()
1734 if (f->buf) { in aoe_flush_iocq_by_index()
1735 f->buf->nframesout--; in aoe_flush_iocq_by_index()
1736 aoe_failbuf(d, f->buf); in aoe_flush_iocq_by_index()
1738 aoe_freetframe(f); in aoe_flush_iocq_by_index()