LASSERTF(ltds->ltd_tgtnr == 0, "tgt count unmatched: %d\n",
ltds->ltd_tgtnr);
- for (idx = 0; idx < TGT_PTRS; idx++) {
+ for (idx = 0; idx < ARRAY_SIZE(ltds->ltd_tgts_idx); idx++) {
if (ltds->ltd_tgts_idx[idx] != NULL) {
OBD_FREE_PTR(ltds->ltd_tgts_idx[idx]);
ltds->ltd_tgts_idx[idx] = NULL;
if (rc != 0)
RETURN(rc);
- th = dt_trans_create(env, dev);
+ th = lfsck_trans_create(env, dev, lfsck);
if (IS_ERR(th))
GOTO(unlock, rc = PTR_ERR(th));
if (rc != 0)
RETURN(rc);
- th = dt_trans_create(env, dev);
+ th = lfsck_trans_create(env, dev, lfsck);
if (IS_ERR(th))
RETURN(PTR_ERR(th));
/* Transaction I: locally */
dev = lfsck_obj2dev(child);
- th = dt_trans_create(env, dev);
+ th = lfsck_trans_create(env, dev, lfsck);
if (IS_ERR(th))
RETURN(PTR_ERR(th));
/* Transaction II: remotely */
dev = lfsck_obj2dev(parent);
- th = dt_trans_create(env, dev);
+ th = lfsck_trans_create(env, dev, lfsck);
if (IS_ERR(th))
RETURN(PTR_ERR(th));
* created the .lustre/lost+found/MDTxxxx but failed to update
* the lfsck_bookmark::lb_lpf_fid successfully. So need lookup
* it from MDT0 firstly. */
- rc = dt_lookup(env, parent, (struct dt_rec *)cfid,
- (const struct dt_key *)name);
+ rc = dt_lookup_dir(env, parent, name, cfid);
if (rc != 0 && rc != -ENOENT)
GOTO(unlock, rc);
ENTRY;
fid_zero(fid);
- rc = dt_lookup(env, child, (struct dt_rec *)fid,
- (const struct dt_key *)dotdot);
+ rc = dt_lookup_dir(env, child, dotdot, fid);
if (rc != 0)
GOTO(linkea, rc);
}
cname = lfsck_name_get_const(env, name, strlen(name));
- rc = lfsck_verify_linkea(env, child, cname, &LU_LPF_FID);
+ rc = lfsck_verify_linkea(env, lfsck, child, cname, &LU_LPF_FID);
if (rc == 0)
rc = lfsck_update_lpf_entry(env, lfsck, parent, child,
name, type);
GOTO(out_done, rc = 1);
}
- rc = dt_lookup(env, parent2, (struct dt_rec *)fid,
- (const struct dt_key *)name2);
+ rc = dt_lookup_dir(env, parent2, name2, fid);
dt_read_unlock(env, child);
lfsck_ibits_unlock(&lh, LCK_PR);
if (rc != 0 && rc != -ENOENT)
/* child2 */
snprintf(name, 8, "MDT%04x", node);
- rc = dt_lookup(env, parent, (struct dt_rec *)cfid,
- (const struct dt_key *)name);
+ rc = dt_lookup_dir(env, parent, name, cfid);
if (rc == -ENOENT) {
rc = 0;
goto find_child1;
}
cname = lfsck_name_get_const(env, name, strlen(name));
- rc = lfsck_verify_linkea(env, child2, cname, &LU_LPF_FID);
+ rc = lfsck_verify_linkea(env, lfsck, child2, cname,
+ &LU_LPF_FID);
GOTO(put, rc);
}
CDEBUG(D_LFSCK, "%s: waiting for assistant to do %s post, rc = %d\n",
lfsck_lfsck2name(com->lc_lfsck), lad->lad_name, *result);
- wake_up_all(&athread->t_ctl_waitq);
+ wake_up(&athread->t_ctl_waitq);
wait_event_idle(mthread->t_ctl_waitq,
(*result > 0 && list_empty(&lad->lad_req_list)) ||
thread_is_stopped(athread));
"status %d\n",
lfsck_lfsck2name(com->lc_lfsck), lad->lad_name, status);
- wake_up_all(&athread->t_ctl_waitq);
+ wake_up(&athread->t_ctl_waitq);
wait_event_idle(mthread->t_ctl_waitq,
test_bit(LAD_IN_DOUBLE_SCAN, &lad->lad_flags) ||
thread_is_stopped(athread));
struct ptlrpc_thread *athread = &lad->lad_thread;
set_bit(LAD_EXIT, &lad->lad_flags);
- wake_up_all(&athread->t_ctl_waitq);
+ wake_up(&athread->t_ctl_waitq);
wait_event_idle(mthread->t_ctl_waitq,
thread_is_init(athread) ||
thread_is_stopped(athread));
thread_is_stopped(thread));
if (start == NULL || !(start->ls_flags & LPF_BROADCAST)) {
lfsck->li_start_unplug = 1;
- wake_up_all(&thread->t_ctl_waitq);
+ wake_up(&thread->t_ctl_waitq);
GOTO(out, rc = 0);
}
spin_unlock(&lfsck->li_lock);
lfsck->li_start_unplug = 1;
- wake_up_all(&thread->t_ctl_waitq);
+ wake_up(&thread->t_ctl_waitq);
wait_event_idle(thread->t_ctl_waitq,
thread_is_stopped(thread));
}
} else {
lfsck->li_start_unplug = 1;
- wake_up_all(&thread->t_ctl_waitq);
+ wake_up(&thread->t_ctl_waitq);
}
GOTO(put, rc);
}
}
- wake_up_all(&thread->t_ctl_waitq);
+ wake_up(&thread->t_ctl_waitq);
spin_unlock(&lfsck->li_lock);
if (stop && stop->ls_flags & LPF_BROADCAST)
rc1 = lfsck_stop_all(env, lfsck, stop);
if (IS_ERR(root))
GOTO(out, rc = PTR_ERR(root));
- if (unlikely(!dt_try_as_dir(env, root)))
- GOTO(out, rc = -ENOTDIR);
-
lfsck->li_local_root_fid = *fid;
if (master) {
lfsck->li_master = 1;
struct lu_fid *pfid = &lfsck_env_info(env)->lti_fid2;
const struct lu_name *cname;
- rc = dt_lookup(env, root,
- (struct dt_rec *)(&lfsck->li_global_root_fid),
- (const struct dt_key *)"ROOT");
+ rc = dt_lookup_dir(env, root, "ROOT",
+ &lfsck->li_global_root_fid);
if (rc != 0)
GOTO(out, rc);
if (IS_ERR(obj))
GOTO(out, rc = PTR_ERR(obj));
- if (unlikely(!dt_try_as_dir(env, obj)))
- GOTO(out, rc = -ENOTDIR);
-
- rc = dt_lookup(env, obj, (struct dt_rec *)fid,
- (const struct dt_key *)dotlustre);
+ rc = dt_lookup_dir(env, obj, dotlustre, fid);
if (rc != 0)
GOTO(out, rc);
cname = lfsck_name_get_const(env, dotlustre,
strlen(dotlustre));
- rc = lfsck_verify_linkea(env, obj, cname,
+ rc = lfsck_verify_linkea(env, lfsck, obj, cname,
&lfsck->li_global_root_fid);
if (rc != 0)
GOTO(out, rc);
GOTO(out, rc = -ENOTDIR);
*pfid = *fid;
- rc = dt_lookup(env, obj, (struct dt_rec *)fid,
- (const struct dt_key *)lostfound);
+ rc = dt_lookup_dir(env, obj, lostfound, fid);
if (rc != 0)
GOTO(out, rc);
cname = lfsck_name_get_const(env, lostfound,
strlen(lostfound));
- rc = lfsck_verify_linkea(env, obj, cname, pfid);
+ rc = lfsck_verify_linkea(env, lfsck, obj, cname, pfid);
if (rc != 0)
GOTO(out, rc);