Lines Matching refs:sleb
455 * @sleb: scanned LEB information
458 static int fix_unclean_leb(struct ubifs_info *c, struct ubifs_scan_leb *sleb,
461 int lnum = sleb->lnum, endpt = start;
464 if (!list_empty(&sleb->nodes)) {
467 snod = list_entry(sleb->nodes.prev,
477 lnum, start, sleb->endpt);
489 lnum, start, sleb->endpt);
498 err = ubi_read(c->ubi, lnum, sleb->buf, 0,
508 void *buf = sleb->buf + len - pad_len;
513 err = ubi_leb_change(c->ubi, lnum, sleb->buf, len,
524 * @sleb: scanned LEB information
529 static int drop_incomplete_group(struct ubifs_scan_leb *sleb, int *offs)
533 while (!list_empty(&sleb->nodes)) {
537 snod = list_entry(sleb->nodes.prev, struct ubifs_scan_node,
542 dbg_rcvry("dropping node at %d:%d", sleb->lnum, snod->offs);
546 sleb->nodes_cnt -= 1;
570 struct ubifs_scan_leb *sleb;
575 sleb = ubifs_start_scan(c, lnum, offs, sbuf);
576 if (IS_ERR(sleb))
577 return sleb;
579 if (sleb->ecc)
601 err = ubifs_add_snod(c, sleb, buf, offs);
684 if (grouped && drop_incomplete_group(sleb, &offs)) {
696 ubifs_end_scan(c, sleb, lnum, offs);
699 err = fix_unclean_leb(c, sleb, start);
704 return sleb;
711 ubifs_scan_destroy(sleb);
782 struct ubifs_scan_leb *sleb;
794 sleb = ubifs_scan(c, next_lnum, 0, sbuf, 0);
795 if (IS_ERR(sleb))
796 return sleb;
797 if (sleb->nodes_cnt) {
801 snod = list_entry(sleb->nodes.next,
808 ubifs_scan_destroy(sleb);
815 ubifs_scan_destroy(sleb);
819 ubifs_scan_destroy(sleb);