Lines Matching defs:fqdir

150 	struct fqdir *fqdir = container_of(work, struct fqdir, destroy_work);
151 struct inet_frags *f = fqdir->f;
153 rhashtable_free_and_destroy(&fqdir->rhashtable, inet_frags_free_cb, NULL);
156 * have completed, since they need to dereference fqdir.
164 kfree(fqdir);
167 int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net)
169 struct fqdir *fqdir = kzalloc(sizeof(*fqdir), GFP_KERNEL);
172 if (!fqdir)
174 fqdir->f = f;
175 fqdir->net = net;
176 res = rhashtable_init(&fqdir->rhashtable, &fqdir->f->rhash_params);
178 kfree(fqdir);
182 *fqdirp = fqdir;
187 void fqdir_exit(struct fqdir *fqdir)
189 INIT_WORK(&fqdir->destroy_work, fqdir_work_fn);
190 queue_work(system_wq, &fqdir->destroy_work);
200 struct fqdir *fqdir = fq->fqdir;
205 * guaranteeing that if fqdir->dead is false then
209 if (!READ_ONCE(fqdir->dead)) {
210 rhashtable_remove_fast(&fqdir->rhashtable, &fq->node,
211 fqdir->f->rhash_params);
225 struct inet_frags *f = q->fqdir->f;
256 struct fqdir *fqdir;
264 fqdir = q->fqdir;
265 f = fqdir->f;
271 sub_frag_mem_limit(fqdir, sum);
275 static struct inet_frag_queue *inet_frag_alloc(struct fqdir *fqdir,
285 q->fqdir = fqdir;
287 add_frag_mem_limit(fqdir, f->qsize);
296 static struct inet_frag_queue *inet_frag_create(struct fqdir *fqdir,
300 struct inet_frags *f = fqdir->f;
303 q = inet_frag_alloc(fqdir, f, arg);
308 mod_timer(&q->timer, jiffies + fqdir->timeout);
310 *prev = rhashtable_lookup_get_insert_key(&fqdir->rhashtable, &q->key,
322 struct inet_frag_queue *inet_frag_find(struct fqdir *fqdir, void *key)
325 long high_thresh = READ_ONCE(fqdir->high_thresh);
328 if (!high_thresh || frag_mem_limit(fqdir) > high_thresh)
333 prev = rhashtable_lookup(&fqdir->rhashtable, key, fqdir->f->rhash_params);
335 fq = inet_frag_create(fqdir, key, &prev);
446 add_frag_mem_limit(q->fqdir, delta);
468 add_frag_mem_limit(q->fqdir, clone->truesize);
538 sub_frag_mem_limit(q->fqdir, sum_truesize);
566 sub_frag_mem_limit(q->fqdir, head->truesize);