struct ofd_thread_info *info;
int rc = 0;
- if (OBD_FAIL_CHECK(OBD_FAIL_OST_ENOENT) &&
- ofd->ofd_destroys_in_progress == 0) {
- /* don't fail lookups for orphan recovery, it causes
- * later LBUGs when objects still exist during precreate */
- CDEBUG(D_INFO, "*** obd_fail_loc=%x ***\n",OBD_FAIL_OST_ENOENT);
- RETURN(-ENOENT);
- }
-
+ rc = lu_env_refill((struct lu_env *)env);
+ LASSERT(rc == 0);
info = ofd_info_init(env, exp);
+ LASSERT(oa != NULL);
+
+ if (OBD_FAIL_CHECK(OBD_FAIL_OST_ENOENT)) {
+ struct ofd_seq *oseq;
+ oseq = ofd_seq_load(env, ofd, oa->o_seq);
+ if (oseq == NULL) {
+ CERROR("%s: Can not find seq for "LPU64":"LPU64"\n",
+ ofd_name(ofd), oa->o_seq, oa->o_id);
+ RETURN(-EINVAL);
+ }
+
+ if (oseq->os_destroys_in_progress == 0) {
+ /* don't fail lookups for orphan recovery, it causes
+ * later LBUGs when objects still exist during
+ * precreate */
+ ofd_seq_put(env, oseq);
+ RETURN(-ENOENT);
+ }
+ ofd_seq_put(env, oseq);
+ }
+
LASSERT(objcount == 1);
LASSERT(obj->ioo_bufcnt > 0);
rc = ofd_auth_capa(exp, &info->fti_fid, oa->o_seq,
capa, CAPA_OPC_OSS_WRITE);
if (rc == 0) {
- LASSERT(oa != NULL);
la_from_obdo(&info->fti_attr, oa, OBD_MD_FLGETATTR);
rc = ofd_preprw_write(env, exp, ofd, &info->fti_fid,
&info->fti_attr, oa, objcount,