Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[platform/kernel/linux-rpi.git] / drivers / md / raid0.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _RAID0_H
3 #define _RAID0_H
4
5 struct strip_zone {
6         sector_t zone_end;      /* Start of the next zone (in sectors) */
7         sector_t dev_start;     /* Zone offset in real dev (in sectors) */
8         int      nb_dev;        /* # of devices attached to the zone */
9 };
10
11 /* Linux 3.14 (20d0189b101) made an unintended change to
12  * the RAID0 layout for multi-zone arrays (where devices aren't all
13  * the same size.
14  * RAID0_ORIG_LAYOUT restores the original layout
15  * RAID0_ALT_MULTIZONE_LAYOUT uses the altered layout
16  * The layouts are identical when there is only one zone (all
17  * devices the same size).
18  */
19
20 enum r0layout {
21         RAID0_ORIG_LAYOUT = 1,
22         RAID0_ALT_MULTIZONE_LAYOUT = 2,
23 };
24 struct r0conf {
25         struct strip_zone       *strip_zone;
26         struct md_rdev          **devlist; /* lists of rdevs, pointed to
27                                             * by strip_zone->dev */
28         int                     nr_strip_zones;
29         enum r0layout           layout;
30 };
31
32 #endif