dirty = true;
}
+ if ((bk->lb_param & LPF_OST_ORPHAN) &&
+ !(start->ls_flags & LPF_OST_ORPHAN)) {
+ bk->lb_param &= ~LPF_OST_ORPHAN;
+ dirty = true;
+ } else if (!(bk->lb_param & LPF_OST_ORPHAN) &&
+ (start->ls_flags & LPF_OST_ORPHAN)) {
+ bk->lb_param |= LPF_OST_ORPHAN;
+ dirty = true;
+ }
+
if ((start->ls_valid & LSV_CREATE_OSTOBJ) || reset) {
if ((bk->lb_param & LPF_CREATE_OSTOBJ) &&
- !(start->ls_valid & LSV_CREATE_OSTOBJ)) {
+ !(start->ls_flags & LPF_CREATE_OSTOBJ)) {
bk->lb_param &= ~LPF_CREATE_OSTOBJ;
dirty = true;
} else if (!(bk->lb_param & LPF_CREATE_OSTOBJ) &&
if ((start->ls_valid & LSV_CREATE_MDTOBJ) || reset) {
if ((bk->lb_param & LPF_CREATE_MDTOBJ) &&
- !(start->ls_valid & LSV_CREATE_MDTOBJ)) {
+ !(start->ls_flags & LPF_CREATE_MDTOBJ)) {
bk->lb_param &= ~LPF_CREATE_MDTOBJ;
dirty = true;
} else if (!(bk->lb_param & LPF_CREATE_MDTOBJ) &&
if ((start->ls_valid & LSV_DELAY_CREATE_OSTOBJ) || reset) {
if ((bk->lb_param & LPF_DELAY_CREATE_OSTOBJ) &&
- !(start->ls_valid & LSV_DELAY_CREATE_OSTOBJ)) {
+ !(start->ls_flags & LPF_DELAY_CREATE_OSTOBJ)) {
bk->lb_param &= ~LPF_DELAY_CREATE_OSTOBJ;
dirty = true;
} else if (!(bk->lb_param & LPF_DELAY_CREATE_OSTOBJ) &&
if ((start->ls_valid & LSV_ERROR_HANDLE) || reset) {
if ((bk->lb_param & LPF_FAILOUT) &&
- !(start->ls_valid & LSV_ERROR_HANDLE)) {
+ !(start->ls_flags & LPF_FAILOUT)) {
bk->lb_param &= ~LPF_FAILOUT;
dirty = true;
- } else if (!(start->ls_flags & LPF_FAILOUT) &&
- (bk->lb_param & LPF_FAILOUT)) {
- bk->lb_param &= ~LPF_FAILOUT;
+ } else if (!(bk->lb_param & LPF_FAILOUT) &&
+ (start->ls_flags & LPF_FAILOUT)) {
+ bk->lb_param |= LPF_FAILOUT;
dirty = true;
}
}
if ((start->ls_valid & LSV_DRYRUN) || reset) {
if ((bk->lb_param & LPF_DRYRUN) &&
- !(start->ls_valid & LSV_DRYRUN)) {
- bk->lb_param &= ~LPF_DRYRUN;
- dirty = true;
- } else if (!(start->ls_flags & LPF_DRYRUN) &&
- (bk->lb_param & LPF_DRYRUN)) {
+ !(start->ls_flags & LPF_DRYRUN)) {
bk->lb_param &= ~LPF_DRYRUN;
lfsck->li_drop_dryrun = 1;
dirty = true;
+ } else if (!(bk->lb_param & LPF_DRYRUN) &&
+ (start->ls_flags & LPF_DRYRUN)) {
+ bk->lb_param |= LPF_DRYRUN;
+ dirty = true;
}
}
- if ((bk->lb_param & LPF_OST_ORPHAN) &&
- !(start->ls_flags & LPF_OST_ORPHAN)) {
- bk->lb_param &= ~LPF_OST_ORPHAN;
- dirty = true;
- } else if (!(bk->lb_param & LPF_OST_ORPHAN) &&
- (start->ls_flags & LPF_OST_ORPHAN)) {
- bk->lb_param |= LPF_OST_ORPHAN;
- dirty = true;
- }
-
if (start->ls_valid & LSV_SPEED_LIMIT) {
if (__lfsck_set_speed(lfsck, start->ls_speed_limit))
dirty = true;
}
run_test 32 "stop LFSCK when some OST failed"
+test_33()
+{
+ lfsck_prep 5 5
+
+ $START_LAYOUT --dryrun -o -r ||
+ error "(1) Fail to start layout LFSCK"
+ wait_all_targets_blocked layout completed 2
+
+ local PARAMS=$($SHOW_LAYOUT | awk '/^param/ { print $2 }')
+ [ "$PARAMS" == "dryrun,all_targets,orphan" ] ||
+ error "(3) Expect 'dryrun,all_targets,orphan', got '$PARAMS'"
+
+ $START_NAMESPACE -e abort -A -r ||
+ error "(4) Fail to start namespace LFSCK"
+ wait_all_targets_blocked namespace completed 5
+
+ PARAMS=$($SHOW_NAMESPACE | awk '/^param/ { print $2 }')
+ [ "$PARAMS" == "failout,all_targets" ] ||
+ error "(6) Expect 'failout,all_targets', got '$PARAMS'"
+}
+run_test 33 "check LFSCK paramters"
+
# restore MDS/OST size
MDSSIZE=${SAVED_MDSSIZE}
OSTSIZE=${SAVED_OSTSIZE}