dm.c (917fef6f7ee8b2fe852692ac49771342bfef9433) dm.c (3a83f4677539bce8eaa2bca9ee9c20e172d7ab04)
1/*
2 * Copyright (C) 2001, 2002 Sistina Software (UK) Limited.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This file is released under the GPL.
6 */
7
8#include "dm-core.h"

--- 1409 unchanged lines hidden (view full) ---

1418 destroy_workqueue(md->wq);
1419 if (md->kworker_task)
1420 kthread_stop(md->kworker_task);
1421 mempool_destroy(md->io_pool);
1422 mempool_destroy(md->rq_pool);
1423 if (md->bs)
1424 bioset_free(md->bs);
1425
1/*
2 * Copyright (C) 2001, 2002 Sistina Software (UK) Limited.
3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
4 *
5 * This file is released under the GPL.
6 */
7
8#include "dm-core.h"

--- 1409 unchanged lines hidden (view full) ---

1418 destroy_workqueue(md->wq);
1419 if (md->kworker_task)
1420 kthread_stop(md->kworker_task);
1421 mempool_destroy(md->io_pool);
1422 mempool_destroy(md->rq_pool);
1423 if (md->bs)
1424 bioset_free(md->bs);
1425
1426 cleanup_srcu_struct(&md->io_barrier);
1427
1426 if (md->disk) {
1427 spin_lock(&_minor_lock);
1428 md->disk->private_data = NULL;
1429 spin_unlock(&_minor_lock);
1430 del_gendisk(md->disk);
1431 put_disk(md->disk);
1432 }
1433
1434 if (md->queue)
1435 blk_cleanup_queue(md->queue);
1436
1428 if (md->disk) {
1429 spin_lock(&_minor_lock);
1430 md->disk->private_data = NULL;
1431 spin_unlock(&_minor_lock);
1432 del_gendisk(md->disk);
1433 put_disk(md->disk);
1434 }
1435
1436 if (md->queue)
1437 blk_cleanup_queue(md->queue);
1438
1437 cleanup_srcu_struct(&md->io_barrier);
1438
1439 if (md->bdev) {
1440 bdput(md->bdev);
1441 md->bdev = NULL;
1442 }
1443
1444 dm_mq_cleanup_mapped_device(md);
1445}
1446

--- 73 unchanged lines hidden (view full) ---

1520 md->wq = alloc_workqueue("kdmflush", WQ_MEM_RECLAIM, 0);
1521 if (!md->wq)
1522 goto bad;
1523
1524 md->bdev = bdget_disk(md->disk, 0);
1525 if (!md->bdev)
1526 goto bad;
1527
1439 if (md->bdev) {
1440 bdput(md->bdev);
1441 md->bdev = NULL;
1442 }
1443
1444 dm_mq_cleanup_mapped_device(md);
1445}
1446

--- 73 unchanged lines hidden (view full) ---

1520 md->wq = alloc_workqueue("kdmflush", WQ_MEM_RECLAIM, 0);
1521 if (!md->wq)
1522 goto bad;
1523
1524 md->bdev = bdget_disk(md->disk, 0);
1525 if (!md->bdev)
1526 goto bad;
1527
1528 bio_init(&md->flush_bio);
1528 bio_init(&md->flush_bio, NULL, 0);
1529 md->flush_bio.bi_bdev = md->bdev;
1529 md->flush_bio.bi_bdev = md->bdev;
1530 bio_set_op_attrs(&md->flush_bio, REQ_OP_WRITE, WRITE_FLUSH);
1530 md->flush_bio.bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
1531
1532 dm_stats_init(&md->stats);
1533
1534 /* Populate the mapping, nobody knows we exist yet */
1535 spin_lock(&_minor_lock);
1536 old_md = idr_replace(&_minor_idr, md, minor);
1537 spin_unlock(&_minor_lock);
1538

--- 1219 unchanged lines hidden ---
1531
1532 dm_stats_init(&md->stats);
1533
1534 /* Populate the mapping, nobody knows we exist yet */
1535 spin_lock(&_minor_lock);
1536 old_md = idr_replace(&_minor_idr, md, minor);
1537 spin_unlock(&_minor_lock);
1538

--- 1219 unchanged lines hidden ---