Lines Matching refs:iter
3342 struct bpf_unix_iter_state *iter = seq->private;
3347 iter->batch[iter->end_sk++] = start_sk;
3350 if (iter->end_sk < iter->max_sk) {
3352 iter->batch[iter->end_sk++] = sk;
3363 static void bpf_iter_unix_put_batch(struct bpf_unix_iter_state *iter)
3365 while (iter->cur_sk < iter->end_sk)
3366 sock_put(iter->batch[iter->cur_sk++]);
3369 static int bpf_iter_unix_realloc_batch(struct bpf_unix_iter_state *iter,
3379 bpf_iter_unix_put_batch(iter);
3380 kvfree(iter->batch);
3381 iter->batch = new_batch;
3382 iter->max_sk = new_batch_sz;
3390 struct bpf_unix_iter_state *iter = seq->private;
3395 if (iter->st_bucket_done)
3400 iter->cur_sk = 0;
3401 iter->end_sk = 0;
3409 if (iter->end_sk == expected) {
3410 iter->st_bucket_done = true;
3414 if (!resized && !bpf_iter_unix_realloc_batch(iter, expected * 3 / 2)) {
3427 /* bpf iter does not support lseek, so it always
3435 struct bpf_unix_iter_state *iter = seq->private;
3438 /* Whenever seq_next() is called, the iter->cur_sk is
3442 if (iter->cur_sk < iter->end_sk)
3443 sock_put(iter->batch[iter->cur_sk++]);
3447 if (iter->cur_sk < iter->end_sk)
3448 sk = iter->batch[iter->cur_sk];
3485 struct bpf_unix_iter_state *iter = seq->private;
3496 if (iter->cur_sk < iter->end_sk)
3497 bpf_iter_unix_put_batch(iter);
3581 struct bpf_unix_iter_state *iter = priv_data;
3588 err = bpf_iter_unix_realloc_batch(iter, INIT_BATCH_SZ);
3599 struct bpf_unix_iter_state *iter = priv_data;
3602 kvfree(iter->batch);