Re: [patch v2 1/1] md: Software Raid autodetect dev list not array

Jan Engelhardt
2007-08-26T12:56:36Z

On Aug 26 2007 04:51, Michael J. Evans wrote:
> {
>- if (dev_cnt >= 0 && dev_cnt < 127)
>- detected_devices[dev_cnt++] = dev;
>+ struct detected_devices_node *node_detected_dev;
>+ node_detected_dev = kzalloc(sizeof(*node_detected_dev), GFP_KERNEL);\

What's the \ good for, besides escaping the newline
that is ignored as whitespace anyway? :-)

>@@ -5772,3 +5790,8 @@ static void autostart_arrays(int part)
>- for (i = 0; i < dev_cnt; i++) {
>- dev_t dev = detected_devices[i];
>-
>+ /* FIXME: max 'int' #DEFINEd somewhere? not 0x7FFFFFFF ? */
>+ while (!list_empty(&all_detected_devices) && i_scanned < 0x7FFFFFFF) {

I doubt someone really has _that_ many devices. Of course, to be on the
safer side, make it an unsigned int. That way, people could put in about
0xFFFFFFFE devs (which is even less likely than 0x7FFFFFFF)

>+ i_scanned++;
>+ node_detected_dev = list_entry(all_detected_devices.next,
>+ struct detected_devices_node, list);
>+ list_del(&node_detected_dev->list);
>+ dev = node_detected_dev->dev;
>+ kfree(node_detected_dev);

Jan
--