/** * scan_mgr - commit atoms which are to be committed * @super: super block to commit atoms of * * Commits old atoms. */ static int scan_mgr(struct super_block *super) { int ret; reiser4_context ctx; init_stack_context(&ctx, super); ret = commit_some_atoms(&get_super_private(super)->tmgr); reiser4_exit_context(&ctx); return ret; }
static void entd_flush(struct super_block *super, struct wbq *rq) { reiser4_context ctx; init_stack_context(&ctx, super); ctx.entd = 1; ctx.gfp_mask = GFP_NOFS; rq->wbc->range_start = page_offset(rq->page); rq->wbc->range_end = rq->wbc->range_start + (ENTD_CAPTURE_APAGE_BURST << PAGE_CACHE_SHIFT); rq->mapping->a_ops->writepages(rq->mapping, rq->wbc); if (rq->wbc->nr_to_write > 0) { long result; struct bdi_writeback *wb; struct wb_writeback_work work = { .sb = super, .sync_mode = WB_SYNC_NONE, .nr_pages = LONG_MAX, .range_cyclic = 0, .reason = WB_REASON_TRY_TO_FREE_PAGES, }; rq->wbc->sync_mode = work.sync_mode, rq->wbc->range_cyclic = work.range_cyclic, rq->wbc->range_start = 0; rq->wbc->range_end = LLONG_MAX; /* * we don't need to pin superblock for writeback: * this is implicitly pinned by write_page_by_ent * (via igrab), so that shutdown_super() will wait * (on reiser4_put_super) for entd completion. */ wb = &rq->mapping->backing_dev_info->wb; spin_lock(&wb->list_lock); result = generic_writeback_sb_inodes(super, wb, rq->wbc, &work, true); spin_unlock(&wb->list_lock); } rq->wbc->nr_to_write = ENTD_CAPTURE_APAGE_BURST; reiser4_writeout(super, rq->wbc); context_set_commit_async(&ctx); reiser4_exit_context(&ctx); }