static struct ip6_flowlabel *ip6fl_get_next(struct seq_file *seq, struct ip6_flowlabel *fl) { struct ip6fl_iter_state *state = ip6fl_seq_private(seq); fl = fl->next; while (!fl) { if (++state->bucket <= FL_HASH_MASK) fl = fl_ht[state->bucket]; else break; } return fl; }
static struct ip6_flowlabel *ip6fl_get_first(struct seq_file *seq) { struct ip6_flowlabel *fl = NULL; struct ip6fl_iter_state *state = ip6fl_seq_private(seq); for (state->bucket = 0; state->bucket <= FL_HASH_MASK; ++state->bucket) { if (fl_ht[state->bucket]) { fl = fl_ht[state->bucket]; break; } } return fl; }
static struct ip6_flowlabel *ip6fl_get_first(struct seq_file *seq) { struct ip6_flowlabel *fl = NULL; struct ip6fl_iter_state *state = ip6fl_seq_private(seq); struct net *net = seq_file_net(seq); for (state->bucket = 0; state->bucket <= FL_HASH_MASK; ++state->bucket) { fl = fl_ht[state->bucket]; while (fl && !net_eq(fl->fl_net, net)) fl = fl->next; if (fl) break; } return fl; }
static struct ip6_flowlabel *ip6fl_get_next(struct seq_file *seq, struct ip6_flowlabel *fl) { struct ip6fl_iter_state *state = ip6fl_seq_private(seq); struct net *net = seq_file_net(seq); fl = fl->next; try_again: while (fl && !net_eq(fl->fl_net, net)) fl = fl->next; while (!fl) { if (++state->bucket <= FL_HASH_MASK) { fl = fl_ht[state->bucket]; goto try_again; } else break; } return fl; }