Lines Matching refs:bu
606 struct bu_info *bu, int *n) in populate_page() argument
608 int i = 0, nn = *n, offs = bu->zbranch[0].offs, hole = 0, read = 0; in populate_page()
631 if (nn >= bu->cnt) { in populate_page()
634 } else if (key_block(c, &bu->zbranch[nn].key) == page_block) { in populate_page()
637 dn = bu->buf + (bu->zbranch[nn].offs - offs); in populate_page()
665 } else if (key_block(c, &bu->zbranch[nn].key) < page_block) { in populate_page()
716 static int ubifs_do_bulk_read(struct ubifs_info *c, struct bu_info *bu, in ubifs_do_bulk_read() argument
724 int allocate = bu->buf ? 0 : 1; in ubifs_do_bulk_read()
728 err = ubifs_tnc_get_bu_keys(c, bu); in ubifs_do_bulk_read()
732 if (bu->eof) { in ubifs_do_bulk_read()
738 page_cnt = bu->blk_cnt >> UBIFS_BLOCKS_PER_PAGE_SHIFT; in ubifs_do_bulk_read()
749 if (bu->cnt) { in ubifs_do_bulk_read()
755 bu->buf_len = bu->zbranch[bu->cnt - 1].offs + in ubifs_do_bulk_read()
756 bu->zbranch[bu->cnt - 1].len - in ubifs_do_bulk_read()
757 bu->zbranch[0].offs; in ubifs_do_bulk_read()
758 ubifs_assert(c, bu->buf_len > 0); in ubifs_do_bulk_read()
759 ubifs_assert(c, bu->buf_len <= c->leb_size); in ubifs_do_bulk_read()
760 bu->buf = kmalloc(bu->buf_len, GFP_NOFS | __GFP_NOWARN); in ubifs_do_bulk_read()
761 if (!bu->buf) in ubifs_do_bulk_read()
765 err = ubifs_tnc_bulk_read(c, bu); in ubifs_do_bulk_read()
770 err = populate_page(c, page1, bu, &n); in ubifs_do_bulk_read()
794 err = populate_page(c, page, bu, &n); in ubifs_do_bulk_read()
805 kfree(bu->buf); in ubifs_do_bulk_read()
832 struct bu_info *bu; in ubifs_bulk_read() local
867 bu = &c->bu; in ubifs_bulk_read()
869 bu = kmalloc(sizeof(struct bu_info), GFP_NOFS | __GFP_NOWARN); in ubifs_bulk_read()
870 if (!bu) in ubifs_bulk_read()
873 bu->buf = NULL; in ubifs_bulk_read()
877 bu->buf_len = c->max_bu_buf_len; in ubifs_bulk_read()
878 data_key_init(c, &bu->key, inode->i_ino, in ubifs_bulk_read()
880 err = ubifs_do_bulk_read(c, bu, page); in ubifs_bulk_read()
885 kfree(bu); in ubifs_bulk_read()