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()
259 trace_xfs_extent_busy_reuse(mp, pag->pag_agno, fbno, flen); in xfs_extent_busy_update_extent()
263 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_update_extent()
265 trace_xfs_extent_busy_force(mp, pag->pag_agno, fbno, flen); in xfs_extent_busy_update_extent()
266 spin_lock(&pag->pagb_lock); in xfs_extent_busy_update_extent()
277 struct xfs_perag *pag, in xfs_extent_busy_reuse() argument
285 spin_lock(&pag->pagb_lock); in xfs_extent_busy_reuse()
287 rbp = pag->pagb_tree.rb_node; in xfs_extent_busy_reuse()
302 if (!xfs_extent_busy_update_extent(mp, pag, busyp, fbno, flen, in xfs_extent_busy_reuse()
306 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_reuse()
335 spin_lock(&args->pag->pagb_lock); in xfs_extent_busy_trim()
338 rbp = args->pag->pagb_tree.rb_node; in xfs_extent_busy_trim()
483 *busy_gen = args->pag->pagb_gen; in xfs_extent_busy_trim()
486 spin_unlock(&args->pag->pagb_lock); in xfs_extent_busy_trim()
500 struct xfs_perag *pag, in xfs_extent_busy_clear_one() argument
506 rb_erase(&busyp->rb_node, &pag->pagb_tree); in xfs_extent_busy_clear_one()
515 struct xfs_perag *pag, in xfs_extent_busy_put_pag() argument
517 __releases(pag->pagb_lock) in xfs_extent_busy_put_pag()
520 pag->pagb_gen++; in xfs_extent_busy_put_pag()
521 wake_up_all(&pag->pagb_wait); in xfs_extent_busy_put_pag()
524 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_put_pag()
525 xfs_perag_put(pag); in xfs_extent_busy_put_pag()
540 struct xfs_perag *pag = NULL; in xfs_extent_busy_clear() local
546 if (pag) in xfs_extent_busy_clear()
547 xfs_extent_busy_put_pag(pag, wakeup); in xfs_extent_busy_clear()
549 pag = xfs_perag_get(mp, agno); in xfs_extent_busy_clear()
550 spin_lock(&pag->pagb_lock); in xfs_extent_busy_clear()
558 xfs_extent_busy_clear_one(mp, pag, busyp); in xfs_extent_busy_clear()
563 if (pag) in xfs_extent_busy_clear()
564 xfs_extent_busy_put_pag(pag, wakeup); in xfs_extent_busy_clear()
573 struct xfs_perag *pag, in xfs_extent_busy_flush() argument
584 prepare_to_wait(&pag->pagb_wait, &wait, TASK_KILLABLE); in xfs_extent_busy_flush()
585 if (busy_gen != READ_ONCE(pag->pagb_gen)) in xfs_extent_busy_flush()
590 finish_wait(&pag->pagb_wait, &wait); in xfs_extent_busy_flush()
597 struct xfs_perag *pag; in xfs_extent_busy_wait_all() local
601 for_each_perag(mp, agno, pag) { in xfs_extent_busy_wait_all()
603 prepare_to_wait(&pag->pagb_wait, &wait, TASK_KILLABLE); in xfs_extent_busy_wait_all()
604 if (RB_EMPTY_ROOT(&pag->pagb_tree)) in xfs_extent_busy_wait_all()
608 finish_wait(&pag->pagb_wait, &wait); in xfs_extent_busy_wait_all()