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