diff options
author | Dan Williams <dan.j.williams@intel.com> | 2008-05-15 16:48:42 +1000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2008-05-15 16:48:42 +1000 |
commit | fd7cde1bf0221049b6359a96ab4c43578897d0ab (patch) | |
tree | f0672b3f63fb41dbae98013a1df50fc1f1d135c6 | |
parent | 845dea950c319ce33c8535cc14a1fddef1c51752 (diff) | |
download | mdadm-fd7cde1bf0221049b6359a96ab4c43578897d0ab.tar.gz mdadm-fd7cde1bf0221049b6359a96ab4c43578897d0ab.tar.xz mdadm-fd7cde1bf0221049b6359a96ab4c43578897d0ab.zip |
handle resync completion
From: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r-- | mdadm.h | 1 | ||||
-rw-r--r-- | monitor.c | 7 | ||||
-rw-r--r-- | super-ddf.c | 6 | ||||
-rw-r--r-- | super-intel.c | 6 |
4 files changed, 16 insertions, 4 deletions
@@ -407,6 +407,7 @@ extern struct superswitch { int (*open_new)(struct supertype *c, struct active_array *a, int inst); void (*mark_clean)(struct active_array *a, unsigned long long sync_pos); void (*mark_dirty)(struct active_array *a); + void (*mark_sync)(struct active_array *a, unsigned long long resync); void (*set_disk)(struct active_array *a, int n); void (*sync_metadata)(struct active_array *a); @@ -274,10 +274,9 @@ static int read_and_act(struct active_array *a) if (a->curr_action == idle && a->prev_action == resync) { - /* check resync_start to see if it is 'max'. - * Do I open here, or have it open the whole time? - */ - get_sync_pos(a); + /* check resync_start to see if it is 'max' */ + get_resync_start(a); + a->container->ss->mark_sync(a, a->resync_start); check_degraded = 1; } diff --git a/super-ddf.c b/super-ddf.c index c11fa1c..8e9cedc 100644 --- a/super-ddf.c +++ b/super-ddf.c @@ -2459,6 +2459,11 @@ static void ddf_mark_dirty(struct active_array *a) fprintf(stderr, "ddf: mark dirty\n"); } +static void ddf_mark_sync(struct active_array *a, unsigned long long resync) +{ + fprintf(stderr, "ddf: mark sync\n"); +} + static void ddf_set_disk(struct active_array *a, int n) { fprintf(stderr, "ddf: set_disk %d\n", n); @@ -2504,6 +2509,7 @@ struct superswitch super_ddf = { .load_super = load_super_ddf, .mark_clean = ddf_mark_clean, .mark_dirty = ddf_mark_dirty, + .mark_sync = ddf_mark_sync, .set_disk = ddf_set_disk, .sync_metadata = ddf_sync_metadata, diff --git a/super-intel.c b/super-intel.c index 9fd4f77..1d00e29 100644 --- a/super-intel.c +++ b/super-intel.c @@ -1132,6 +1132,11 @@ static void imsm_mark_dirty(struct active_array *a) fprintf(stderr, "imsm: mark dirty\n"); } +static void imsm_mark_sync(struct active_array *a, unsigned long long resync) +{ + fprintf(stderr, "imsm: mark sync\n"); +} + static void imsm_set_disk(struct active_array *a, int n) { fprintf(stderr, "imsm: set_disk %d\n", n); @@ -1176,6 +1181,7 @@ struct superswitch super_imsm = { .load_super = load_super_imsm, .mark_clean = imsm_mark_clean, .mark_dirty = imsm_mark_dirty, + .mark_sync = imsm_mark_sync, .set_disk = imsm_set_disk, .sync_metadata = imsm_sync_metadata, }; |