Lines Matching refs:pag
25 struct xfs_perag *pag, in xfs_extent_busy_insert() argument
36 new->agno = pag->pag_agno; in xfs_extent_busy_insert()
43 trace_xfs_extent_busy(tp->t_mountp, pag->pag_agno, bno, len); in xfs_extent_busy_insert()
45 spin_lock(&pag->pagb_lock); in xfs_extent_busy_insert()
46 rbp = &pag->pagb_tree.rb_node; in xfs_extent_busy_insert()
63 rb_insert_color(&new->rb_node, &pag->pagb_tree); in xfs_extent_busy_insert()
66 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_insert()
81 struct xfs_perag *pag, in xfs_extent_busy_search() argument
90 spin_lock(&pag->pagb_lock); in xfs_extent_busy_search()
91 rbp = pag->pagb_tree.rb_node; in xfs_extent_busy_search()
110 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_search()
128 struct xfs_perag *pag, in xfs_extent_busy_update_extent() argument
132 bool userdata) __releases(&pag->pagb_lock) in xfs_extent_busy_update_extent()
133 __acquires(&pag->pagb_lock) in xfs_extent_busy_update_extent()
145 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_update_extent()
147 spin_lock(&pag->pagb_lock); in xfs_extent_busy_update_extent()
220 rb_erase(&busyp->rb_node, &pag->pagb_tree); in xfs_extent_busy_update_extent()
258 trace_xfs_extent_busy_reuse(mp, pag->pag_agno, fbno, flen); in xfs_extent_busy_update_extent()
262 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_update_extent()
264 trace_xfs_extent_busy_force(mp, pag->pag_agno, fbno, flen); in xfs_extent_busy_update_extent()
265 spin_lock(&pag->pagb_lock); in xfs_extent_busy_update_extent()
276 struct xfs_perag *pag, in xfs_extent_busy_reuse() argument
284 spin_lock(&pag->pagb_lock); in xfs_extent_busy_reuse()
286 rbp = pag->pagb_tree.rb_node; in xfs_extent_busy_reuse()
301 if (!xfs_extent_busy_update_extent(mp, pag, busyp, fbno, flen, in xfs_extent_busy_reuse()
305 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_reuse()
334 spin_lock(&args->pag->pagb_lock); in xfs_extent_busy_trim()
337 rbp = args->pag->pagb_tree.rb_node; in xfs_extent_busy_trim()
482 *busy_gen = args->pag->pagb_gen; in xfs_extent_busy_trim()
485 spin_unlock(&args->pag->pagb_lock); in xfs_extent_busy_trim()
499 struct xfs_perag *pag, in xfs_extent_busy_clear_one() argument
505 rb_erase(&busyp->rb_node, &pag->pagb_tree); in xfs_extent_busy_clear_one()
514 struct xfs_perag *pag, in xfs_extent_busy_put_pag() argument
516 __releases(pag->pagb_lock) in xfs_extent_busy_put_pag()
519 pag->pagb_gen++; in xfs_extent_busy_put_pag()
520 wake_up_all(&pag->pagb_wait); in xfs_extent_busy_put_pag()
523 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_put_pag()
524 xfs_perag_put(pag); in xfs_extent_busy_put_pag()
539 struct xfs_perag *pag = NULL; in xfs_extent_busy_clear() local
545 if (pag) in xfs_extent_busy_clear()
546 xfs_extent_busy_put_pag(pag, wakeup); in xfs_extent_busy_clear()
548 pag = xfs_perag_get(mp, agno); in xfs_extent_busy_clear()
549 spin_lock(&pag->pagb_lock); in xfs_extent_busy_clear()
557 xfs_extent_busy_clear_one(mp, pag, busyp); in xfs_extent_busy_clear()
562 if (pag) in xfs_extent_busy_clear()
563 xfs_extent_busy_put_pag(pag, wakeup); in xfs_extent_busy_clear()
572 struct xfs_perag *pag, in xfs_extent_busy_flush() argument
583 prepare_to_wait(&pag->pagb_wait, &wait, TASK_KILLABLE); in xfs_extent_busy_flush()
584 if (busy_gen != READ_ONCE(pag->pagb_gen)) in xfs_extent_busy_flush()
589 finish_wait(&pag->pagb_wait, &wait); in xfs_extent_busy_flush()
596 struct xfs_perag *pag; in xfs_extent_busy_wait_all() local
600 for_each_perag(mp, agno, pag) { in xfs_extent_busy_wait_all()
602 prepare_to_wait(&pag->pagb_wait, &wait, TASK_KILLABLE); in xfs_extent_busy_wait_all()
603 if (RB_EMPTY_ROOT(&pag->pagb_tree)) in xfs_extent_busy_wait_all()
607 finish_wait(&pag->pagb_wait, &wait); in xfs_extent_busy_wait_all()