aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-07-14 14:48:22 -0400
committerDan Williams <dan.j.williams@intel.com>2009-08-29 22:09:26 -0400
commit36d1c6476be51101778882897b315bd928c8c7b5 (patch)
tree55b4ecd93ce9c22722c9c9da0dd28a2d2f7c082d /drivers/md/raid5.h
parenta11034b4282515fd7d9f6fdc0a1380781da461c3 (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.h9
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