const struct attribute **obd_attrs;
struct lprocfs_vars *obd_vars;
struct ldebugfs_vars *obd_debugfs_vars;
- atomic_t obd_evict_inprogress;
- wait_queue_head_t obd_evict_inprogress_waitq;
struct list_head obd_evict_list; /* protected with pet_lock */
atomic_t obd_eviction_count;
ENTRY;
- /* If there is eviction in progress, wait for it to finish. */
- wait_event_idle(
- exp->exp_obd->obd_evict_inprogress_waitq,
- !atomic_read(&exp->exp_obd->obd_evict_inprogress));
-
/* Check if client was evicted or reconnected already. */
if (exp->exp_failed ||
exp->exp_conn_cnt > lustre_msg_get_conn_cnt(req->rq_reqmsg)) {
/* recovery data */
spin_lock_init(&newdev->obd_recovery_task_lock);
init_waitqueue_head(&newdev->obd_next_transno_waitq);
- init_waitqueue_head(&newdev->obd_evict_inprogress_waitq);
INIT_LIST_HEAD(&newdev->obd_req_replay_queue);
INIT_LIST_HEAD(&newdev->obd_lock_replay_queue);
INIT_LIST_HEAD(&newdev->obd_final_req_queue);
CFS_FAIL_TIMEOUT(OBD_FAIL_OST_BRW_PAUSE_BULK, cfs_fail_val > 0 ?
cfs_fail_val : (obd_timeout + 1) / 4);
- /* Check if there is eviction in progress, and if so, wait for it to
- * finish */
- if (unlikely(atomic_read(&exp->exp_obd->obd_evict_inprogress))) {
- /* We do not care how long it takes */
- wait_event_idle(
- exp->exp_obd->obd_evict_inprogress_waitq,
- !atomic_read(&exp->exp_obd->obd_evict_inprogress));
- }
-
/* There must be big cache in current thread to process this request
* if it is NULL then something went wrong and it wasn't allocated,
* report -ENOMEM in that case */