summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/mdadm/files/0001-DDF-Cleanup-validate_geometry_ddf_container.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/mdadm/files/0001-DDF-Cleanup-validate_geometry_ddf_container.patch')
-rw-r--r--meta/recipes-extended/mdadm/files/0001-DDF-Cleanup-validate_geometry_ddf_container.patch148
1 files changed, 148 insertions, 0 deletions
diff --git a/meta/recipes-extended/mdadm/files/0001-DDF-Cleanup-validate_geometry_ddf_container.patch b/meta/recipes-extended/mdadm/files/0001-DDF-Cleanup-validate_geometry_ddf_container.patch
new file mode 100644
index 0000000000..cea435f83b
--- /dev/null
+++ b/meta/recipes-extended/mdadm/files/0001-DDF-Cleanup-validate_geometry_ddf_container.patch
@@ -0,0 +1,148 @@
1From ca458f4dcc4de9403298f67543466ce4bbc8f8ae Mon Sep 17 00:00:00 2001
2From: Logan Gunthorpe <logang@deltatee.com>
3Date: Wed, 22 Jun 2022 14:25:07 -0600
4Subject: [PATCH 1/4] DDF: Cleanup validate_geometry_ddf_container()
5
6Move the function up so that the function declaration is not necessary
7and remove the unused arguments to the function.
8
9No functional changes are intended but will help with a bug fix in the
10next patch.
11
12Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
13Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
14Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
15
16Upstream-Status: Backport
17
18Reference to upstream patch:
19https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=679bd9508a30
20
21Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
22---
23 super-ddf.c | 88 ++++++++++++++++++++++++-----------------------------
24 1 file changed, 39 insertions(+), 49 deletions(-)
25
26diff --git a/super-ddf.c b/super-ddf.c
27index 3f304cd..65cf727 100644
28--- a/super-ddf.c
29+++ b/super-ddf.c
30@@ -503,13 +503,6 @@ struct ddf_super {
31 static int load_super_ddf_all(struct supertype *st, int fd,
32 void **sbp, char *devname);
33 static int get_svd_state(const struct ddf_super *, const struct vcl *);
34-static int
35-validate_geometry_ddf_container(struct supertype *st,
36- int level, int layout, int raiddisks,
37- int chunk, unsigned long long size,
38- unsigned long long data_offset,
39- char *dev, unsigned long long *freesize,
40- int verbose);
41
42 static int validate_geometry_ddf_bvd(struct supertype *st,
43 int level, int layout, int raiddisks,
44@@ -3322,6 +3315,42 @@ static int reserve_space(struct supertype *st, int raiddisks,
45 return 1;
46 }
47
48+static int
49+validate_geometry_ddf_container(struct supertype *st,
50+ int level, int raiddisks,
51+ unsigned long long data_offset,
52+ char *dev, unsigned long long *freesize,
53+ int verbose)
54+{
55+ int fd;
56+ unsigned long long ldsize;
57+
58+ if (level != LEVEL_CONTAINER)
59+ return 0;
60+ if (!dev)
61+ return 1;
62+
63+ fd = dev_open(dev, O_RDONLY|O_EXCL);
64+ if (fd < 0) {
65+ if (verbose)
66+ pr_err("ddf: Cannot open %s: %s\n",
67+ dev, strerror(errno));
68+ return 0;
69+ }
70+ if (!get_dev_size(fd, dev, &ldsize)) {
71+ close(fd);
72+ return 0;
73+ }
74+ close(fd);
75+ if (freesize) {
76+ *freesize = avail_size_ddf(st, ldsize >> 9, INVALID_SECTORS);
77+ if (*freesize == 0)
78+ return 0;
79+ }
80+
81+ return 1;
82+}
83+
84 static int validate_geometry_ddf(struct supertype *st,
85 int level, int layout, int raiddisks,
86 int *chunk, unsigned long long size,
87@@ -3347,11 +3376,9 @@ static int validate_geometry_ddf(struct supertype *st,
88 level = LEVEL_CONTAINER;
89 if (level == LEVEL_CONTAINER) {
90 /* Must be a fresh device to add to a container */
91- return validate_geometry_ddf_container(st, level, layout,
92- raiddisks, *chunk,
93- size, data_offset, dev,
94- freesize,
95- verbose);
96+ return validate_geometry_ddf_container(st, level, raiddisks,
97+ data_offset, dev,
98+ freesize, verbose);
99 }
100
101 if (!dev) {
102@@ -3449,43 +3476,6 @@ static int validate_geometry_ddf(struct supertype *st,
103 return 1;
104 }
105
106-static int
107-validate_geometry_ddf_container(struct supertype *st,
108- int level, int layout, int raiddisks,
109- int chunk, unsigned long long size,
110- unsigned long long data_offset,
111- char *dev, unsigned long long *freesize,
112- int verbose)
113-{
114- int fd;
115- unsigned long long ldsize;
116-
117- if (level != LEVEL_CONTAINER)
118- return 0;
119- if (!dev)
120- return 1;
121-
122- fd = dev_open(dev, O_RDONLY|O_EXCL);
123- if (fd < 0) {
124- if (verbose)
125- pr_err("ddf: Cannot open %s: %s\n",
126- dev, strerror(errno));
127- return 0;
128- }
129- if (!get_dev_size(fd, dev, &ldsize)) {
130- close(fd);
131- return 0;
132- }
133- close(fd);
134- if (freesize) {
135- *freesize = avail_size_ddf(st, ldsize >> 9, INVALID_SECTORS);
136- if (*freesize == 0)
137- return 0;
138- }
139-
140- return 1;
141-}
142-
143 static int validate_geometry_ddf_bvd(struct supertype *st,
144 int level, int layout, int raiddisks,
145 int *chunk, unsigned long long size,
146--
1472.39.1
148