Lines Matching refs:pag

24 	struct xfs_perag	*pag,
36 new->agno = pag->pag_agno;
43 trace_xfs_extent_busy(pag->pag_mount, pag->pag_agno, bno, len);
45 spin_lock(&pag->pagb_lock);
46 rbp = &pag->pagb_tree.rb_node;
63 rb_insert_color(&new->rb_node, &pag->pagb_tree);
67 spin_unlock(&pag->pagb_lock);
73 struct xfs_perag *pag,
78 xfs_extent_busy_insert_list(pag, bno, len, flags, &tp->t_busy);
83 struct xfs_perag *pag,
88 xfs_extent_busy_insert_list(pag, bno, len, XFS_EXTENT_BUSY_DISCARDED,
104 struct xfs_perag *pag,
113 spin_lock(&pag->pagb_lock);
114 rbp = pag->pagb_tree.rb_node;
133 spin_unlock(&pag->pagb_lock);
151 struct xfs_perag *pag,
155 bool userdata) __releases(&pag->pagb_lock)
156 __acquires(&pag->pagb_lock)
168 spin_unlock(&pag->pagb_lock);
170 spin_lock(&pag->pagb_lock);
243 rb_erase(&busyp->rb_node, &pag->pagb_tree);
282 trace_xfs_extent_busy_reuse(mp, pag->pag_agno, fbno, flen);
286 spin_unlock(&pag->pagb_lock);
288 trace_xfs_extent_busy_force(mp, pag->pag_agno, fbno, flen);
289 spin_lock(&pag->pagb_lock);
300 struct xfs_perag *pag,
308 spin_lock(&pag->pagb_lock);
310 rbp = pag->pagb_tree.rb_node;
325 if (!xfs_extent_busy_update_extent(mp, pag, busyp, fbno, flen,
329 spin_unlock(&pag->pagb_lock);
358 spin_lock(&args->pag->pagb_lock);
361 rbp = args->pag->pagb_tree.rb_node;
506 *busy_gen = args->pag->pagb_gen;
509 spin_unlock(&args->pag->pagb_lock);
523 struct xfs_perag *pag,
529 rb_erase(&busyp->rb_node, &pag->pagb_tree);
538 struct xfs_perag *pag,
540 __releases(pag->pagb_lock)
543 pag->pagb_gen++;
544 wake_up_all(&pag->pagb_wait);
547 spin_unlock(&pag->pagb_lock);
548 xfs_perag_put(pag);
563 struct xfs_perag *pag = NULL;
569 if (pag)
570 xfs_extent_busy_put_pag(pag, wakeup);
572 pag = xfs_perag_get(mp, agno);
573 spin_lock(&pag->pagb_lock);
581 xfs_extent_busy_clear_one(mp, pag, busyp);
586 if (pag)
587 xfs_extent_busy_put_pag(pag, wakeup);
607 struct xfs_perag *pag,
623 if (busy_gen != READ_ONCE(pag->pagb_gen))
632 prepare_to_wait(&pag->pagb_wait, &wait, TASK_KILLABLE);
633 if (busy_gen != READ_ONCE(pag->pagb_gen))
638 finish_wait(&pag->pagb_wait, &wait);
646 struct xfs_perag *pag;
650 for_each_perag(mp, agno, pag) {
652 prepare_to_wait(&pag->pagb_wait, &wait, TASK_KILLABLE);
653 if (RB_EMPTY_ROOT(&pag->pagb_tree))
657 finish_wait(&pag->pagb_wait, &wait);