aboutsummaryrefslogtreecommitdiff
path: root/test/expect117.diff
diff options
context:
space:
mode:
Diffstat (limited to 'test/expect117.diff')
-rw-r--r--test/expect117.diff64
1 files changed, 64 insertions, 0 deletions
diff --git a/test/expect117.diff b/test/expect117.diff
new file mode 100644
index 000000000000..63df381db814
--- /dev/null
+++ b/test/expect117.diff
@@ -0,0 +1,64 @@
+--- test117.left-P.txt
++++ test117.right-P.txt
+@@ -65,6 +65,8 @@
+ struct sr_crypto_kdfinfo *, struct sr_crypto_kdfinfo *);
+ int sr_crypto_create(struct sr_discipline *,
+ struct bioc_createraid *, int, int64_t);
++int sr_crypto_init(struct sr_discipline *,
++ struct bioc_createraid *);
+ int sr_crypto_assemble(struct sr_discipline *,
+ struct bioc_createraid *, int, void *);
+ int sr_crypto_alloc_resources(struct sr_discipline *);
+@@ -117,18 +119,34 @@
+ sr_crypto_create(struct sr_discipline *sd, struct bioc_createraid *bc,
+ int no_chunk, int64_t coerced_size)
+ {
+- struct sr_meta_opt_item *omi;
+- int rv = EINVAL;
++ int rv = EINVAL;
+
+ if (no_chunk != 1) {
+ sr_error(sd->sd_sc, "%s requires exactly one chunk",
+ sd->sd_name);
+- goto done;
++ return (rv);
+ }
+
+- if (coerced_size > SR_CRYPTO_MAXSIZE) {
++ sd->sd_meta->ssdi.ssd_size = coerced_size;
++
++ rv = sr_crypto_init(sd, bc);
++ if (rv)
++ return (rv);
++
++ sd->sd_max_ccb_per_wu = no_chunk;
++ return (0);
++}
++
++int
++sr_crypto_init(struct sr_discipline *sd, struct bioc_createraid *bc)
++{
++ struct sr_meta_opt_item *omi;
++ int rv = EINVAL;
++
++ if (sd->sd_meta->ssdi.ssd_size > SR_CRYPTO_MAXSIZE) {
+ sr_error(sd->sd_sc, "%s exceeds maximum size (%lli > %llu)",
+- sd->sd_name, coerced_size, SR_CRYPTO_MAXSIZE);
++ sd->sd_name, sd->sd_meta->ssdi.ssd_size,
++ SR_CRYPTO_MAXSIZE);
+ goto done;
+ }
+
+@@ -170,12 +188,8 @@
+ if (!(bc->bc_flags & BIOC_SCNOAUTOASSEMBLE) && bc->bc_key_disk == NODEV)
+ goto done;
+
+- sd->sd_meta->ssdi.ssd_size = coerced_size;
+-
+ sr_crypto_create_keys(sd);
+
+- sd->sd_max_ccb_per_wu = no_chunk;
+-
+ rv = 0;
+ done:
+ return (rv);