Lines Matching defs:bu
596 * @bu: bulk-read information
602 struct bu_info *bu, int *n)
604 int i = 0, nn = *n, offs = bu->zbranch[0].offs, hole = 0, read = 0;
627 if (nn >= bu->cnt) {
630 } else if (key_block(c, &bu->zbranch[nn].key) == page_block) {
633 dn = bu->buf + (bu->zbranch[nn].offs - offs);
661 } else if (key_block(c, &bu->zbranch[nn].key) < page_block) {
707 * @bu: bulk-read information
712 static int ubifs_do_bulk_read(struct ubifs_info *c, struct bu_info *bu,
720 int allocate = bu->buf ? 0 : 1;
724 err = ubifs_tnc_get_bu_keys(c, bu);
728 if (bu->eof) {
734 page_cnt = bu->blk_cnt >> UBIFS_BLOCKS_PER_PAGE_SHIFT;
745 if (bu->cnt) {
751 bu->buf_len = bu->zbranch[bu->cnt - 1].offs +
752 bu->zbranch[bu->cnt - 1].len -
753 bu->zbranch[0].offs;
754 ubifs_assert(c, bu->buf_len > 0);
755 ubifs_assert(c, bu->buf_len <= c->leb_size);
756 bu->buf = kmalloc(bu->buf_len, GFP_NOFS | __GFP_NOWARN);
757 if (!bu->buf)
761 err = ubifs_tnc_bulk_read(c, bu);
766 err = populate_page(c, page1, bu, &n);
790 err = populate_page(c, page, bu, &n);
801 kfree(bu->buf);
828 struct bu_info *bu;
863 bu = &c->bu;
865 bu = kmalloc(sizeof(struct bu_info), GFP_NOFS | __GFP_NOWARN);
866 if (!bu)
869 bu->buf = NULL;
873 bu->buf_len = c->max_bu_buf_len;
874 data_key_init(c, &bu->key, inode->i_ino,
876 err = ubifs_do_bulk_read(c, bu, page);
881 kfree(bu);