diff options
author | Joe Thornber <ejt@redhat.com> | 2012-07-27 10:07:58 -0400 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2012-07-27 10:07:58 -0400 |
commit | 3caf6d73d4dc163b2d135e0b52b052a2b63e5216 (patch) | |
tree | df766d38649d24d3e3967b74ae989251a1241a9c /drivers/md/persistent-data/dm-transaction-manager.c | |
parent | af7346ebbda5f4a95da71359231d32cb136bd246 (diff) |
dm persistent data: remove debug space map checker
Remove debug space map checker from dm persistent data.
The space map checker is a wrapper for other space maps that double
checks the reference counts are correct. It holds all these reference
counts in memory rather than on disk, so uses a lot of memory and is
thus restricted to small pools.
As yet, this checker hasn't found any issues, but has caused a few of
its own due to people turning it on by default with larger pools.
Removing.
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'drivers/md/persistent-data/dm-transaction-manager.c')
-rw-r--r-- | drivers/md/persistent-data/dm-transaction-manager.c | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/drivers/md/persistent-data/dm-transaction-manager.c b/drivers/md/persistent-data/dm-transaction-manager.c index e5604b32d91f..86c3705052a4 100644 --- a/drivers/md/persistent-data/dm-transaction-manager.c +++ b/drivers/md/persistent-data/dm-transaction-manager.c | |||
@@ -5,7 +5,6 @@ | |||
5 | */ | 5 | */ |
6 | #include "dm-transaction-manager.h" | 6 | #include "dm-transaction-manager.h" |
7 | #include "dm-space-map.h" | 7 | #include "dm-space-map.h" |
8 | #include "dm-space-map-checker.h" | ||
9 | #include "dm-space-map-disk.h" | 8 | #include "dm-space-map-disk.h" |
10 | #include "dm-space-map-metadata.h" | 9 | #include "dm-space-map-metadata.h" |
11 | #include "dm-persistent-data-internal.h" | 10 | #include "dm-persistent-data-internal.h" |
@@ -319,15 +318,14 @@ static int dm_tm_create_internal(struct dm_block_manager *bm, | |||
319 | int create) | 318 | int create) |
320 | { | 319 | { |
321 | int r; | 320 | int r; |
322 | struct dm_space_map *inner; | ||
323 | 321 | ||
324 | inner = dm_sm_metadata_init(); | 322 | *sm = dm_sm_metadata_init(); |
325 | if (IS_ERR(inner)) | 323 | if (IS_ERR(*sm)) |
326 | return PTR_ERR(inner); | 324 | return PTR_ERR(*sm); |
327 | 325 | ||
328 | *tm = dm_tm_create(bm, inner); | 326 | *tm = dm_tm_create(bm, *sm); |
329 | if (IS_ERR(*tm)) { | 327 | if (IS_ERR(*tm)) { |
330 | dm_sm_destroy(inner); | 328 | dm_sm_destroy(*sm); |
331 | return PTR_ERR(*tm); | 329 | return PTR_ERR(*tm); |
332 | } | 330 | } |
333 | 331 | ||
@@ -339,19 +337,13 @@ static int dm_tm_create_internal(struct dm_block_manager *bm, | |||
339 | goto bad1; | 337 | goto bad1; |
340 | } | 338 | } |
341 | 339 | ||
342 | r = dm_sm_metadata_create(inner, *tm, dm_bm_nr_blocks(bm), | 340 | r = dm_sm_metadata_create(*sm, *tm, dm_bm_nr_blocks(bm), |
343 | sb_location); | 341 | sb_location); |
344 | if (r) { | 342 | if (r) { |
345 | DMERR("couldn't create metadata space map"); | 343 | DMERR("couldn't create metadata space map"); |
346 | goto bad2; | 344 | goto bad2; |
347 | } | 345 | } |
348 | 346 | ||
349 | *sm = dm_sm_checker_create(inner); | ||
350 | if (IS_ERR(*sm)) { | ||
351 | r = PTR_ERR(*sm); | ||
352 | goto bad2; | ||
353 | } | ||
354 | |||
355 | } else { | 347 | } else { |
356 | r = dm_bm_write_lock(dm_tm_get_bm(*tm), sb_location, | 348 | r = dm_bm_write_lock(dm_tm_get_bm(*tm), sb_location, |
357 | sb_validator, sblock); | 349 | sb_validator, sblock); |
@@ -360,19 +352,13 @@ static int dm_tm_create_internal(struct dm_block_manager *bm, | |||
360 | goto bad1; | 352 | goto bad1; |
361 | } | 353 | } |
362 | 354 | ||
363 | r = dm_sm_metadata_open(inner, *tm, | 355 | r = dm_sm_metadata_open(*sm, *tm, |
364 | dm_block_data(*sblock) + root_offset, | 356 | dm_block_data(*sblock) + root_offset, |
365 | root_max_len); | 357 | root_max_len); |
366 | if (r) { | 358 | if (r) { |
367 | DMERR("couldn't open metadata space map"); | 359 | DMERR("couldn't open metadata space map"); |
368 | goto bad2; | 360 | goto bad2; |
369 | } | 361 | } |
370 | |||
371 | *sm = dm_sm_checker_create(inner); | ||
372 | if (IS_ERR(*sm)) { | ||
373 | r = PTR_ERR(*sm); | ||
374 | goto bad2; | ||
375 | } | ||
376 | } | 362 | } |
377 | 363 | ||
378 | return 0; | 364 | return 0; |
@@ -381,7 +367,6 @@ bad2: | |||
381 | dm_tm_unlock(*tm, *sblock); | 367 | dm_tm_unlock(*tm, *sblock); |
382 | bad1: | 368 | bad1: |
383 | dm_tm_destroy(*tm); | 369 | dm_tm_destroy(*tm); |
384 | dm_sm_destroy(inner); | ||
385 | return r; | 370 | return r; |
386 | } | 371 | } |
387 | 372 | ||