diff --git a/lustre/lmv/lmv_obd.c b/lustre/lmv/lmv_obd.c
index d18b856..90c5c41 100644
--- a/lustre/lmv/lmv_obd.c
+++ b/lustre/lmv/lmv_obd.c
@@ -100,6 +100,9 @@ int lmv_name_to_stripe_index(__u32 lmv_hash_type, unsigned int stripe_count,
 	if (stripe_count <= 1)
 		return 0;
 
+	if (OBD_FAIL_CHECK(0x9010))
+		return cfs_rand() % (unsigned)stripe_count;
+
 	/* for migrating object, always start from 0 stripe */
 	if (lmv_hash_type & LMV_HASH_FLAG_MIGRATION)
 		return 0;
diff --git a/lustre/mdc/mdc_lib.c b/lustre/mdc/mdc_lib.c
index 490204b..6228211 100644
--- a/lustre/mdc/mdc_lib.c
+++ b/lustre/mdc/mdc_lib.c
@@ -54,6 +54,28 @@
 #endif
 #endif
 
+static void mdc_body_corrupt(void *body)
+{
+	unsigned char *p = body;
+	size_t i;
+
+	if (OBD_FAIL_CHECK(0x9000)) {
+		i = cfs_rand() % sizeof(struct mdt_body);
+		p[i] = cfs_rand();
+	}
+}
+
+static void mdc_rec_reint_corrupt(void *rec)
+{
+	unsigned char *p = rec;
+	size_t i;
+
+	if (OBD_FAIL_CHECK(0x9001)) {
+		i = cfs_rand() % sizeof(struct mdt_rec_reint);
+		p[i] = cfs_rand();
+	}
+}
+
 static void __mdc_pack_body(struct mdt_body *b, __u32 suppgid)
 {
 	LASSERT (b != NULL);
@@ -161,6 +183,8 @@ void mdc_readdir_pack(struct ptlrpc_request *req, __u64 pgoff,
 	b->mbo_mode = LUDA_FID | LUDA_TYPE;
 
 	mdc_pack_capa(req, &RMF_CAPA1, oc);
+
+	mdc_body_corrupt(b);
 }
 
 /* packing of MDS records */
@@ -201,6 +225,8 @@ void mdc_create_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
 		tmp = req_capsule_client_get(&req->rq_pill, &RMF_EADATA);
 		memcpy(tmp, data, datalen);
 	}
+
+	mdc_rec_reint_corrupt(rec);
 }
 
 static __u64 mds_pack_open_flags(__u64 flags, __u32 mode)
@@ -286,6 +312,8 @@ void mdc_open_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
 		memcpy(tmp, lmm, lmmlen);
 	}
 	set_mrc_cr_flags(rec, cr_flags);
+
+	mdc_rec_reint_corrupt(rec);
 }
 
 static inline __u64 attr_pack(unsigned int ia_valid) {
@@ -358,6 +386,8 @@ static void mdc_setattr_pack_rec(struct mdt_rec_setattr *rec,
 		rec->sa_suppgid = op_data->op_suppgids[0];
 
 	rec->sa_bias = op_data->op_bias;
+
+	mdc_rec_reint_corrupt(rec);
 }
 
 static void mdc_ioepoch_pack(struct mdt_ioepoch *epoch,
@@ -404,6 +434,8 @@ void mdc_setattr_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
 
         memcpy(req_capsule_client_get(&req->rq_pill, &RMF_LOGCOOKIES), ea2,
                ea2len);
+
+	mdc_rec_reint_corrupt(rec);
 }
 
 void mdc_unlink_pack(struct ptlrpc_request *req, struct md_op_data *op_data)
@@ -430,6 +462,8 @@ void mdc_unlink_pack(struct ptlrpc_request *req, struct md_op_data *op_data)
         mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1);
 
 	mdc_pack_name(req, &RMF_NAME, op_data->op_name, op_data->op_namelen);
+
+	mdc_rec_reint_corrupt(rec);
 }
 
 void mdc_link_pack(struct ptlrpc_request *req, struct md_op_data *op_data)
@@ -455,6 +489,8 @@ void mdc_link_pack(struct ptlrpc_request *req, struct md_op_data *op_data)
         mdc_pack_capa(req, &RMF_CAPA2, op_data->op_capa2);
 
 	mdc_pack_name(req, &RMF_NAME, op_data->op_name, op_data->op_namelen);
+
+	mdc_rec_reint_corrupt(rec);
 }
 
 void mdc_rename_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
@@ -486,6 +522,8 @@ void mdc_rename_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
 
 	if (new != NULL)
 		mdc_pack_name(req, &RMF_SYMTGT, new, newlen);
+
+	mdc_rec_reint_corrupt(rec);
 }
 
 void mdc_getattr_pack(struct ptlrpc_request *req, __u64 valid, int flags,
@@ -512,6 +550,8 @@ void mdc_getattr_pack(struct ptlrpc_request *req, __u64 valid, int flags,
 	if (op_data->op_name != NULL)
 		mdc_pack_name(req, &RMF_NAME, op_data->op_name,
 			      op_data->op_namelen);
+
+	mdc_body_corrupt(b);
 }
 
 static void mdc_hsm_release_pack(struct ptlrpc_request *req,
@@ -548,4 +588,6 @@ void mdc_close_pack(struct ptlrpc_request *req, struct md_op_data *op_data)
         mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1);
         mdc_ioepoch_pack(epoch, op_data);
 	mdc_hsm_release_pack(req, op_data);
+
+	mdc_rec_reint_corrupt(rec);
 }
