xfs: poll waiting for quotacheck
Create a pwork destroy function that uses polling instead of uninterruptible sleep to wait for work items to finish so that we can touch the softlockup watchdog. IOWs, gross hack. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Brian Foster <bfoster@redhat.com>
This commit is contained in:
@@ -18,6 +18,8 @@ struct xfs_pwork_ctl {
|
||||
struct workqueue_struct *wq;
|
||||
struct xfs_mount *mp;
|
||||
xfs_pwork_work_fn work_fn;
|
||||
struct wait_queue_head poll_wait;
|
||||
atomic_t nr_work;
|
||||
int error;
|
||||
};
|
||||
|
||||
@@ -53,6 +55,7 @@ int xfs_pwork_init(struct xfs_mount *mp, struct xfs_pwork_ctl *pctl,
|
||||
unsigned int nr_threads);
|
||||
void xfs_pwork_queue(struct xfs_pwork_ctl *pctl, struct xfs_pwork *pwork);
|
||||
int xfs_pwork_destroy(struct xfs_pwork_ctl *pctl);
|
||||
void xfs_pwork_poll(struct xfs_pwork_ctl *pctl);
|
||||
unsigned int xfs_pwork_guess_datadev_parallelism(struct xfs_mount *mp);
|
||||
|
||||
#endif /* __XFS_PWORK_H__ */
|
||||
|
Reference in New Issue
Block a user