summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
120f767)
Signed-off-by: Neil Brown <neilb@suse.de>
( level <= 0 )
||
assume_clean
( level <= 0 )
||
assume_clean
info.array.state = 1; /* clean, but one+ drive will be missing*/
info.array.state = 1; /* clean, but one+ drive will be missing*/
+ info.resync_start = ~0ULL;
+ } else {
info.array.state = 0; /* not clean, but no errors */
info.array.state = 0; /* not clean, but no errors */
+ info.resync_start = 0;
+ }
if (level == 10) {
/* for raid10, the bitmap size is the capacity of the array,
* which is array.size * raid_disks / ncopies;
if (level == 10) {
/* for raid10, the bitmap size is the capacity of the array,
* which is array.size * raid_disks / ncopies;
new->action_fd = sysfs_open(new->devnum, NULL, "sync_action");
new->info.state_fd = sysfs_open(new->devnum, NULL, "array_state");
new->resync_start_fd = sysfs_open(new->devnum, NULL, "resync_start");
new->action_fd = sysfs_open(new->devnum, NULL, "sync_action");
new->info.state_fd = sysfs_open(new->devnum, NULL, "array_state");
new->resync_start_fd = sysfs_open(new->devnum, NULL, "resync_start");
dprintf("%s: inst: %d action: %d state: %d\n", __func__, atoi(inst),
new->action_fd, new->info.state_fd);
dprintf("%s: inst: %d action: %d state: %d\n", __func__, atoi(inst),
new->action_fd, new->info.state_fd);
void do_manager(struct supertype *container);
int read_dev_state(int fd);
void do_manager(struct supertype *container);
int read_dev_state(int fd);
+int get_resync_start(struct active_array *a);
struct mdstat_ent *mdstat_read(int hold, int start);
struct mdstat_ent *mdstat_read(int hold, int start);
-static int get_resync_start(struct active_array *a)
+int get_resync_start(struct active_array *a)
// info->disk.raid_disk = find refnum in the table and use index;
// info->disk.state = ???;
// info->disk.raid_disk = find refnum in the table and use index;
// info->disk.state = ???;
+ info->container_member = ddf->currentconf->vcnum;
+
info->resync_start = 0;
if (!(ddf->virt->entries[info->container_member].state
& DDF_state_inconsistent) &&
info->resync_start = 0;
if (!(ddf->virt->entries[info->container_member].state
& DDF_state_inconsistent) &&