CID 150924: Unchecked return value (CHECKED_RETURN)
- On taskq_dispatch failure the reference must be dropped and
this entry can be safely skipped. This case should be impossible
in the existing implementation but should be handled regardless.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: luozhengzheng <luo.zhengzheng@zte.com.cn>
Closes #5278
refcount_add(&ap->p_refcnt, ap->p_pfunc);
ap->p_adjust = adjust;
- taskq_dispatch(arc_prune_taskq, arc_prune_task, ap, TQ_SLEEP);
+ if (taskq_dispatch(arc_prune_taskq, arc_prune_task,
+ ap, TQ_SLEEP) == 0) {
+ refcount_remove(&ap->p_refcnt, ap->p_pfunc);
+ continue;
+ }
ARCSTAT_BUMP(arcstat_prune);
}
mutex_exit(&arc_prune_mtx);