[PATCH] MD: generate an event when array sync is complete
am 14.07.2011 22:59:25 von Jonathan Brassow
Neil,
I'm not sure this is the best place in the code to put this (even though
I've tested that it works well). I welcome your corrections.
brassow
This patch causes MD to generate an event (for device-mapper) once array
synchronization is complete. This is expected behavior for device-mapper.
RFC-by: Jonathan Brassow
Index: linux-2.6/drivers/md/md.c
============================================================ =======
--- linux-2.6.orig/drivers/md/md.c
+++ linux-2.6/drivers/md/md.c
@@ -7328,6 +7328,9 @@ void md_check_recovery(mddev_t *mddev)
unlock:
if (!mddev->sync_thread) {
clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery);
+ if (mddev->event_work.func && !mddev->recovery &&
+ (mddev->recovery_cp == MaxSector))
+ queue_work(md_misc_wq, &mddev->event_work);
if (test_and_clear_bit(MD_RECOVERY_RECOVER,
&mddev->recovery))
if (mddev->sysfs_action)
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] MD: generate an event when array sync is complete
am 20.07.2011 03:50:19 von NeilBrown
On Thu, 14 Jul 2011 15:59:25 -0500 Jonathan Brassow
wrote:
> Neil,
>
> I'm not sure this is the best place in the code to put this (even though
> I've tested that it works well). I welcome your corrections.
>
> brassow
>
> This patch causes MD to generate an event (for device-mapper) once array
> synchronization is complete. This is expected behavior for device-mapper.
>
> RFC-by: Jonathan Brassow
>
> Index: linux-2.6/drivers/md/md.c
> ============================================================ =======
> --- linux-2.6.orig/drivers/md/md.c
> +++ linux-2.6/drivers/md/md.c
> @@ -7328,6 +7328,9 @@ void md_check_recovery(mddev_t *mddev)
> unlock:
> if (!mddev->sync_thread) {
> clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery);
> + if (mddev->event_work.func && !mddev->recovery &&
> + (mddev->recovery_cp == MaxSector))
> + queue_work(md_misc_wq, &mddev->event_work);
> if (test_and_clear_bit(MD_RECOVERY_RECOVER,
> &mddev->recovery))
> if (mddev->sysfs_action)
>
>
Hi Jon,
I think reap_sync_thread would be a better place to put this.
Do you really need all the extra tests though? Would it not be OK to just
notify dmeventd if the resync has stopped, and it can figure out what
actually happened and whether anything needs to be done about it?
I'm happy either way - just thought I would mention it.
So resend with the code in reap_sync_thread and I'll apply.
Thanks,
NeilBrown
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] MD: generate an event when array sync is complete
am 20.07.2011 21:16:09 von Jonathan Brassow
Neil,
As you said, reap_sync_thread is a much better place for this patch...
brassow
This patch causes MD to generate an event (for device-mapper) when the
synchronization thread is reaped. This is expected behavior for device-mapper.
Signed-off-by: Jonathan Brassow
Index: linux-2.6/drivers/md/md.c
============================================================ =======
--- linux-2.6.orig/drivers/md/md.c
+++ linux-2.6/drivers/md/md.c
@@ -7148,6 +7148,8 @@ static void reap_sync_thread(mddev_t *md
set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
sysfs_notify_dirent_safe(mddev->sysfs_action);
md_new_event(mddev);
+ if (mddev->event_work.func)
+ queue_work(md_misc_wq, &mddev->event_work);
}
/*
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html