-
- rc = dt_attr_get(env, ofd->ofd_seq_count_file,
- &info->fti_attr, BYPASS_CAPA);
- if (rc)
- GOTO(cleanup, rc);
-
- seq_count_size = (unsigned long)info->fti_attr.la_size;
-
- if (seq_count_size == sizeof(seq_count)) {
- info->fti_off = 0;
- info->fti_buf.lb_buf = &seq_count;
- info->fti_buf.lb_len = sizeof(seq_count);
-
- rc = dt_record_read(env, ofd->ofd_seq_count_file,
- &info->fti_buf, &info->fti_off);
- if (rc) {
- CERROR("%s: can't read LAST_GROUP: rc = %d\n",
- ofd_name(ofd), rc);
- GOTO(cleanup, rc);
- }
-
- ofd->ofd_seq_count = le64_to_cpu(seq_count);
- } else if (seq_count_size == 0) {
- ofd->ofd_seq_count = 0;
- } else {
- CERROR("%s: seqs file is corrupted? size = %lu\n",
- ofd_name(ofd), seq_count_size);
- GOTO(cleanup, rc = -EIO);
- }
-
- for (i = 0; i <= ofd->ofd_seq_count; i++) {
- struct ofd_seq *oseq;
-
- oseq = ofd_seq_load(env, ofd, i);
- if (IS_ERR(oseq)) {
- CERROR("%s: can't load seq %d: rc = %d\n",
- ofd_name(ofd), i, rc);
- /* Clean all previously set seqs */
- ofd_seqs_fini(env, ofd);
- GOTO(cleanup, rc);
- } else {
- ofd_seq_put(env, oseq);
- }
- }
-
- CDEBUG(D_OTHER, "%s: %u seqs initialized\n", ofd_name(ofd),
- ofd->ofd_seq_count + 1);
-cleanup:
- RETURN(rc);