Blame


1 6c6e6e50 2020-10-24 neels --- test117.left-P.txt
2 6c6e6e50 2020-10-24 neels +++ test117.right-P.txt
3 6c6e6e50 2020-10-24 neels @@ -65,6 +65,8 @@
4 6c6e6e50 2020-10-24 neels struct sr_crypto_kdfinfo *, struct sr_crypto_kdfinfo *);
5 6c6e6e50 2020-10-24 neels int sr_crypto_create(struct sr_discipline *,
6 6c6e6e50 2020-10-24 neels struct bioc_createraid *, int, int64_t);
7 6c6e6e50 2020-10-24 neels +int sr_crypto_init(struct sr_discipline *,
8 6c6e6e50 2020-10-24 neels + struct bioc_createraid *);
9 6c6e6e50 2020-10-24 neels int sr_crypto_assemble(struct sr_discipline *,
10 6c6e6e50 2020-10-24 neels struct bioc_createraid *, int, void *);
11 6c6e6e50 2020-10-24 neels int sr_crypto_alloc_resources(struct sr_discipline *);
12 6c6e6e50 2020-10-24 neels @@ -117,18 +119,34 @@
13 6c6e6e50 2020-10-24 neels sr_crypto_create(struct sr_discipline *sd, struct bioc_createraid *bc,
14 6c6e6e50 2020-10-24 neels int no_chunk, int64_t coerced_size)
15 6c6e6e50 2020-10-24 neels {
16 6c6e6e50 2020-10-24 neels - struct sr_meta_opt_item *omi;
17 6c6e6e50 2020-10-24 neels - int rv = EINVAL;
18 6c6e6e50 2020-10-24 neels + int rv = EINVAL;
19 6c6e6e50 2020-10-24 neels
20 6c6e6e50 2020-10-24 neels if (no_chunk != 1) {
21 6c6e6e50 2020-10-24 neels sr_error(sd->sd_sc, "%s requires exactly one chunk",
22 6c6e6e50 2020-10-24 neels sd->sd_name);
23 6c6e6e50 2020-10-24 neels - goto done;
24 6c6e6e50 2020-10-24 neels + return (rv);
25 6c6e6e50 2020-10-24 neels }
26 6c6e6e50 2020-10-24 neels
27 6c6e6e50 2020-10-24 neels - if (coerced_size > SR_CRYPTO_MAXSIZE) {
28 6c6e6e50 2020-10-24 neels + sd->sd_meta->ssdi.ssd_size = coerced_size;
29 6c6e6e50 2020-10-24 neels +
30 6c6e6e50 2020-10-24 neels + rv = sr_crypto_init(sd, bc);
31 6c6e6e50 2020-10-24 neels + if (rv)
32 6c6e6e50 2020-10-24 neels + return (rv);
33 6c6e6e50 2020-10-24 neels +
34 6c6e6e50 2020-10-24 neels + sd->sd_max_ccb_per_wu = no_chunk;
35 6c6e6e50 2020-10-24 neels + return (0);
36 6c6e6e50 2020-10-24 neels +}
37 6c6e6e50 2020-10-24 neels +
38 6c6e6e50 2020-10-24 neels +int
39 6c6e6e50 2020-10-24 neels +sr_crypto_init(struct sr_discipline *sd, struct bioc_createraid *bc)
40 6c6e6e50 2020-10-24 neels +{
41 6c6e6e50 2020-10-24 neels + struct sr_meta_opt_item *omi;
42 6c6e6e50 2020-10-24 neels + int rv = EINVAL;
43 6c6e6e50 2020-10-24 neels +
44 6c6e6e50 2020-10-24 neels + if (sd->sd_meta->ssdi.ssd_size > SR_CRYPTO_MAXSIZE) {
45 6c6e6e50 2020-10-24 neels sr_error(sd->sd_sc, "%s exceeds maximum size (%lli > %llu)",
46 6c6e6e50 2020-10-24 neels - sd->sd_name, coerced_size, SR_CRYPTO_MAXSIZE);
47 6c6e6e50 2020-10-24 neels + sd->sd_name, sd->sd_meta->ssdi.ssd_size,
48 6c6e6e50 2020-10-24 neels + SR_CRYPTO_MAXSIZE);
49 6c6e6e50 2020-10-24 neels goto done;
50 6c6e6e50 2020-10-24 neels }
51 6c6e6e50 2020-10-24 neels
52 6c6e6e50 2020-10-24 neels @@ -170,12 +188,8 @@
53 6c6e6e50 2020-10-24 neels if (!(bc->bc_flags & BIOC_SCNOAUTOASSEMBLE) && bc->bc_key_disk == NODEV)
54 6c6e6e50 2020-10-24 neels goto done;
55 6c6e6e50 2020-10-24 neels
56 6c6e6e50 2020-10-24 neels - sd->sd_meta->ssdi.ssd_size = coerced_size;
57 6c6e6e50 2020-10-24 neels -
58 6c6e6e50 2020-10-24 neels sr_crypto_create_keys(sd);
59 6c6e6e50 2020-10-24 neels
60 6c6e6e50 2020-10-24 neels - sd->sd_max_ccb_per_wu = no_chunk;
61 6c6e6e50 2020-10-24 neels -
62 6c6e6e50 2020-10-24 neels rv = 0;
63 6c6e6e50 2020-10-24 neels done:
64 6c6e6e50 2020-10-24 neels return (rv);