Lines Matching refs:block_cb
174 struct flow_block_cb *block_cb; in flow_block_cb_alloc() local
176 block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL); in flow_block_cb_alloc()
177 if (!block_cb) in flow_block_cb_alloc()
180 block_cb->cb = cb; in flow_block_cb_alloc()
181 block_cb->cb_ident = cb_ident; in flow_block_cb_alloc()
182 block_cb->cb_priv = cb_priv; in flow_block_cb_alloc()
183 block_cb->release = release; in flow_block_cb_alloc()
185 return block_cb; in flow_block_cb_alloc()
189 void flow_block_cb_free(struct flow_block_cb *block_cb) in flow_block_cb_free() argument
191 if (block_cb->release) in flow_block_cb_free()
192 block_cb->release(block_cb->cb_priv); in flow_block_cb_free()
194 kfree(block_cb); in flow_block_cb_free()
201 struct flow_block_cb *block_cb; in flow_block_cb_lookup() local
203 list_for_each_entry(block_cb, &block->cb_list, list) { in flow_block_cb_lookup()
204 if (block_cb->cb == cb && in flow_block_cb_lookup()
205 block_cb->cb_ident == cb_ident) in flow_block_cb_lookup()
206 return block_cb; in flow_block_cb_lookup()
213 void *flow_block_cb_priv(struct flow_block_cb *block_cb) in flow_block_cb_priv() argument
215 return block_cb->cb_priv; in flow_block_cb_priv()
219 void flow_block_cb_incref(struct flow_block_cb *block_cb) in flow_block_cb_incref() argument
221 block_cb->refcnt++; in flow_block_cb_incref()
225 unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb) in flow_block_cb_decref() argument
227 return --block_cb->refcnt; in flow_block_cb_decref()
234 struct flow_block_cb *block_cb; in flow_block_cb_is_busy() local
236 list_for_each_entry(block_cb, driver_block_list, driver_list) { in flow_block_cb_is_busy()
237 if (block_cb->cb == cb && in flow_block_cb_is_busy()
238 block_cb->cb_ident == cb_ident) in flow_block_cb_is_busy()
252 struct flow_block_cb *block_cb; in flow_block_cb_setup_simple() local
265 block_cb = flow_block_cb_alloc(cb, cb_ident, cb_priv, NULL); in flow_block_cb_setup_simple()
266 if (IS_ERR(block_cb)) in flow_block_cb_setup_simple()
267 return PTR_ERR(block_cb); in flow_block_cb_setup_simple()
269 flow_block_cb_add(block_cb, f); in flow_block_cb_setup_simple()
270 list_add_tail(&block_cb->driver_list, driver_block_list); in flow_block_cb_setup_simple()
273 block_cb = flow_block_cb_lookup(f->block, cb, cb_ident); in flow_block_cb_setup_simple()
274 if (!block_cb) in flow_block_cb_setup_simple()
277 flow_block_cb_remove(block_cb, f); in flow_block_cb_setup_simple()
278 list_del(&block_cb->driver_list); in flow_block_cb_setup_simple()