- if (rc > 0) {
- /* Load FLD entry into server cache */
- do {
- rc = iops->rec(env, it, (struct dt_rec *)range, 0);
- if (rc != 0)
- GOTO(out_it_put, rc);
- LASSERT(range != NULL);
- range_be_to_cpu(range, range);
+ while (rc == 0) {
+ rc = iops->rec(env, it, (struct dt_rec *)range, 0);
+ if (rc != 0)
+ GOTO(out_it_put, rc);
+
+ range_be_to_cpu(range, range);
+
+ /*
+ * Newly created ldiskfs IAM indexes may include a
+ * zeroed-out key and record. Ignore it here.
+ */
+ if (range->lsr_start < range->lsr_end) {