diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-07-14 14:48:22 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-08-29 22:09:26 -0400 |
commit | 36d1c6476be51101778882897b315bd928c8c7b5 (patch) | |
tree | 55b4ecd93ce9c22722c9c9da0dd28a2d2f7c082d /drivers/md/raid5.h | |
parent | a11034b4282515fd7d9f6fdc0a1380781da461c3 (diff) |
md/raid6: move the spare page to a percpu allocation
In preparation for asynchronous handling of raid6 operations move the
spare page to a percpu allocation to allow multiple simultaneous
synchronous raid6 recovery operations.
Make this allocation cpu hotplug aware to maximize allocation
efficiency.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/md/raid5.h')
-rw-r--r-- | drivers/md/raid5.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h index 52ba99954dec..07a7a4102f05 100644 --- a/drivers/md/raid5.h +++ b/drivers/md/raid5.h | |||
@@ -383,8 +383,13 @@ struct raid5_private_data { | |||
383 | * (fresh device added). | 383 | * (fresh device added). |
384 | * Cleared when a sync completes. | 384 | * Cleared when a sync completes. |
385 | */ | 385 | */ |
386 | 386 | /* per cpu variables */ | |
387 | struct page *spare_page; /* Used when checking P/Q in raid6 */ | 387 | struct raid5_percpu { |
388 | struct page *spare_page; /* Used when checking P/Q in raid6 */ | ||
389 | } *percpu; | ||
390 | #ifdef CONFIG_HOTPLUG_CPU | ||
391 | struct notifier_block cpu_notify; | ||
392 | #endif | ||
388 | 393 | ||
389 | /* | 394 | /* |
390 | * Free stripes pool | 395 | * Free stripes pool |