Lines Matching refs:b
53 nfs4_block_decode_volume(struct xdr_stream *xdr, struct pnfs_block_volume *b) in nfs4_block_decode_volume() argument
61 b->type = be32_to_cpup(p++); in nfs4_block_decode_volume()
63 switch (b->type) { in nfs4_block_decode_volume()
68 b->simple.nr_sigs = be32_to_cpup(p++); in nfs4_block_decode_volume()
69 if (!b->simple.nr_sigs || b->simple.nr_sigs > PNFS_BLOCK_MAX_UUIDS) { in nfs4_block_decode_volume()
70 dprintk("Bad signature count: %d\n", b->simple.nr_sigs); in nfs4_block_decode_volume()
74 b->simple.len = 4 + 4; in nfs4_block_decode_volume()
75 for (i = 0; i < b->simple.nr_sigs; i++) { in nfs4_block_decode_volume()
79 p = xdr_decode_hyper(p, &b->simple.sigs[i].offset); in nfs4_block_decode_volume()
80 b->simple.sigs[i].sig_len = be32_to_cpup(p++); in nfs4_block_decode_volume()
81 if (b->simple.sigs[i].sig_len > PNFS_BLOCK_UUID_LEN) { in nfs4_block_decode_volume()
83 b->simple.sigs[i].sig_len); in nfs4_block_decode_volume()
87 p = xdr_inline_decode(xdr, b->simple.sigs[i].sig_len); in nfs4_block_decode_volume()
90 memcpy(&b->simple.sigs[i].sig, p, in nfs4_block_decode_volume()
91 b->simple.sigs[i].sig_len); in nfs4_block_decode_volume()
93 b->simple.len += 8 + 4 + \ in nfs4_block_decode_volume()
94 (XDR_QUADLEN(b->simple.sigs[i].sig_len) << 2); in nfs4_block_decode_volume()
101 p = xdr_decode_hyper(p, &b->slice.start); in nfs4_block_decode_volume()
102 p = xdr_decode_hyper(p, &b->slice.len); in nfs4_block_decode_volume()
103 b->slice.volume = be32_to_cpup(p++); in nfs4_block_decode_volume()
110 b->concat.volumes_count = be32_to_cpup(p++); in nfs4_block_decode_volume()
111 if (b->concat.volumes_count > PNFS_BLOCK_MAX_DEVICES) { in nfs4_block_decode_volume()
112 dprintk("Too many volumes: %d\n", b->concat.volumes_count); in nfs4_block_decode_volume()
116 p = xdr_inline_decode(xdr, b->concat.volumes_count * 4); in nfs4_block_decode_volume()
119 for (i = 0; i < b->concat.volumes_count; i++) in nfs4_block_decode_volume()
120 b->concat.volumes[i] = be32_to_cpup(p++); in nfs4_block_decode_volume()
127 p = xdr_decode_hyper(p, &b->stripe.chunk_size); in nfs4_block_decode_volume()
128 b->stripe.volumes_count = be32_to_cpup(p++); in nfs4_block_decode_volume()
129 if (b->stripe.volumes_count > PNFS_BLOCK_MAX_DEVICES) { in nfs4_block_decode_volume()
130 dprintk("Too many volumes: %d\n", b->stripe.volumes_count); in nfs4_block_decode_volume()
134 p = xdr_inline_decode(xdr, b->stripe.volumes_count * 4); in nfs4_block_decode_volume()
137 for (i = 0; i < b->stripe.volumes_count; i++) in nfs4_block_decode_volume()
138 b->stripe.volumes[i] = be32_to_cpup(p++); in nfs4_block_decode_volume()
144 b->scsi.code_set = be32_to_cpup(p++); in nfs4_block_decode_volume()
145 b->scsi.designator_type = be32_to_cpup(p++); in nfs4_block_decode_volume()
146 b->scsi.designator_len = be32_to_cpup(p++); in nfs4_block_decode_volume()
147 p = xdr_inline_decode(xdr, b->scsi.designator_len); in nfs4_block_decode_volume()
150 if (b->scsi.designator_len > 256) in nfs4_block_decode_volume()
152 memcpy(&b->scsi.designator, p, b->scsi.designator_len); in nfs4_block_decode_volume()
156 p = xdr_decode_hyper(p, &b->scsi.pr_key); in nfs4_block_decode_volume()