git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git]
/
drivers
/
md
/
multipath.c
diff --git
a/drivers/md/multipath.c
b/drivers/md/multipath.c
index
1cc9de4
..
96f7af4
100644
(file)
--- a/
drivers/md/multipath.c
+++ b/
drivers/md/multipath.c
@@
-35,6
+35,18
@@
#define NR_RESERVED_BUFS 32
#define NR_RESERVED_BUFS 32
+static void *mp_pool_alloc(gfp_t gfp_flags, void *data)
+{
+ struct multipath_bh *mpb;
+ mpb = kzalloc(sizeof(*mpb), gfp_flags);
+ return mpb;
+}
+
+static void mp_pool_free(void *mpb, void *data)
+{
+ kfree(mpb);
+}
+
static int multipath_map (multipath_conf_t *conf)
{
int i, disks = conf->raid_disks;
static int multipath_map (multipath_conf_t *conf)
{
int i, disks = conf->raid_disks;
@@
-482,8
+494,9
@@
static int multipath_run (mddev_t *mddev)
}
mddev->degraded = conf->raid_disks = conf->working_disks;
}
mddev->degraded = conf->raid_disks = conf->working_disks;
- conf->pool = mempool_create_kzalloc_pool(NR_RESERVED_BUFS,
- sizeof(struct multipath_bh));
+ conf->pool = mempool_create(NR_RESERVED_BUFS,
+ mp_pool_alloc, mp_pool_free,
+ NULL);
if (conf->pool == NULL) {
printk(KERN_ERR
"multipath: couldn't allocate memory for %s\n",
if (conf->pool == NULL) {
printk(KERN_ERR
"multipath: couldn't allocate memory for %s\n",