projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dm kcopyd: introduce configurable throttling
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
drivers
/
md
/
dm-raid1.c
diff --git
a/drivers/md/dm-raid1.c
b/drivers/md/dm-raid1.c
index
fa51918
..
d053098
100644
(file)
--- a/
drivers/md/dm-raid1.c
+++ b/
drivers/md/dm-raid1.c
@@
-82,6
+82,9
@@
struct mirror_set {
struct mirror mirror[0];
};
struct mirror mirror[0];
};
+DECLARE_DM_KCOPYD_THROTTLE_WITH_MODULE_PARM(raid1_resync_throttle,
+ "A percentage of time allocated for raid resynchronization");
+
static void wakeup_mirrord(void *context)
{
struct mirror_set *ms = context;
static void wakeup_mirrord(void *context)
{
struct mirror_set *ms = context;
@@
-1072,8
+1075,8
@@
static int mirror_ctr(struct dm_target *ti, unsigned int argc, char **argv)
if (r)
goto err_free_context;
if (r)
goto err_free_context;
- ti->num_flush_
request
s = 1;
- ti->num_discard_
request
s = 1;
+ ti->num_flush_
bio
s = 1;
+ ti->num_discard_
bio
s = 1;
ti->per_bio_data_size = sizeof(struct dm_raid1_bio_record);
ti->discard_zeroes_data_unsupported = true;
ti->per_bio_data_size = sizeof(struct dm_raid1_bio_record);
ti->discard_zeroes_data_unsupported = true;
@@
-1111,7
+1114,7
@@
static int mirror_ctr(struct dm_target *ti, unsigned int argc, char **argv)
goto err_destroy_wq;
}
goto err_destroy_wq;
}
- ms->kcopyd_client = dm_kcopyd_client_create();
+ ms->kcopyd_client = dm_kcopyd_client_create(
&dm_kcopyd_throttle
);
if (IS_ERR(ms->kcopyd_client)) {
r = PTR_ERR(ms->kcopyd_client);
goto err_destroy_wq;
if (IS_ERR(ms->kcopyd_client)) {
r = PTR_ERR(ms->kcopyd_client);
goto err_destroy_wq;
@@
-1347,8
+1350,8
@@
static char device_status_char(struct mirror *m)
}
}
-static
int
mirror_status(struct dm_target *ti, status_type_t type,
- unsigned status_flags, char *result, unsigned maxlen)
+static
void
mirror_status(struct dm_target *ti, status_type_t type,
+
unsigned status_flags, char *result, unsigned maxlen)
{
unsigned int m, sz = 0;
struct mirror_set *ms = (struct mirror_set *) ti->private;
{
unsigned int m, sz = 0;
struct mirror_set *ms = (struct mirror_set *) ti->private;
@@
-1383,8
+1386,6
@@
static int mirror_status(struct dm_target *ti, status_type_t type,
if (ms->features & DM_RAID1_HANDLE_ERRORS)
DMEMIT(" 1 handle_errors");
}
if (ms->features & DM_RAID1_HANDLE_ERRORS)
DMEMIT(" 1 handle_errors");
}
-
- return 0;
}
static int mirror_iterate_devices(struct dm_target *ti,
}
static int mirror_iterate_devices(struct dm_target *ti,
@@
-1403,7
+1404,7
@@
static int mirror_iterate_devices(struct dm_target *ti,
static struct target_type mirror_target = {
.name = "mirror",
static struct target_type mirror_target = {
.name = "mirror",
- .version = {1, 13,
1
},
+ .version = {1, 13,
2
},
.module = THIS_MODULE,
.ctr = mirror_ctr,
.dtr = mirror_dtr,
.module = THIS_MODULE,
.ctr = mirror_ctr,
.dtr = mirror_dtr,