Lines Matching refs:pii
5603 static void rbd_parent_info_cleanup(struct parent_image_info *pii)
5605 kfree(pii->pool_ns);
5606 kfree(pii->image_id);
5608 memset(pii, 0, sizeof(*pii));
5612 * The caller is responsible for @pii.
5615 struct parent_image_info *pii)
5626 ceph_decode_64_safe(p, end, pii->pool_id, e_inval);
5627 pii->pool_ns = ceph_extract_encoded_string(p, end, NULL, GFP_KERNEL);
5628 if (IS_ERR(pii->pool_ns)) {
5629 ret = PTR_ERR(pii->pool_ns);
5630 pii->pool_ns = NULL;
5633 pii->image_id = ceph_extract_encoded_string(p, end, NULL, GFP_KERNEL);
5634 if (IS_ERR(pii->image_id)) {
5635 ret = PTR_ERR(pii->image_id);
5636 pii->image_id = NULL;
5639 ceph_decode_64_safe(p, end, pii->snap_id, e_inval);
5649 struct parent_image_info *pii)
5664 ret = decode_parent_image_spec(&p, end, pii);
5676 ceph_decode_8_safe(&p, end, pii->has_overlap, e_inval);
5677 if (pii->has_overlap)
5678 ceph_decode_64_safe(&p, end, pii->overlap, e_inval);
5681 __func__, pii->pool_id, pii->pool_ns, pii->image_id, pii->snap_id,
5682 pii->has_overlap, pii->overlap);
5690 * The caller is responsible for @pii.
5695 struct parent_image_info *pii)
5710 ceph_decode_64_safe(&p, end, pii->pool_id, e_inval);
5711 pii->image_id = ceph_extract_encoded_string(&p, end, NULL, GFP_KERNEL);
5712 if (IS_ERR(pii->image_id)) {
5713 ret = PTR_ERR(pii->image_id);
5714 pii->image_id = NULL;
5717 ceph_decode_64_safe(&p, end, pii->snap_id, e_inval);
5718 pii->has_overlap = true;
5719 ceph_decode_64_safe(&p, end, pii->overlap, e_inval);
5722 __func__, pii->pool_id, pii->pool_ns, pii->image_id, pii->snap_id,
5723 pii->has_overlap, pii->overlap);
5731 struct parent_image_info *pii)
5749 ret = __get_parent_info(rbd_dev, req_page, reply_page, pii);
5752 pii);
5762 struct parent_image_info pii = { 0 };
5769 ret = rbd_dev_v2_parent_info(rbd_dev, &pii);
5773 if (pii.pool_id == CEPH_NOPOOL || !pii.has_overlap)
5779 if (pii.pool_id > (u64)U32_MAX) {
5781 (unsigned long long)pii.pool_id, U32_MAX);
5789 parent_spec->pool_id = pii.pool_id;
5790 if (pii.pool_ns && *pii.pool_ns) {
5791 parent_spec->pool_ns = pii.pool_ns;
5792 pii.pool_ns = NULL;
5794 parent_spec->image_id = pii.image_id;
5795 pii.image_id = NULL;
5796 parent_spec->snap_id = pii.snap_id;
5806 if (!pii.overlap)
5808 rbd_dev->parent_overlap = pii.overlap;
5813 rbd_parent_info_cleanup(&pii);
7020 struct parent_image_info *pii)
7022 if (pii->pool_id == CEPH_NOPOOL || !pii->has_overlap) {
7032 * If !pii.has_overlap, the parent image spec is not
7049 if (!pii->overlap && rbd_dev->parent_overlap)
7052 rbd_dev->parent_overlap = pii->overlap;
7059 struct parent_image_info pii = { 0 };
7073 ret = rbd_dev_v2_parent_info(rbd_dev, &pii);
7081 rbd_dev_update_parent(rbd_dev, &pii);
7085 rbd_parent_info_cleanup(&pii);