Lines Matching refs:b
111 nfs4_block_decode_volume(struct xdr_stream *xdr, struct pnfs_block_volume *b) in nfs4_block_decode_volume() argument
119 b->type = be32_to_cpup(p++); in nfs4_block_decode_volume()
121 switch (b->type) { in nfs4_block_decode_volume()
126 b->simple.nr_sigs = be32_to_cpup(p++); in nfs4_block_decode_volume()
127 if (!b->simple.nr_sigs || b->simple.nr_sigs > PNFS_BLOCK_MAX_UUIDS) { in nfs4_block_decode_volume()
128 dprintk("Bad signature count: %d\n", b->simple.nr_sigs); in nfs4_block_decode_volume()
132 b->simple.len = 4 + 4; in nfs4_block_decode_volume()
133 for (i = 0; i < b->simple.nr_sigs; i++) { in nfs4_block_decode_volume()
137 p = xdr_decode_hyper(p, &b->simple.sigs[i].offset); in nfs4_block_decode_volume()
138 b->simple.sigs[i].sig_len = be32_to_cpup(p++); in nfs4_block_decode_volume()
139 if (b->simple.sigs[i].sig_len > PNFS_BLOCK_UUID_LEN) { in nfs4_block_decode_volume()
141 b->simple.sigs[i].sig_len); in nfs4_block_decode_volume()
145 p = xdr_inline_decode(xdr, b->simple.sigs[i].sig_len); in nfs4_block_decode_volume()
148 memcpy(&b->simple.sigs[i].sig, p, in nfs4_block_decode_volume()
149 b->simple.sigs[i].sig_len); in nfs4_block_decode_volume()
151 b->simple.len += 8 + 4 + \ in nfs4_block_decode_volume()
152 (XDR_QUADLEN(b->simple.sigs[i].sig_len) << 2); in nfs4_block_decode_volume()
159 p = xdr_decode_hyper(p, &b->slice.start); in nfs4_block_decode_volume()
160 p = xdr_decode_hyper(p, &b->slice.len); in nfs4_block_decode_volume()
161 b->slice.volume = be32_to_cpup(p++); in nfs4_block_decode_volume()
168 b->concat.volumes_count = be32_to_cpup(p++); in nfs4_block_decode_volume()
169 if (b->concat.volumes_count > PNFS_BLOCK_MAX_DEVICES) { in nfs4_block_decode_volume()
170 dprintk("Too many volumes: %d\n", b->concat.volumes_count); in nfs4_block_decode_volume()
174 p = xdr_inline_decode(xdr, b->concat.volumes_count * 4); in nfs4_block_decode_volume()
177 for (i = 0; i < b->concat.volumes_count; i++) in nfs4_block_decode_volume()
178 b->concat.volumes[i] = be32_to_cpup(p++); in nfs4_block_decode_volume()
185 p = xdr_decode_hyper(p, &b->stripe.chunk_size); in nfs4_block_decode_volume()
186 b->stripe.volumes_count = be32_to_cpup(p++); in nfs4_block_decode_volume()
187 if (b->stripe.volumes_count > PNFS_BLOCK_MAX_DEVICES) { in nfs4_block_decode_volume()
188 dprintk("Too many volumes: %d\n", b->stripe.volumes_count); in nfs4_block_decode_volume()
192 p = xdr_inline_decode(xdr, b->stripe.volumes_count * 4); in nfs4_block_decode_volume()
195 for (i = 0; i < b->stripe.volumes_count; i++) in nfs4_block_decode_volume()
196 b->stripe.volumes[i] = be32_to_cpup(p++); in nfs4_block_decode_volume()
202 b->scsi.code_set = be32_to_cpup(p++); in nfs4_block_decode_volume()
203 b->scsi.designator_type = be32_to_cpup(p++); in nfs4_block_decode_volume()
204 b->scsi.designator_len = be32_to_cpup(p++); in nfs4_block_decode_volume()
205 p = xdr_inline_decode(xdr, b->scsi.designator_len); in nfs4_block_decode_volume()
208 if (b->scsi.designator_len > 256) in nfs4_block_decode_volume()
210 memcpy(&b->scsi.designator, p, b->scsi.designator_len); in nfs4_block_decode_volume()
214 p = xdr_decode_hyper(p, &b->scsi.pr_key); in nfs4_block_decode_volume()