Lines Matching refs:req
371 const struct ubifs_budget_req *req) in calc_idx_growth() argument
375 znodes = req->new_ino + (req->new_page << UBIFS_BLOCKS_PER_PAGE_SHIFT) + in calc_idx_growth()
376 req->new_dent; in calc_idx_growth()
387 const struct ubifs_budget_req *req) in calc_data_growth() argument
391 data_growth = req->new_ino ? c->bi.inode_budget : 0; in calc_data_growth()
392 if (req->new_page) in calc_data_growth()
394 if (req->new_dent) in calc_data_growth()
396 data_growth += req->new_ino_d; in calc_data_growth()
407 const struct ubifs_budget_req *req) in calc_dd_growth() argument
411 dd_growth = req->dirtied_page ? c->bi.page_budget : 0; in calc_dd_growth()
413 if (req->dirtied_ino) in calc_dd_growth()
414 dd_growth += c->bi.inode_budget << (req->dirtied_ino - 1); in calc_dd_growth()
415 if (req->mod_dent) in calc_dd_growth()
417 dd_growth += req->dirtied_ino_d; in calc_dd_growth()
434 int ubifs_budget_space(struct ubifs_info *c, struct ubifs_budget_req *req) in ubifs_budget_space() argument
438 ubifs_assert(req->new_page <= 1); in ubifs_budget_space()
439 ubifs_assert(req->dirtied_page <= 1); in ubifs_budget_space()
440 ubifs_assert(req->new_dent <= 1); in ubifs_budget_space()
441 ubifs_assert(req->mod_dent <= 1); in ubifs_budget_space()
442 ubifs_assert(req->new_ino <= 1); in ubifs_budget_space()
443 ubifs_assert(req->new_ino_d <= UBIFS_MAX_INO_DATA); in ubifs_budget_space()
444 ubifs_assert(req->dirtied_ino <= 4); in ubifs_budget_space()
445 ubifs_assert(req->dirtied_ino_d <= UBIFS_MAX_INO_DATA * 4); in ubifs_budget_space()
446 ubifs_assert(!(req->new_ino_d & 7)); in ubifs_budget_space()
447 ubifs_assert(!(req->dirtied_ino_d & 7)); in ubifs_budget_space()
449 data_growth = calc_data_growth(c, req); in ubifs_budget_space()
450 dd_growth = calc_dd_growth(c, req); in ubifs_budget_space()
453 idx_growth = calc_idx_growth(c, req); in ubifs_budget_space()
473 req->idx_growth = idx_growth; in ubifs_budget_space()
474 req->data_growth = data_growth; in ubifs_budget_space()
475 req->dd_growth = dd_growth; in ubifs_budget_space()
486 if (req->fast) { in ubifs_budget_space()
523 void ubifs_release_budget(struct ubifs_info *c, struct ubifs_budget_req *req) in ubifs_release_budget() argument
525 ubifs_assert(req->new_page <= 1); in ubifs_release_budget()
526 ubifs_assert(req->dirtied_page <= 1); in ubifs_release_budget()
527 ubifs_assert(req->new_dent <= 1); in ubifs_release_budget()
528 ubifs_assert(req->mod_dent <= 1); in ubifs_release_budget()
529 ubifs_assert(req->new_ino <= 1); in ubifs_release_budget()
530 ubifs_assert(req->new_ino_d <= UBIFS_MAX_INO_DATA); in ubifs_release_budget()
531 ubifs_assert(req->dirtied_ino <= 4); in ubifs_release_budget()
532 ubifs_assert(req->dirtied_ino_d <= UBIFS_MAX_INO_DATA * 4); in ubifs_release_budget()
533 ubifs_assert(!(req->new_ino_d & 7)); in ubifs_release_budget()
534 ubifs_assert(!(req->dirtied_ino_d & 7)); in ubifs_release_budget()
535 if (!req->recalculate) { in ubifs_release_budget()
536 ubifs_assert(req->idx_growth >= 0); in ubifs_release_budget()
537 ubifs_assert(req->data_growth >= 0); in ubifs_release_budget()
538 ubifs_assert(req->dd_growth >= 0); in ubifs_release_budget()
541 if (req->recalculate) { in ubifs_release_budget()
542 req->data_growth = calc_data_growth(c, req); in ubifs_release_budget()
543 req->dd_growth = calc_dd_growth(c, req); in ubifs_release_budget()
544 req->idx_growth = calc_idx_growth(c, req); in ubifs_release_budget()
547 if (!req->data_growth && !req->dd_growth) in ubifs_release_budget()
554 c->bi.idx_growth -= req->idx_growth; in ubifs_release_budget()
555 c->bi.uncommitted_idx += req->idx_growth; in ubifs_release_budget()
556 c->bi.data_growth -= req->data_growth; in ubifs_release_budget()
557 c->bi.dd_growth -= req->dd_growth; in ubifs_release_budget()
605 struct ubifs_budget_req req; in ubifs_release_dirty_inode_budget() local
607 memset(&req, 0, sizeof(struct ubifs_budget_req)); in ubifs_release_dirty_inode_budget()
609 req.dd_growth = c->bi.inode_budget + ALIGN(ui->data_len, 8); in ubifs_release_dirty_inode_budget()
610 ubifs_release_budget(c, &req); in ubifs_release_dirty_inode_budget()