aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/persistent-data/dm-transaction-manager.c
diff options
context:
space:
mode:
authorJoe Thornber <ejt@redhat.com>2012-07-27 10:07:58 -0400
committerAlasdair G Kergon <agk@redhat.com>2012-07-27 10:07:58 -0400
commit3caf6d73d4dc163b2d135e0b52b052a2b63e5216 (patch)
treedf766d38649d24d3e3967b74ae989251a1241a9c /drivers/md/persistent-data/dm-transaction-manager.c
parentaf7346ebbda5f4a95da71359231d32cb136bd246 (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.c29
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);
382bad1: 368bad1:
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