• Home
  • Raw
  • Download

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 f->sent = ktime_get(); in aoecmd_ata_rw()
452 resend(struct aoedev *d, struct frame *f) in resend() argument
461 t = f->t; in resend()
463 skb = f->skb; in resend()
467 ktcomplete(f, NULL); in resend()
472 if (!(f->flags & FFL_PROBE)) { in resend()
476 f->tag, jiffies, n, in resend()
481 f->tag = n; in resend()
482 fhash(f); in resend()
491 f->sent = ktime_get(); in resend()
498 tsince_hr(struct frame *f) in tsince_hr() argument
500 u64 delta = ktime_to_ns(ktime_sub(ktime_get(), f->sent)); in tsince_hr()
554 reassign_frame(struct frame *f) in reassign_frame() argument
559 nf = newframe(f->t->d); in reassign_frame()
562 if (nf->t == f->t) { in reassign_frame()
568 nf->skb = f->skb; in reassign_frame()
569 nf->buf = f->buf; in reassign_frame()
570 nf->iter = f->iter; in reassign_frame()
572 nf->waited_total = f->waited_total; in reassign_frame()
573 nf->sent = f->sent; in reassign_frame()
574 f->skb = skb; in reassign_frame()
583 struct frame *f; in probe() local
590 f = newtframe(d, t); in probe()
591 if (!f) { in probe()
599 f->flags |= FFL_PROBE; in probe()
601 f->iter.bi_size = t->d->maxbcnt ? t->d->maxbcnt : DEFAULTBCNT; in probe()
602 ata_rw_frameinit(f); in probe()
603 skb = f->skb; in probe()
604 for (frag = 0, n = f->iter.bi_size; n > 0; ++frag, n -= m) { in probe()
611 skb->len += f->iter.bi_size; in probe()
612 skb->data_len = f->iter.bi_size; in probe()
613 skb->truesize += f->iter.bi_size; in probe()
615 skb = skb_clone(f->skb, GFP_ATOMIC); in probe()
617 f->sent = ktime_get(); in probe()
641 struct frame *f; in rexmit_deferred() local
651 f = list_entry(pos, struct frame, head); in rexmit_deferred()
652 t = f->t; in rexmit_deferred()
654 if (!(f->flags & FFL_PROBE)) { in rexmit_deferred()
655 nf = reassign_frame(f); in rexmit_deferred()
662 list_replace(&f->head, &nf->head); in rexmit_deferred()
664 aoe_freetframe(f); in rexmit_deferred()
665 f = nf; in rexmit_deferred()
666 t = f->t; in rexmit_deferred()
671 } else if (tsince_hr(f) < t->taint * rto(d)) { in rexmit_deferred()
675 } else if (f->flags & FFL_PROBE) { in rexmit_deferred()
678 aoe_freetframe(f); in rexmit_deferred()
680 f->t->d->flags |= DEVFL_KICKME; in rexmit_deferred()
687 if (f->flags & FFL_PROBE) in rexmit_deferred()
689 since = tsince_hr(f); in rexmit_deferred()
690 f->waited += since; in rexmit_deferred()
691 f->waited_total += since; in rexmit_deferred()
692 resend(d, f); in rexmit_deferred()
732 struct frame *f; in rexmit_timer() local
759 f = list_entry(pos, struct frame, head); in rexmit_timer()
760 if (tsince_hr(f) < timeout) in rexmit_timer()
770 f = list_entry(pos, struct frame, head); in rexmit_timer()
771 since = tsince_hr(f); in rexmit_timer()
772 n = f->waited_total + since; in rexmit_timer()
776 && !(f->flags & FFL_PROBE)) { in rexmit_timer()
786 t = f->t; in rexmit_timer()
787 n = f->waited + since; in rexmit_timer()
798 if (f->flags & FFL_PROBE) { in rexmit_timer()
801 ifp = getif(t, f->skb->dev); in rexmit_timer()
1068 ktiocomplete(struct frame *f) in ktiocomplete() argument
1080 if (f == NULL) in ktiocomplete()
1083 t = f->t; in ktiocomplete()
1085 skb = f->r_skb; in ktiocomplete()
1086 buf = f->buf; in ktiocomplete()
1087 if (f->flags & FFL_PROBE) in ktiocomplete()
1092 hout = (struct aoe_hdr *) skb_mac_header(f->skb); in ktiocomplete()
1120 if (n > f->iter.bi_size) { in ktiocomplete()
1124 n, f->iter.bi_size); in ktiocomplete()
1128 bvcpy(skb, f->buf->bio, f->iter, n); in ktiocomplete()
1170 aoe_freetframe(f); in ktiocomplete()
1186 struct frame *f; in ktio() local
1198 f = list_entry(pos, struct frame, head); in ktio()
1200 ktiocomplete(f); in ktio()
1203 actual_id = f->t->d->aoeminor % ncpus; in ktio()
1270 ktcomplete(struct frame *f, struct sk_buff *skb) in ktcomplete() argument
1275 f->r_skb = skb; in ktcomplete()
1276 id = f->t->d->aoeminor % ncpus; in ktcomplete()
1287 list_add_tail(&f->head, &iocq[id].head); in ktcomplete()
1297 struct frame *f; in aoecmd_ata_rsp() local
1317 f = getframe(d, n); in aoecmd_ata_rsp()
1318 if (f) { in aoecmd_ata_rsp()
1319 calc_rttavg(d, f->t, tsince_hr(f)); in aoecmd_ata_rsp()
1320 f->t->nout--; in aoecmd_ata_rsp()
1321 if (f->flags & FFL_PROBE) in aoecmd_ata_rsp()
1322 f->t->nout_probes--; in aoecmd_ata_rsp()
1324 f = getframe_deferred(d, n); in aoecmd_ata_rsp()
1325 if (f) { in aoecmd_ata_rsp()
1326 calc_rttavg(d, NULL, tsince_hr(f)); in aoecmd_ata_rsp()
1348 ktcomplete(f, skb); in aoecmd_ata_rsp()
1372 struct frame *f; in aoecmd_ata_id() local
1376 f = newframe(d); in aoecmd_ata_id()
1377 if (f == NULL) in aoecmd_ata_id()
1383 skb = f->skb; in aoecmd_ata_id()
1388 f->tag = aoehdr_atainit(d, t, h); in aoecmd_ata_id()
1389 fhash(f); in aoecmd_ata_id()
1391 f->waited = 0; in aoecmd_ata_id()
1392 f->waited_total = 0; in aoecmd_ata_id()
1407 f->sent = ktime_get(); in aoecmd_ata_id()
1645 struct frame *f; in aoe_flush_iocq_by_index() local
1658 f = list_entry(pos, struct frame, head); in aoe_flush_iocq_by_index()
1659 d = f->t->d; in aoe_flush_iocq_by_index()
1660 skb = f->r_skb; in aoe_flush_iocq_by_index()
1662 if (f->buf) { in aoe_flush_iocq_by_index()
1663 f->buf->nframesout--; in aoe_flush_iocq_by_index()
1664 aoe_failbuf(d, f->buf); in aoe_flush_iocq_by_index()
1666 aoe_freetframe(f); in aoe_flush_iocq_by_index()