Lines Matching refs:spg
1735 struct ceph_spg_mapping *spg;
1737 spg = kmalloc(sizeof(*spg), GFP_NOIO);
1738 if (!spg)
1741 RB_CLEAR_NODE(&spg->node);
1742 spg->backoffs = RB_ROOT;
1743 return spg;
1746 static void free_spg_mapping(struct ceph_spg_mapping *spg)
1748 WARN_ON(!RB_EMPTY_NODE(&spg->node));
1749 WARN_ON(!RB_EMPTY_ROOT(&spg->backoffs));
1751 kfree(spg);
1991 struct ceph_spg_mapping *spg =
1995 while (!RB_EMPTY_ROOT(&spg->backoffs)) {
1997 rb_entry(rb_first(&spg->backoffs),
2000 erase_backoff(&spg->backoffs, backoff);
2004 erase_spg_mapping(&osd->o_backoff_mappings, spg);
2005 free_spg_mapping(spg);
2036 struct ceph_spg_mapping *spg;
2040 spg = lookup_spg_mapping(&osd->o_backoff_mappings, &req->r_t.spgid);
2041 if (!spg)
2045 backoff = lookup_containing_backoff(&spg->backoffs, &hoid);
2179 encode_spgid(&p, &req->r_t.spgid); /* actual spg */
4414 struct ceph_spg_mapping *spg;
4421 spg = lookup_spg_mapping(&osd->o_backoff_mappings, &m->spgid);
4422 if (!spg) {
4423 spg = alloc_spg_mapping();
4424 if (!spg) {
4425 pr_err("%s failed to allocate spg\n", __func__);
4428 spg->spgid = m->spgid; /* struct */
4429 insert_spg_mapping(&osd->o_backoff_mappings, spg);
4444 insert_backoff(&spg->backoffs, backoff);
4474 struct ceph_spg_mapping *spg;
4497 spg = lookup_spg_mapping(&osd->o_backoff_mappings, &backoff->spgid);
4498 BUG_ON(!spg);
4500 erase_backoff(&spg->backoffs, backoff);
4504 if (RB_EMPTY_ROOT(&spg->backoffs)) {
4505 erase_spg_mapping(&osd->o_backoff_mappings, spg);
4506 free_spg_mapping(spg);