aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-cache-policy.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/dm-cache-policy.h')
-rw-r--r--drivers/md/dm-cache-policy.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/md/dm-cache-policy.h b/drivers/md/dm-cache-policy.h
index 33369ca9614f..052c00a84a5c 100644
--- a/drivers/md/dm-cache-policy.h
+++ b/drivers/md/dm-cache-policy.h
@@ -135,9 +135,6 @@ struct dm_cache_policy {
135 */ 135 */
136 int (*lookup)(struct dm_cache_policy *p, dm_oblock_t oblock, dm_cblock_t *cblock); 136 int (*lookup)(struct dm_cache_policy *p, dm_oblock_t oblock, dm_cblock_t *cblock);
137 137
138 /*
139 * oblock must be a mapped block. Must not block.
140 */
141 void (*set_dirty)(struct dm_cache_policy *p, dm_oblock_t oblock); 138 void (*set_dirty)(struct dm_cache_policy *p, dm_oblock_t oblock);
142 void (*clear_dirty)(struct dm_cache_policy *p, dm_oblock_t oblock); 139 void (*clear_dirty)(struct dm_cache_policy *p, dm_oblock_t oblock);
143 140
@@ -159,8 +156,24 @@ struct dm_cache_policy {
159 void (*force_mapping)(struct dm_cache_policy *p, dm_oblock_t current_oblock, 156 void (*force_mapping)(struct dm_cache_policy *p, dm_oblock_t current_oblock,
160 dm_oblock_t new_oblock); 157 dm_oblock_t new_oblock);
161 158
162 int (*writeback_work)(struct dm_cache_policy *p, dm_oblock_t *oblock, dm_cblock_t *cblock); 159 /*
160 * This is called via the invalidate_cblocks message. It is
161 * possible the particular cblock has already been removed due to a
162 * write io in passthrough mode. In which case this should return
163 * -ENODATA.
164 */
165 int (*remove_cblock)(struct dm_cache_policy *p, dm_cblock_t cblock);
163 166
167 /*
168 * Provide a dirty block to be written back by the core target.
169 *
170 * Returns:
171 *
172 * 0 and @cblock,@oblock: block to write back provided
173 *
174 * -ENODATA: no dirty blocks available
175 */
176 int (*writeback_work)(struct dm_cache_policy *p, dm_oblock_t *oblock, dm_cblock_t *cblock);
164 177
165 /* 178 /*
166 * How full is the cache? 179 * How full is the cache?