Lines Matching defs:fi
306 struct fwnet_fragment_info *fi;
309 list_for_each_entry(fi, &pd->fi_list, fi_link)
310 if (offset < fi->offset + fi->len && end > fi->offset)
320 struct fwnet_fragment_info *fi, *fi2, *new;
324 list_for_each_entry(fi, &pd->fi_list, fi_link) {
325 if (fi->offset + fi->len == offset) {
328 fi2 = list_entry(fi->fi_link.next,
330 if (fi->offset + fi->len == fi2->offset) {
332 fi->len += len + fi2->len;
336 fi->len += len;
339 return fi;
341 if (offset + len == fi->offset) {
344 fi2 = list_entry(fi->fi_link.prev,
346 if (fi2->offset + fi2->len == fi->offset) {
348 fi2->len += fi->len + len;
349 list_del(&fi->fi_link);
350 kfree(fi);
354 fi->offset = offset;
355 fi->len += len;
357 return fi;
359 if (offset > fi->offset + fi->len) {
360 list = &fi->fi_link;
363 if (offset + len < fi->offset) {
364 list = fi->fi_link.prev;
387 struct fwnet_fragment_info *fi;
394 fi = fwnet_frag_new(new, frag_off, frag_len);
395 if (fi == NULL)
412 kfree(fi);
436 struct fwnet_fragment_info *fi, *n;
438 list_for_each_entry_safe(fi, n, &old->fi_list, fi_link)
439 kfree(fi);
466 struct fwnet_fragment_info *fi;
468 fi = list_entry(pd->fi_list.next, struct fwnet_fragment_info, fi_link);
470 return fi->len == pd->datagram_size;