mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-26 14:17:26 -04:00
[SCSI] raid class update
- Update raid class to use nested classes for raid components (this will allow us to move to a component control model now) - Make the raid level an enumeration rather than and int. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
df133c212e
commit
b1081ea6f0
2 changed files with 98 additions and 30 deletions
|
@ -1,4 +1,9 @@
|
|||
/*
|
||||
* raid_class.h - a generic raid visualisation class
|
||||
*
|
||||
* Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com>
|
||||
*
|
||||
* This file is licensed under GPLv2
|
||||
*/
|
||||
#include <linux/transport_class.h>
|
||||
|
||||
|
@ -14,20 +19,35 @@ struct raid_function_template {
|
|||
};
|
||||
|
||||
enum raid_state {
|
||||
RAID_ACTIVE = 1,
|
||||
RAID_DEGRADED,
|
||||
RAID_RESYNCING,
|
||||
RAID_OFFLINE,
|
||||
RAID_STATE_UNKNOWN = 0,
|
||||
RAID_STATE_ACTIVE,
|
||||
RAID_STATE_DEGRADED,
|
||||
RAID_STATE_RESYNCING,
|
||||
RAID_STATE_OFFLINE,
|
||||
};
|
||||
|
||||
enum raid_level {
|
||||
RAID_LEVEL_UNKNOWN = 0,
|
||||
RAID_LEVEL_LINEAR,
|
||||
RAID_LEVEL_0,
|
||||
RAID_LEVEL_1,
|
||||
RAID_LEVEL_3,
|
||||
RAID_LEVEL_4,
|
||||
RAID_LEVEL_5,
|
||||
RAID_LEVEL_6,
|
||||
};
|
||||
|
||||
struct raid_data {
|
||||
struct list_head component_list;
|
||||
int component_count;
|
||||
int level;
|
||||
enum raid_level level;
|
||||
enum raid_state state;
|
||||
int resync;
|
||||
};
|
||||
|
||||
/* resync complete goes from 0 to this */
|
||||
#define RAID_MAX_RESYNC (10000)
|
||||
|
||||
#define DEFINE_RAID_ATTRIBUTE(type, attr) \
|
||||
static inline void \
|
||||
raid_set_##attr(struct raid_template *r, struct device *dev, type value) { \
|
||||
|
@ -48,7 +68,7 @@ raid_get_##attr(struct raid_template *r, struct device *dev) { \
|
|||
return rd->attr; \
|
||||
}
|
||||
|
||||
DEFINE_RAID_ATTRIBUTE(int, level)
|
||||
DEFINE_RAID_ATTRIBUTE(enum raid_level, level)
|
||||
DEFINE_RAID_ATTRIBUTE(int, resync)
|
||||
DEFINE_RAID_ATTRIBUTE(enum raid_state, state)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue