diff options
author | Mike Snitzer <snitzer@redhat.com> | 2016-02-18 03:29:17 +0100 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2016-02-23 04:34:42 +0100 |
commit | 90a4323ccfeaa2ef35a8f4c6443ee5106453d961 (patch) | |
tree | 515f390ae9369e93d0da20e23f9413adeb4173cf | |
parent | dm mpath: push path selector locking down to path selectors (diff) | |
download | linux-90a4323ccfeaa2ef35a8f4c6443ee5106453d961.tar.xz linux-90a4323ccfeaa2ef35a8f4c6443ee5106453d961.zip |
dm path selector: remove 'repeat_count' return from .select_path hook
If a path selector has any use for a repeat_count it should be handled
locally and not depend on the dm-mpath core to be concerned with it.
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
-rw-r--r-- | drivers/md/dm-mpath.c | 3 | ||||
-rw-r--r-- | drivers/md/dm-path-selector.h | 5 | ||||
-rw-r--r-- | drivers/md/dm-queue-length.c | 5 | ||||
-rw-r--r-- | drivers/md/dm-round-robin.c | 4 | ||||
-rw-r--r-- | drivers/md/dm-service-time.c | 5 |
5 files changed, 4 insertions, 18 deletions
diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c index 0c32b2b7856c..09fb205a34a0 100644 --- a/drivers/md/dm-mpath.c +++ b/drivers/md/dm-mpath.c @@ -318,9 +318,8 @@ static int __choose_path_in_pg(struct multipath *m, struct priority_group *pg, size_t nr_bytes) { struct dm_path *path; - unsigned repeat_count; - path = pg->ps.type->select_path(&pg->ps, &repeat_count, nr_bytes); + path = pg->ps.type->select_path(&pg->ps, nr_bytes); if (!path) return -ENXIO; diff --git a/drivers/md/dm-path-selector.h b/drivers/md/dm-path-selector.h index e7d1fa8b0459..b6eb5365b1a4 100644 --- a/drivers/md/dm-path-selector.h +++ b/drivers/md/dm-path-selector.h @@ -50,13 +50,8 @@ struct path_selector_type { /* * Chooses a path for this io, if no paths are available then * NULL will be returned. - * - * repeat_count is the number of times to use the path before - * calling the function again. 0 means don't call it again unless - * the path fails. */ struct dm_path *(*select_path) (struct path_selector *ps, - unsigned *repeat_count, size_t nr_bytes); /* diff --git a/drivers/md/dm-queue-length.c b/drivers/md/dm-queue-length.c index aeea3b7f3d5e..23f178641794 100644 --- a/drivers/md/dm-queue-length.c +++ b/drivers/md/dm-queue-length.c @@ -184,8 +184,7 @@ static int ql_reinstate_path(struct path_selector *ps, struct dm_path *path) /* * Select a path having the minimum number of in-flight I/Os */ -static struct dm_path *ql_select_path(struct path_selector *ps, - unsigned *repeat_count, size_t nr_bytes) +static struct dm_path *ql_select_path(struct path_selector *ps, size_t nr_bytes) { struct selector *s = ps->context; struct path_info *pi = NULL, *best = NULL; @@ -211,8 +210,6 @@ static struct dm_path *ql_select_path(struct path_selector *ps, if (!best) goto out; - *repeat_count = best->repeat_count; - ret = best->path; out: spin_unlock_irqrestore(&s->lock, flags); diff --git a/drivers/md/dm-round-robin.c b/drivers/md/dm-round-robin.c index be9aa7f30b61..0558ab3d7235 100644 --- a/drivers/md/dm-round-robin.c +++ b/drivers/md/dm-round-robin.c @@ -178,8 +178,7 @@ static int rr_reinstate_path(struct path_selector *ps, struct dm_path *p) return 0; } -static struct dm_path *rr_select_path(struct path_selector *ps, - unsigned *repeat_count, size_t nr_bytes) +static struct dm_path *rr_select_path(struct path_selector *ps, size_t nr_bytes) { unsigned long flags; struct selector *s = ps->context; @@ -189,7 +188,6 @@ static struct dm_path *rr_select_path(struct path_selector *ps, if (!list_empty(&s->valid_paths)) { pi = list_entry(s->valid_paths.next, struct path_info, list); list_move_tail(&pi->list, &s->valid_paths); - *repeat_count = pi->repeat_count; } spin_unlock_irqrestore(&s->lock, flags); diff --git a/drivers/md/dm-service-time.c b/drivers/md/dm-service-time.c index d09bcbe3655d..7b8642045c55 100644 --- a/drivers/md/dm-service-time.c +++ b/drivers/md/dm-service-time.c @@ -271,8 +271,7 @@ static int st_compare_load(struct path_info *pi1, struct path_info *pi2, return pi2->relative_throughput - pi1->relative_throughput; } -static struct dm_path *st_select_path(struct path_selector *ps, - unsigned *repeat_count, size_t nr_bytes) +static struct dm_path *st_select_path(struct path_selector *ps, size_t nr_bytes) { struct selector *s = ps->context; struct path_info *pi = NULL, *best = NULL; @@ -293,8 +292,6 @@ static struct dm_path *st_select_path(struct path_selector *ps, if (!best) goto out; - *repeat_count = best->repeat_count; - ret = best->path; out: spin_unlock_irqrestore(&s->lock, flags); |