mirror of
https://github.com/opnsense/src.git
synced 2026-06-06 15:22:34 -04:00
git-subtree-dir: contrib/libdiff git-subtree-mainline:f6d489f402git-subtree-split:9eb461aa4bReviewed by: imp Sponsored by: Klara, Inc.
64 lines
1.6 KiB
Diff
64 lines
1.6 KiB
Diff
--- 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);
|