}
if (list_empty(&lqe->lqe_link)) {
- if (cancel)
+ if (!cancel) {
+ lqe->lqe_adjust_time = ktime_get_seconds();
+ if (defer)
+ lqe->lqe_adjust_time += QSD_WB_INTERVAL;
+ } else {
lqe->lqe_adjust_time = 0;
- else
- lqe->lqe_adjust_time = defer ?
- cfs_time_shift_64(QSD_WB_INTERVAL) :
- cfs_time_current_64();
+ }
+
/* lqe reference transferred to list */
if (defer)
list_add_tail(&lqe->lqe_link,
struct lquota_entry *lqe;
lqe = list_entry(qsd->qsd_adjust_list.next,
struct lquota_entry, lqe_link);
- if (cfs_time_beforeq_64(lqe->lqe_adjust_time,
- cfs_time_current_64()))
+ if (ktime_get_seconds() > lqe->lqe_adjust_time)
job_pending = true;
}
spin_unlock(&qsd->qsd_adjust_lock);
int qtype, rc = 0;
bool uptodate;
struct lquota_entry *lqe;
- __u64 cur_time;
+ time64_t cur_time;
ENTRY;
OBD_ALLOC_PTR(env);
}
spin_lock(&qsd->qsd_adjust_lock);
- cur_time = cfs_time_current_64();
+ cur_time = ktime_get_seconds();
while (!list_empty(&qsd->qsd_adjust_list)) {
lqe = list_entry(qsd->qsd_adjust_list.next,
struct lquota_entry, lqe_link);
/* deferred items are sorted by time */
- if (!cfs_time_beforeq_64(lqe->lqe_adjust_time,
- cur_time))
+ if (lqe->lqe_adjust_time > cur_time)
break;
list_del_init(&lqe->lqe_link);