|
|
@@ -1167,11 +1167,18 @@ static int __load_discards(struct dm_cache_metadata *cmd,
|
|
|
if (r)
|
|
|
return r;
|
|
|
|
|
|
- for (b = 0; b < from_dblock(cmd->discard_nr_blocks); b++) {
|
|
|
+ for (b = 0; ; b++) {
|
|
|
r = fn(context, cmd->discard_block_size, to_dblock(b),
|
|
|
dm_bitset_cursor_get_value(&c));
|
|
|
if (r)
|
|
|
break;
|
|
|
+
|
|
|
+ if (b >= (from_dblock(cmd->discard_nr_blocks) - 1))
|
|
|
+ break;
|
|
|
+
|
|
|
+ r = dm_bitset_cursor_next(&c);
|
|
|
+ if (r)
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
dm_bitset_cursor_end(&c);
|