struct task_struct *lo_owner;
};
-static inline struct lov_layout_raid0 *lov_r0(struct lov_object *lov, int i)
+static inline const struct lu_fid *lov_object_fid(const struct lov_object *lov)
{
- LASSERT(lov->lo_type == LLT_COMP);
- LASSERTF(i < lov->u.composite.lo_entry_count,
- "entry %d entry_count %d\n", i,
- lov->u.composite.lo_entry_count);
-
- return &lov->u.composite.lo_entries[i].lle_raid0;
+ return lu_object_fid(&lov->lo_cl.co_lu);
}
static inline struct lov_stripe_md_entry *lov_lse(struct lov_object *lov, int i)
{
LASSERT(lov->lo_type == LLT_COMP);
LASSERTF(i < lov->u.composite.lo_entry_count,
- "entry %d entry_count %d\n", i,
- lov->u.composite.lo_entry_count);
+ DFID" entry %d, entry_count %d\n",
+ PFID(lov_object_fid(lov)),
+ i, lov->u.composite.lo_entry_count);
return &lov->u.composite.lo_entries[i];
}
+static inline struct lov_layout_raid0 *lov_r0(struct lov_object *lov, int i)
+{
+ return &lov_entry(lov, i)->lle_raid0;
+}
+
#define lov_for_layout_entry(lov, entry, start, end) \
if (lov->u.composite.lo_entries && \
lov->u.composite.lo_entry_count > 0) \
static inline struct lov_mirror_entry *
lov_mirror_entry(struct lov_object *lov, int i)
{
- LASSERT(i < lov->u.composite.lo_mirror_count);
+ LASSERTF(i < lov->u.composite.lo_mirror_count,
+ DFID" entry %d, mirror_count %d\n",
+ PFID(lov_object_fid(lov)),
+ i, lov->u.composite.lo_mirror_count);
+
return &lov->u.composite.lo_mirrors[i];
}
static inline bool
is_index_within_mirror(struct lov_object *lov, int index, int mirror_index)
{
- struct lov_layout_composite *comp = &lov->u.composite;
- struct lov_mirror_entry *lre = &comp->lo_mirrors[mirror_index];
+ struct lov_mirror_entry *lre = lov_mirror_entry(lov, mirror_index);
return (index >= lre->lre_start && index <= lre->lre_end);
}
struct lov_layout_entry *lle;
bool found = false;
- lre = &comp->lo_mirrors[(index + i) % comp->lo_mirror_count];
+ lre = lov_mirror_entry(obj, (index + i) % comp->lo_mirror_count);
if (!lre->lre_valid)
continue;
LASSERT(lio->lis_mirror_index >= 0);
- lre = &comp->lo_mirrors[lio->lis_mirror_index];
+ lre = lov_mirror_entry(lov, lio->lis_mirror_index);
start_index = lre->lre_start;
end_index = lre->lre_end;
}