return NULL;
sai->sai_max = LL_STATAHEAD_MIN;
- init_waitqueue_head(&sai->sai_thread.t_ctl_waitq);
- INIT_LIST_HEAD(&sai->sai_entries);
+ cfs_waitq_init(&sai->sai_thread.t_ctl_waitq);
+ CFS_INIT_LIST_HEAD(&sai->sai_entries);
atomic_set(&sai->sai_refc, 1);
return sai;
}
sai = lli->lli_sai;
if (sai) {
lli->lli_sai->sai_replied++;
- ll_sai_entry_set(lli->lli_sai, (int)minfo->mi_cbdata,
+ ll_sai_entry_set(lli->lli_sai, minfo->mi_cbdata,
SA_ENTRY_STATED);
- wake_up(&lli->lli_sai->sai_thread.t_ctl_waitq);
+ cfs_waitq_signal(&lli->lli_sai->sai_thread.t_ctl_waitq);
}
spin_unlock(&lli->lli_lock);
ll_intent_release(it);
minfo->mi_it.it_op = IT_GETATTR;
minfo->mi_dentry = dentry;
minfo->mi_cb = ll_statahead_interpret;
- minfo->mi_cbdata = (void *)lli->lli_sai->sai_sent;
+ minfo->mi_cbdata = lli->lli_sai->sai_sent;
einfo->ei_type = LDLM_IBITS;
einfo->ei_mode = it_to_lock_mode(&minfo->mi_it);
if (rc == 1) {
ll_intent_release(&it);
lli->lli_sai->sai_cached++;
- wake_up(&lli->lli_sai->sai_thread.t_ctl_waitq);
+ cfs_waitq_signal(&lli->lli_sai->sai_thread.t_ctl_waitq);
RETURN(1);
}
CDEBUG(D_READA, "set sai entry %p index %d stat %d, rc %d\n",
se, se->se_index, se->se_stat, rc);
se->se_stat = rc;
- wake_up(&lli->lli_sai->sai_thread.t_ctl_waitq);
+ cfs_waitq_signal(&lli->lli_sai->sai_thread.t_ctl_waitq);
}
lli->lli_sai->sai_sent++;
return rc;
snprintf(name, 15, "ll_sa_%u", sta->sta_pid);
cfs_daemonize(name);
thread->t_flags = SVC_RUNNING;
- wake_up(&thread->t_ctl_waitq);
+ cfs_waitq_signal(&thread->t_ctl_waitq);
CDEBUG(D_READA, "start doing statahead for %s\n", parent->d_name.name);
if (sai->sai_ls_all)
EXIT;
out:
thread->t_flags = SVC_STOPPED;
- wake_up(&thread->t_ctl_waitq);
+ cfs_waitq_signal(&thread->t_ctl_waitq);
lli->lli_opendir_pid = 0; /* avoid statahead again */
ll_sai_put(sai);
dput(parent);
spin_lock(&lli->lli_lock);
if (lli->lli_sai) {
+ struct l_wait_info lwi = { 0 };
ll_sai_get(lli->lli_sai);
spin_unlock(&lli->lli_lock);
current->pid);
thread = &lli->lli_sai->sai_thread;
thread->t_flags = SVC_STOPPING;
- wake_up(&thread->t_ctl_waitq);
- wait_event(thread->t_ctl_waitq, thread->t_flags & SVC_STOPPED);
+ cfs_waitq_signal(&thread->t_ctl_waitq);
+ l_wait_event(thread->t_ctl_waitq, thread->t_flags & SVC_STOPPED,
+ &lwi);
ll_sai_put(lli->lli_sai);
return;
struct ll_inode_info *lli = ll_i2info(dir);
struct ll_statahead_info *sai;
struct ll_sa_thread_args sta;
+ struct l_wait_info lwi = { 0 };
int rc;
ENTRY;
RETURN(rc);
}
- wait_event(sai->sai_thread.t_ctl_waitq,
- sai->sai_thread.t_flags & (SVC_RUNNING | SVC_STOPPED));
+ l_wait_event(sai->sai_thread.t_ctl_waitq,
+ sai->sai_thread.t_flags & (SVC_RUNNING | SVC_STOPPED),
+ &lwi);
ll_sai_put(sai);
/* we don't stat-ahead for the first dirent since we are already in
sai->sai_hit, sai->sai_miss);
ll_sai_entry_put(sai);
}
- wake_up(&sai->sai_thread.t_ctl_waitq);
+ cfs_waitq_signal(&sai->sai_thread.t_ctl_waitq);
}
spin_unlock(&lli->lli_lock);
}