Skip to content

Commit

Permalink
Rename EMPTY_TASKQ into taskq_empty
Browse files Browse the repository at this point in the history
To follow a change in illumos taskq

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Nguyen <[email protected]>
Signed-off-by: Jorgen Lundman <[email protected]>
Closes openzfs#12802
  • Loading branch information
lundman authored and nicman23 committed Aug 22, 2022
1 parent 3ef0097 commit 229804f
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 11 deletions.
2 changes: 2 additions & 0 deletions include/os/linux/spl/sys/taskq.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,8 @@ extern taskq_t *taskq_of_curthread(void);
((void) sizeof (dc), \
taskq_create(name, nthreads, maxclsyspri, min, max, flags))

extern boolean_t taskq_empty(taskq_t *);

int spl_taskq_init(void);
void spl_taskq_fini(void);

Expand Down
1 change: 1 addition & 0 deletions include/sys/zfs_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,7 @@ extern taskq_t *taskq_of_curthread(void);
extern int taskq_cancel_id(taskq_t *, taskqid_t);
extern void system_taskq_init(void);
extern void system_taskq_fini(void);
extern boolean_t taskq_empty(taskq_t *);

#define XVA_MAPSIZE 3
#define XVA_MAGIC 0x78766174
Expand Down
6 changes: 6 additions & 0 deletions lib/libzpool/taskq.c
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,12 @@ taskq_cancel_id(taskq_t *tq, taskqid_t id)
return (ENOENT);
}

boolean_t
taskq_empty(taskq_t *tq)
{
return (tq->tq_task.tqent_next == &tq->tq_task || tq->tq_active == 0);
}

void
system_taskq_init(void)
{
Expand Down
13 changes: 2 additions & 11 deletions module/icp/core/kcf_sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,15 +573,6 @@ kcf_resubmit_request(kcf_areq_node_t *areq)
return (error);
}

static inline int EMPTY_TASKQ(taskq_t *tq)
{
#ifdef _KERNEL
return (tq->tq_lowest_id == tq->tq_next_id);
#else
return (tq->tq_task.tqent_next == &tq->tq_task || tq->tq_active == 0);
#endif
}

/*
* Routine called by both ioctl and k-api. The consumer should
* bundle the parameters into a kcf_req_params_t structure. A bunch
Expand Down Expand Up @@ -622,7 +613,7 @@ kcf_submit_request(kcf_provider_desc_t *pd, crypto_ctx_t *ctx,
* request allocation and call the SPI directly.
*/
if ((pd->pd_flags & CRYPTO_SYNCHRONOUS) &&
EMPTY_TASKQ(taskq)) {
taskq_empty(taskq)) {
KCF_PROV_IREFHOLD(pd);
if (pd->pd_state == KCF_PROV_READY) {
error = common_submit_request(pd, ctx,
Expand Down Expand Up @@ -657,7 +648,7 @@ kcf_submit_request(kcf_provider_desc_t *pd, crypto_ctx_t *ctx,
* case. This is unlike the asynchronous case where we
* must always dispatch to the taskq.
*/
if (EMPTY_TASKQ(taskq) &&
if (taskq_empty(taskq) &&
pd->pd_state == KCF_PROV_READY) {
process_req_hwp(sreq);
} else {
Expand Down
7 changes: 7 additions & 0 deletions module/os/linux/spl/spl-taskq.c
Original file line number Diff line number Diff line change
Expand Up @@ -1229,6 +1229,13 @@ taskq_destroy(taskq_t *tq)
}
EXPORT_SYMBOL(taskq_destroy);

boolean_t
taskq_empty(taskq_t *tq)
{
return (tq->tq_lowest_id == tq->tq_next_id);
}
EXPORT_SYMBOL(taskq_empty);

static unsigned int spl_taskq_kick = 0;

/*
Expand Down

0 comments on commit 229804f

Please sign in to comment.