Lines Matching refs:pii
5676 static void rbd_parent_info_cleanup(struct parent_image_info *pii)
5678 kfree(pii->pool_ns);
5679 kfree(pii->image_id);
5681 memset(pii, 0, sizeof(*pii));
5685 * The caller is responsible for @pii.
5688 struct parent_image_info *pii)
5699 ceph_decode_64_safe(p, end, pii->pool_id, e_inval);
5700 pii->pool_ns = ceph_extract_encoded_string(p, end, NULL, GFP_KERNEL);
5701 if (IS_ERR(pii->pool_ns)) {
5702 ret = PTR_ERR(pii->pool_ns);
5703 pii->pool_ns = NULL;
5706 pii->image_id = ceph_extract_encoded_string(p, end, NULL, GFP_KERNEL);
5707 if (IS_ERR(pii->image_id)) {
5708 ret = PTR_ERR(pii->image_id);
5709 pii->image_id = NULL;
5712 ceph_decode_64_safe(p, end, pii->snap_id, e_inval);
5722 struct parent_image_info *pii)
5737 ret = decode_parent_image_spec(&p, end, pii);
5749 ceph_decode_8_safe(&p, end, pii->has_overlap, e_inval);
5750 if (pii->has_overlap)
5751 ceph_decode_64_safe(&p, end, pii->overlap, e_inval);
5754 __func__, pii->pool_id, pii->pool_ns, pii->image_id, pii->snap_id,
5755 pii->has_overlap, pii->overlap);
5763 * The caller is responsible for @pii.
5768 struct parent_image_info *pii)
5783 ceph_decode_64_safe(&p, end, pii->pool_id, e_inval);
5784 pii->image_id = ceph_extract_encoded_string(&p, end, NULL, GFP_KERNEL);
5785 if (IS_ERR(pii->image_id)) {
5786 ret = PTR_ERR(pii->image_id);
5787 pii->image_id = NULL;
5790 ceph_decode_64_safe(&p, end, pii->snap_id, e_inval);
5791 pii->has_overlap = true;
5792 ceph_decode_64_safe(&p, end, pii->overlap, e_inval);
5795 __func__, pii->pool_id, pii->pool_ns, pii->image_id, pii->snap_id,
5796 pii->has_overlap, pii->overlap);
5804 struct parent_image_info *pii)
5822 ret = __get_parent_info(rbd_dev, req_page, reply_page, pii);
5825 pii);
5835 struct parent_image_info pii = { 0 };
5842 ret = rbd_dev_v2_parent_info(rbd_dev, &pii);
5846 if (pii.pool_id == CEPH_NOPOOL || !pii.has_overlap)
5852 if (pii.pool_id > (u64)U32_MAX) {
5854 (unsigned long long)pii.pool_id, U32_MAX);
5862 parent_spec->pool_id = pii.pool_id;
5863 if (pii.pool_ns && *pii.pool_ns) {
5864 parent_spec->pool_ns = pii.pool_ns;
5865 pii.pool_ns = NULL;
5867 parent_spec->image_id = pii.image_id;
5868 pii.image_id = NULL;
5869 parent_spec->snap_id = pii.snap_id;
5879 if (!pii.overlap)
5881 rbd_dev->parent_overlap = pii.overlap;
5886 rbd_parent_info_cleanup(&pii);
7092 struct parent_image_info *pii)
7094 if (pii->pool_id == CEPH_NOPOOL || !pii->has_overlap) {
7104 * If !pii.has_overlap, the parent image spec is not
7121 if (!pii->overlap && rbd_dev->parent_overlap)
7124 rbd_dev->parent_overlap = pii->overlap;
7131 struct parent_image_info pii = { 0 };
7145 ret = rbd_dev_v2_parent_info(rbd_dev, &pii);
7153 rbd_dev_update_parent(rbd_dev, &pii);
7157 rbd_parent_info_cleanup(&pii);