diff options
| author | Ilya Dryomov <idryomov@gmail.com> | 2017-01-31 09:55:06 -0500 |
|---|---|---|
| committer | Ilya Dryomov <idryomov@gmail.com> | 2017-02-20 06:16:11 -0500 |
| commit | 743efcffffc6620ab44ea9ec67c7e4e28dfa7742 (patch) | |
| tree | a087b21bd95308161d8b14269452efd1e798949d /include/linux/crush | |
| parent | 66a0e2d579dbec5c676cfe446234ffebb267c564 (diff) | |
crush: merge working data and scratch
Much like Arlo Guthrie, I decided that one big pile is better than two
little piles.
Reflects ceph.git commit 95c2df6c7e0b22d2ea9d91db500cf8b9441c73ba.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'include/linux/crush')
| -rw-r--r-- | include/linux/crush/mapper.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/crush/mapper.h b/include/linux/crush/mapper.h index 3303c7fd8a31..c95e19e1ff11 100644 --- a/include/linux/crush/mapper.h +++ b/include/linux/crush/mapper.h | |||
| @@ -15,7 +15,19 @@ extern int crush_do_rule(const struct crush_map *map, | |||
| 15 | int ruleno, | 15 | int ruleno, |
| 16 | int x, int *result, int result_max, | 16 | int x, int *result, int result_max, |
| 17 | const __u32 *weights, int weight_max, | 17 | const __u32 *weights, int weight_max, |
| 18 | void *cwin, int *scratch); | 18 | void *cwin); |
| 19 | |||
| 20 | /* | ||
| 21 | * Returns the exact amount of workspace that will need to be used | ||
| 22 | * for a given combination of crush_map and result_max. The caller can | ||
| 23 | * then allocate this much on its own, either on the stack, in a | ||
| 24 | * per-thread long-lived buffer, or however it likes. | ||
| 25 | */ | ||
| 26 | static inline size_t crush_work_size(const struct crush_map *map, | ||
| 27 | int result_max) | ||
| 28 | { | ||
| 29 | return map->working_size + result_max * 3 * sizeof(__u32); | ||
| 30 | } | ||
| 19 | 31 | ||
| 20 | void crush_init_workspace(const struct crush_map *map, void *v); | 32 | void crush_init_workspace(const struct crush_map *map, void *v); |
| 21 | 33 | ||
