X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftarget%2Fupdate_trans.c;h=361e3143712a6090c2c47ec24f0036b27793ee8c;hb=562837124ec7bffeba7edb4b4b899bc271833374;hp=23fd09ad3c2897a15814fe773cd20bb310f42733;hpb=584d9e46053234d02a3290822317552785e44e76;p=fs%2Flustre-release.git diff --git a/lustre/target/update_trans.c b/lustre/target/update_trans.c index 23fd09a..361e314 100644 --- a/lustre/target/update_trans.c +++ b/lustre/target/update_trans.c @@ -1026,6 +1026,17 @@ stop_master_trans: /* Step 3: write updates to other MDTs */ if (write_updates) { struct llog_update_record *lur; + if (OBD_FAIL_PRECHECK(OBD_FAIL_OUT_OBJECT_MISS)) { + if (cfs_fail_val == 1) { + long timeout = cfs_time_seconds(1) / 10; + + OBD_RACE(OBD_FAIL_OUT_OBJECT_MISS); + set_current_state(TASK_UNINTERRUPTIBLE); + schedule_timeout(schedule_timeout(timeout)); + cfs_fail_loc = 0; + } + cfs_fail_val++; + } /* Stop callback of master will add more updates and also update * master transno, so merge the parameters and updates into one @@ -1596,6 +1607,11 @@ static int distribute_txn_commit_thread(void *_arg) if (current->state) schedule(); + + if (OBD_FAIL_PRECHECK(OBD_FAIL_OUT_OBJECT_MISS)) { + set_current_state(TASK_UNINTERRUPTIBLE); + schedule_timeout(cfs_time_seconds(5)); + } } while (({set_current_state(TASK_IDLE);