* misc struct block_device related driver cleanups
@ 2020-11-16 21:20 ` Christoph Hellwig
0 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: dm-devel, linux-block
Hi Jens, Minchan and Mike,
this series cleans up a few interactions of driver with struct
block_device, in preparation for big changes to struct block_device
that I plan to send soon.
Diffstat:
block/loop.c | 3 -
block/mtip32xx/mtip32xx.c | 15 --------
block/mtip32xx/mtip32xx.h | 2 -
block/zram/zram_drv.c | 83 ++++++++--------------------------------------
block/zram/zram_drv.h | 1
md/dm-core.h | 2 -
md/dm.c | 31 ++++++-----------
7 files changed, 27 insertions(+), 110 deletions(-)
^ permalink raw reply [flat|nested] 24+ messages in thread
* [dm-devel] misc struct block_device related driver cleanups
@ 2020-11-16 21:20 ` Christoph Hellwig
0 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: linux-block, dm-devel
Hi Jens, Minchan and Mike,
this series cleans up a few interactions of driver with struct
block_device, in preparation for big changes to struct block_device
that I plan to send soon.
Diffstat:
block/loop.c | 3 -
block/mtip32xx/mtip32xx.c | 15 --------
block/mtip32xx/mtip32xx.h | 2 -
block/zram/zram_drv.c | 83 ++++++++--------------------------------------
block/zram/zram_drv.h | 1
md/dm-core.h | 2 -
md/dm.c | 31 ++++++-----------
7 files changed, 27 insertions(+), 110 deletions(-)
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 1/6] mtip32xx: remove the call to fsync_bdev on removal
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
@ 2020-11-16 21:20 ` Christoph Hellwig
-1 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: dm-devel, linux-block
del_gendisk already calls fsync_bdev for every partition, no need
to do this twice.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/block/mtip32xx/mtip32xx.c | 15 ---------------
drivers/block/mtip32xx/mtip32xx.h | 2 --
2 files changed, 17 deletions(-)
diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c
index 153e2cdecb4d40..53ac59d19ae530 100644
--- a/drivers/block/mtip32xx/mtip32xx.c
+++ b/drivers/block/mtip32xx/mtip32xx.c
@@ -3687,7 +3687,6 @@ static int mtip_block_initialize(struct driver_data *dd)
/* Enable the block device and add it to /dev */
device_add_disk(&dd->pdev->dev, dd->disk, NULL);
- dd->bdev = bdget_disk(dd->disk, 0);
/*
* Now that the disk is active, initialize any sysfs attributes
* managed by the protocol layer.
@@ -3721,9 +3720,6 @@ static int mtip_block_initialize(struct driver_data *dd)
return rv;
kthread_run_error:
- bdput(dd->bdev);
- dd->bdev = NULL;
-
/* Delete our gendisk. This also removes the device from /dev */
del_gendisk(dd->disk);
@@ -3804,14 +3800,6 @@ static int mtip_block_remove(struct driver_data *dd)
blk_mq_tagset_busy_iter(&dd->tags, mtip_no_dev_cleanup, dd);
blk_mq_unquiesce_queue(dd->queue);
- /*
- * Delete our gendisk structure. This also removes the device
- * from /dev
- */
- if (dd->bdev) {
- bdput(dd->bdev);
- dd->bdev = NULL;
- }
if (dd->disk) {
if (test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag))
del_gendisk(dd->disk);
@@ -4206,9 +4194,6 @@ static void mtip_pci_remove(struct pci_dev *pdev)
} while (atomic_read(&dd->irq_workers_active) != 0 &&
time_before(jiffies, to));
- if (!dd->sr)
- fsync_bdev(dd->bdev);
-
if (atomic_read(&dd->irq_workers_active) != 0) {
dev_warn(&dd->pdev->dev,
"Completion workers still active!\n");
diff --git a/drivers/block/mtip32xx/mtip32xx.h b/drivers/block/mtip32xx/mtip32xx.h
index e22a7f0523bf30..88f4206310e4c8 100644
--- a/drivers/block/mtip32xx/mtip32xx.h
+++ b/drivers/block/mtip32xx/mtip32xx.h
@@ -463,8 +463,6 @@ struct driver_data {
int isr_binding;
- struct block_device *bdev;
-
struct list_head online_list; /* linkage for online list */
struct list_head remove_list; /* linkage for removing list */
--
2.29.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [dm-devel] [PATCH 1/6] mtip32xx: remove the call to fsync_bdev on removal
@ 2020-11-16 21:20 ` Christoph Hellwig
0 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: linux-block, dm-devel
del_gendisk already calls fsync_bdev for every partition, no need
to do this twice.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/block/mtip32xx/mtip32xx.c | 15 ---------------
drivers/block/mtip32xx/mtip32xx.h | 2 --
2 files changed, 17 deletions(-)
diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c
index 153e2cdecb4d40..53ac59d19ae530 100644
--- a/drivers/block/mtip32xx/mtip32xx.c
+++ b/drivers/block/mtip32xx/mtip32xx.c
@@ -3687,7 +3687,6 @@ static int mtip_block_initialize(struct driver_data *dd)
/* Enable the block device and add it to /dev */
device_add_disk(&dd->pdev->dev, dd->disk, NULL);
- dd->bdev = bdget_disk(dd->disk, 0);
/*
* Now that the disk is active, initialize any sysfs attributes
* managed by the protocol layer.
@@ -3721,9 +3720,6 @@ static int mtip_block_initialize(struct driver_data *dd)
return rv;
kthread_run_error:
- bdput(dd->bdev);
- dd->bdev = NULL;
-
/* Delete our gendisk. This also removes the device from /dev */
del_gendisk(dd->disk);
@@ -3804,14 +3800,6 @@ static int mtip_block_remove(struct driver_data *dd)
blk_mq_tagset_busy_iter(&dd->tags, mtip_no_dev_cleanup, dd);
blk_mq_unquiesce_queue(dd->queue);
- /*
- * Delete our gendisk structure. This also removes the device
- * from /dev
- */
- if (dd->bdev) {
- bdput(dd->bdev);
- dd->bdev = NULL;
- }
if (dd->disk) {
if (test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag))
del_gendisk(dd->disk);
@@ -4206,9 +4194,6 @@ static void mtip_pci_remove(struct pci_dev *pdev)
} while (atomic_read(&dd->irq_workers_active) != 0 &&
time_before(jiffies, to));
- if (!dd->sr)
- fsync_bdev(dd->bdev);
-
if (atomic_read(&dd->irq_workers_active) != 0) {
dev_warn(&dd->pdev->dev,
"Completion workers still active!\n");
diff --git a/drivers/block/mtip32xx/mtip32xx.h b/drivers/block/mtip32xx/mtip32xx.h
index e22a7f0523bf30..88f4206310e4c8 100644
--- a/drivers/block/mtip32xx/mtip32xx.h
+++ b/drivers/block/mtip32xx/mtip32xx.h
@@ -463,8 +463,6 @@ struct driver_data {
int isr_binding;
- struct block_device *bdev;
-
struct list_head online_list; /* linkage for online list */
struct list_head remove_list; /* linkage for removing list */
--
2.29.2
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 2/6] zram: remove the claim mechanism
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
@ 2020-11-16 21:20 ` Christoph Hellwig
-1 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: dm-devel, linux-block
The zram claim mechanism was added to ensure no new opens come in
during teardown. But the proper way to archive that is to call
del_gendisk first, which takes care of all that. Once del_gendisk
is called in the right place, the reset side can also be simplified
as no I/O can be outstanding on a block device that is not open.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/block/zram/zram_drv.c | 72 ++++++++---------------------------
1 file changed, 15 insertions(+), 57 deletions(-)
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 6d15d51cee2b7e..2e6d75ec1afddb 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -1756,64 +1756,33 @@ static ssize_t disksize_store(struct device *dev,
static ssize_t reset_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t len)
{
- int ret;
- unsigned short do_reset;
- struct zram *zram;
+ struct zram *zram = dev_to_zram(dev);
struct block_device *bdev;
+ unsigned short do_reset;
+ int ret = 0;
ret = kstrtou16(buf, 10, &do_reset);
if (ret)
return ret;
-
if (!do_reset)
return -EINVAL;
- zram = dev_to_zram(dev);
bdev = bdget_disk(zram->disk, 0);
if (!bdev)
return -ENOMEM;
mutex_lock(&bdev->bd_mutex);
- /* Do not reset an active device or claimed device */
- if (bdev->bd_openers || zram->claim) {
- mutex_unlock(&bdev->bd_mutex);
- bdput(bdev);
- return -EBUSY;
- }
-
- /* From now on, anyone can't open /dev/zram[0-9] */
- zram->claim = true;
+ if (bdev->bd_openers)
+ ret = -EBUSY;
+ else
+ zram_reset_device(zram);
mutex_unlock(&bdev->bd_mutex);
-
- /* Make sure all the pending I/O are finished */
- fsync_bdev(bdev);
- zram_reset_device(zram);
bdput(bdev);
- mutex_lock(&bdev->bd_mutex);
- zram->claim = false;
- mutex_unlock(&bdev->bd_mutex);
-
- return len;
-}
-
-static int zram_open(struct block_device *bdev, fmode_t mode)
-{
- int ret = 0;
- struct zram *zram;
-
- WARN_ON(!mutex_is_locked(&bdev->bd_mutex));
-
- zram = bdev->bd_disk->private_data;
- /* zram was claimed to reset so open request fails */
- if (zram->claim)
- ret = -EBUSY;
-
- return ret;
+ return ret ? ret : len;
}
static const struct block_device_operations zram_devops = {
- .open = zram_open,
.submit_bio = zram_submit_bio,
.swap_slot_free_notify = zram_slot_free_notify,
.rw_page = zram_rw_page,
@@ -1821,7 +1790,6 @@ static const struct block_device_operations zram_devops = {
};
static const struct block_device_operations zram_wb_devops = {
- .open = zram_open,
.submit_bio = zram_submit_bio,
.swap_slot_free_notify = zram_slot_free_notify,
.owner = THIS_MODULE
@@ -1974,32 +1942,22 @@ static int zram_add(void)
static int zram_remove(struct zram *zram)
{
- struct block_device *bdev;
-
- bdev = bdget_disk(zram->disk, 0);
- if (!bdev)
- return -ENOMEM;
+ struct block_device *bdev = bdget_disk(zram->disk, 0);
- mutex_lock(&bdev->bd_mutex);
- if (bdev->bd_openers || zram->claim) {
- mutex_unlock(&bdev->bd_mutex);
+ if (bdev) {
+ if (bdev->bd_openers) {
+ bdput(bdev);
+ return -EBUSY;
+ }
bdput(bdev);
- return -EBUSY;
}
- zram->claim = true;
- mutex_unlock(&bdev->bd_mutex);
-
+ del_gendisk(zram->disk);
zram_debugfs_unregister(zram);
-
- /* Make sure all the pending I/O are finished */
- fsync_bdev(bdev);
zram_reset_device(zram);
- bdput(bdev);
pr_info("Removed device: %s\n", zram->disk->disk_name);
- del_gendisk(zram->disk);
blk_cleanup_queue(zram->disk->queue);
put_disk(zram->disk);
kfree(zram);
--
2.29.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [dm-devel] [PATCH 2/6] zram: remove the claim mechanism
@ 2020-11-16 21:20 ` Christoph Hellwig
0 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: linux-block, dm-devel
The zram claim mechanism was added to ensure no new opens come in
during teardown. But the proper way to archive that is to call
del_gendisk first, which takes care of all that. Once del_gendisk
is called in the right place, the reset side can also be simplified
as no I/O can be outstanding on a block device that is not open.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/block/zram/zram_drv.c | 72 ++++++++---------------------------
1 file changed, 15 insertions(+), 57 deletions(-)
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 6d15d51cee2b7e..2e6d75ec1afddb 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -1756,64 +1756,33 @@ static ssize_t disksize_store(struct device *dev,
static ssize_t reset_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t len)
{
- int ret;
- unsigned short do_reset;
- struct zram *zram;
+ struct zram *zram = dev_to_zram(dev);
struct block_device *bdev;
+ unsigned short do_reset;
+ int ret = 0;
ret = kstrtou16(buf, 10, &do_reset);
if (ret)
return ret;
-
if (!do_reset)
return -EINVAL;
- zram = dev_to_zram(dev);
bdev = bdget_disk(zram->disk, 0);
if (!bdev)
return -ENOMEM;
mutex_lock(&bdev->bd_mutex);
- /* Do not reset an active device or claimed device */
- if (bdev->bd_openers || zram->claim) {
- mutex_unlock(&bdev->bd_mutex);
- bdput(bdev);
- return -EBUSY;
- }
-
- /* From now on, anyone can't open /dev/zram[0-9] */
- zram->claim = true;
+ if (bdev->bd_openers)
+ ret = -EBUSY;
+ else
+ zram_reset_device(zram);
mutex_unlock(&bdev->bd_mutex);
-
- /* Make sure all the pending I/O are finished */
- fsync_bdev(bdev);
- zram_reset_device(zram);
bdput(bdev);
- mutex_lock(&bdev->bd_mutex);
- zram->claim = false;
- mutex_unlock(&bdev->bd_mutex);
-
- return len;
-}
-
-static int zram_open(struct block_device *bdev, fmode_t mode)
-{
- int ret = 0;
- struct zram *zram;
-
- WARN_ON(!mutex_is_locked(&bdev->bd_mutex));
-
- zram = bdev->bd_disk->private_data;
- /* zram was claimed to reset so open request fails */
- if (zram->claim)
- ret = -EBUSY;
-
- return ret;
+ return ret ? ret : len;
}
static const struct block_device_operations zram_devops = {
- .open = zram_open,
.submit_bio = zram_submit_bio,
.swap_slot_free_notify = zram_slot_free_notify,
.rw_page = zram_rw_page,
@@ -1821,7 +1790,6 @@ static const struct block_device_operations zram_devops = {
};
static const struct block_device_operations zram_wb_devops = {
- .open = zram_open,
.submit_bio = zram_submit_bio,
.swap_slot_free_notify = zram_slot_free_notify,
.owner = THIS_MODULE
@@ -1974,32 +1942,22 @@ static int zram_add(void)
static int zram_remove(struct zram *zram)
{
- struct block_device *bdev;
-
- bdev = bdget_disk(zram->disk, 0);
- if (!bdev)
- return -ENOMEM;
+ struct block_device *bdev = bdget_disk(zram->disk, 0);
- mutex_lock(&bdev->bd_mutex);
- if (bdev->bd_openers || zram->claim) {
- mutex_unlock(&bdev->bd_mutex);
+ if (bdev) {
+ if (bdev->bd_openers) {
+ bdput(bdev);
+ return -EBUSY;
+ }
bdput(bdev);
- return -EBUSY;
}
- zram->claim = true;
- mutex_unlock(&bdev->bd_mutex);
-
+ del_gendisk(zram->disk);
zram_debugfs_unregister(zram);
-
- /* Make sure all the pending I/O are finished */
- fsync_bdev(bdev);
zram_reset_device(zram);
- bdput(bdev);
pr_info("Removed device: %s\n", zram->disk->disk_name);
- del_gendisk(zram->disk);
blk_cleanup_queue(zram->disk->queue);
put_disk(zram->disk);
kfree(zram);
--
2.29.2
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 3/6] zram: do not call set_blocksize
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
@ 2020-11-16 21:20 ` Christoph Hellwig
-1 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: dm-devel, linux-block
set_blocksize is used by file systems to use their preferred buffer cache
block size. Block drivers should not set it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/block/zram/zram_drv.c | 11 +----------
drivers/block/zram/zram_drv.h | 1 -
2 files changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 2e6d75ec1afddb..88baa6158eaee1 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -403,13 +403,10 @@ static void reset_bdev(struct zram *zram)
return;
bdev = zram->bdev;
- if (zram->old_block_size)
- set_blocksize(bdev, zram->old_block_size);
blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
/* hope filp_close flush all of IO */
filp_close(zram->backing_dev, NULL);
zram->backing_dev = NULL;
- zram->old_block_size = 0;
zram->bdev = NULL;
zram->disk->fops = &zram_devops;
kvfree(zram->bitmap);
@@ -454,7 +451,7 @@ static ssize_t backing_dev_store(struct device *dev,
struct file *backing_dev = NULL;
struct inode *inode;
struct address_space *mapping;
- unsigned int bitmap_sz, old_block_size = 0;
+ unsigned int bitmap_sz;
unsigned long nr_pages, *bitmap = NULL;
struct block_device *bdev = NULL;
int err;
@@ -509,14 +506,8 @@ static ssize_t backing_dev_store(struct device *dev,
goto out;
}
- old_block_size = block_size(bdev);
- err = set_blocksize(bdev, PAGE_SIZE);
- if (err)
- goto out;
-
reset_bdev(zram);
- zram->old_block_size = old_block_size;
zram->bdev = bdev;
zram->backing_dev = backing_dev;
zram->bitmap = bitmap;
diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h
index f2fd46daa76045..712354a4207c77 100644
--- a/drivers/block/zram/zram_drv.h
+++ b/drivers/block/zram/zram_drv.h
@@ -118,7 +118,6 @@ struct zram {
bool wb_limit_enable;
u64 bd_wb_limit;
struct block_device *bdev;
- unsigned int old_block_size;
unsigned long *bitmap;
unsigned long nr_pages;
#endif
--
2.29.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [dm-devel] [PATCH 3/6] zram: do not call set_blocksize
@ 2020-11-16 21:20 ` Christoph Hellwig
0 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: linux-block, dm-devel
set_blocksize is used by file systems to use their preferred buffer cache
block size. Block drivers should not set it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/block/zram/zram_drv.c | 11 +----------
drivers/block/zram/zram_drv.h | 1 -
2 files changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 2e6d75ec1afddb..88baa6158eaee1 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -403,13 +403,10 @@ static void reset_bdev(struct zram *zram)
return;
bdev = zram->bdev;
- if (zram->old_block_size)
- set_blocksize(bdev, zram->old_block_size);
blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
/* hope filp_close flush all of IO */
filp_close(zram->backing_dev, NULL);
zram->backing_dev = NULL;
- zram->old_block_size = 0;
zram->bdev = NULL;
zram->disk->fops = &zram_devops;
kvfree(zram->bitmap);
@@ -454,7 +451,7 @@ static ssize_t backing_dev_store(struct device *dev,
struct file *backing_dev = NULL;
struct inode *inode;
struct address_space *mapping;
- unsigned int bitmap_sz, old_block_size = 0;
+ unsigned int bitmap_sz;
unsigned long nr_pages, *bitmap = NULL;
struct block_device *bdev = NULL;
int err;
@@ -509,14 +506,8 @@ static ssize_t backing_dev_store(struct device *dev,
goto out;
}
- old_block_size = block_size(bdev);
- err = set_blocksize(bdev, PAGE_SIZE);
- if (err)
- goto out;
-
reset_bdev(zram);
- zram->old_block_size = old_block_size;
zram->bdev = bdev;
zram->backing_dev = backing_dev;
zram->bitmap = bitmap;
diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h
index f2fd46daa76045..712354a4207c77 100644
--- a/drivers/block/zram/zram_drv.h
+++ b/drivers/block/zram/zram_drv.h
@@ -118,7 +118,6 @@ struct zram {
bool wb_limit_enable;
u64 bd_wb_limit;
struct block_device *bdev;
- unsigned int old_block_size;
unsigned long *bitmap;
unsigned long nr_pages;
#endif
--
2.29.2
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 4/6] loop: do not call set_blocksize
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
@ 2020-11-16 21:20 ` Christoph Hellwig
-1 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: dm-devel, linux-block
set_blocksize is used by file systems to use their preferred buffer cache
block size. Block drivers should not set it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/block/loop.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 9a27d4f1c08aac..b42c728620c9e4 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -1164,9 +1164,6 @@ static int loop_configure(struct loop_device *lo, fmode_t mode,
size = get_loop_size(lo, file);
loop_set_size(lo, size);
- set_blocksize(bdev, S_ISBLK(inode->i_mode) ?
- block_size(inode->i_bdev) : PAGE_SIZE);
-
lo->lo_state = Lo_bound;
if (part_shift)
lo->lo_flags |= LO_FLAGS_PARTSCAN;
--
2.29.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [dm-devel] [PATCH 4/6] loop: do not call set_blocksize
@ 2020-11-16 21:20 ` Christoph Hellwig
0 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: linux-block, dm-devel
set_blocksize is used by file systems to use their preferred buffer cache
block size. Block drivers should not set it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/block/loop.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 9a27d4f1c08aac..b42c728620c9e4 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -1164,9 +1164,6 @@ static int loop_configure(struct loop_device *lo, fmode_t mode,
size = get_loop_size(lo, file);
loop_set_size(lo, size);
- set_blocksize(bdev, S_ISBLK(inode->i_mode) ?
- block_size(inode->i_bdev) : PAGE_SIZE);
-
lo->lo_state = Lo_bound;
if (part_shift)
lo->lo_flags |= LO_FLAGS_PARTSCAN;
--
2.29.2
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 5/6] dm: simplify flush_bio initialization in __send_empty_flush
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
@ 2020-11-16 21:20 ` Christoph Hellwig
-1 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: dm-devel, linux-block
We don't really need the struct block_device to initialize a bio. So
switch from using bio_set_dev to manually setting up bi_disk (bi_partno
will always be zero and has been cleared by bio_init already).
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/md/dm.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 54739f1b579bc8..6d7eb72d41f9ea 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1422,18 +1422,12 @@ static int __send_empty_flush(struct clone_info *ci)
*/
bio_init(&flush_bio, NULL, 0);
flush_bio.bi_opf = REQ_OP_WRITE | REQ_PREFLUSH | REQ_SYNC;
+ flush_bio.bi_disk = ci->io->md->disk;
+ bio_associate_blkg(&flush_bio);
+
ci->bio = &flush_bio;
ci->sector_count = 0;
- /*
- * Empty flush uses a statically initialized bio, as the base for
- * cloning. However, blkg association requires that a bdev is
- * associated with a gendisk, which doesn't happen until the bdev is
- * opened. So, blkg association is done at issue time of the flush
- * rather than when the device is created in alloc_dev().
- */
- bio_set_dev(ci->bio, ci->io->md->bdev);
-
BUG_ON(bio_has_data(ci->bio));
while ((ti = dm_table_get_target(ci->map, target_nr++)))
__send_duplicate_bios(ci, ti, ti->num_flush_bios, NULL);
--
2.29.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [dm-devel] [PATCH 5/6] dm: simplify flush_bio initialization in __send_empty_flush
@ 2020-11-16 21:20 ` Christoph Hellwig
0 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: linux-block, dm-devel
We don't really need the struct block_device to initialize a bio. So
switch from using bio_set_dev to manually setting up bi_disk (bi_partno
will always be zero and has been cleared by bio_init already).
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/md/dm.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 54739f1b579bc8..6d7eb72d41f9ea 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1422,18 +1422,12 @@ static int __send_empty_flush(struct clone_info *ci)
*/
bio_init(&flush_bio, NULL, 0);
flush_bio.bi_opf = REQ_OP_WRITE | REQ_PREFLUSH | REQ_SYNC;
+ flush_bio.bi_disk = ci->io->md->disk;
+ bio_associate_blkg(&flush_bio);
+
ci->bio = &flush_bio;
ci->sector_count = 0;
- /*
- * Empty flush uses a statically initialized bio, as the base for
- * cloning. However, blkg association requires that a bdev is
- * associated with a gendisk, which doesn't happen until the bdev is
- * opened. So, blkg association is done at issue time of the flush
- * rather than when the device is created in alloc_dev().
- */
- bio_set_dev(ci->bio, ci->io->md->bdev);
-
BUG_ON(bio_has_data(ci->bio));
while ((ti = dm_table_get_target(ci->map, target_nr++)))
__send_duplicate_bios(ci, ti, ti->num_flush_bios, NULL);
--
2.29.2
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 6/6] dm: remove the block_device reference in struct mapped_device
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
@ 2020-11-16 21:20 ` Christoph Hellwig
-1 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: dm-devel, linux-block
Get rid of the long-lasting struct block_device reference in
struct mapped_device. The only remaining user is the freeze code,
where we can trivially look up the block device at freeze time
and release the reference at thaw time.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/md/dm-core.h | 2 --
drivers/md/dm.c | 19 ++++++++-----------
2 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/drivers/md/dm-core.h b/drivers/md/dm-core.h
index d522093cb39dda..b1b400ed76fe90 100644
--- a/drivers/md/dm-core.h
+++ b/drivers/md/dm-core.h
@@ -107,8 +107,6 @@ struct mapped_device {
/* kobject and completion */
struct dm_kobject_holder kobj_holder;
- struct block_device *bdev;
-
struct dm_stats stats;
/* for blk-mq request-based DM support */
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 6d7eb72d41f9ea..83fe1e7f13e6b0 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1744,11 +1744,6 @@ static void cleanup_mapped_device(struct mapped_device *md)
cleanup_srcu_struct(&md->io_barrier);
- if (md->bdev) {
- bdput(md->bdev);
- md->bdev = NULL;
- }
-
mutex_destroy(&md->suspend_lock);
mutex_destroy(&md->type_lock);
mutex_destroy(&md->table_devices_lock);
@@ -1840,10 +1835,6 @@ static struct mapped_device *alloc_dev(int minor)
if (!md->wq)
goto bad;
- md->bdev = bdget_disk(md->disk, 0);
- if (!md->bdev)
- goto bad;
-
dm_stats_init(&md->stats);
/* Populate the mapping, nobody knows we exist yet */
@@ -2384,12 +2375,17 @@ struct dm_table *dm_swap_table(struct mapped_device *md, struct dm_table *table)
*/
static int lock_fs(struct mapped_device *md)
{
+ struct block_device *bdev;
int r;
WARN_ON(md->frozen_sb);
- md->frozen_sb = freeze_bdev(md->bdev);
+ bdev = bdget_disk(md->disk, 0);
+ if (!bdev)
+ return -ENOMEM;
+ md->frozen_sb = freeze_bdev(bdev);
if (IS_ERR(md->frozen_sb)) {
+ bdput(bdev);
r = PTR_ERR(md->frozen_sb);
md->frozen_sb = NULL;
return r;
@@ -2405,7 +2401,8 @@ static void unlock_fs(struct mapped_device *md)
if (!test_bit(DMF_FROZEN, &md->flags))
return;
- thaw_bdev(md->bdev, md->frozen_sb);
+ thaw_bdev(md->frozen_sb->s_bdev, md->frozen_sb);
+ bdput(md->frozen_sb->s_bdev);
md->frozen_sb = NULL;
clear_bit(DMF_FROZEN, &md->flags);
}
--
2.29.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [dm-devel] [PATCH 6/6] dm: remove the block_device reference in struct mapped_device
@ 2020-11-16 21:20 ` Christoph Hellwig
0 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-16 21:20 UTC (permalink / raw)
To: Jens Axboe, Minchan Kim, Mike Snitzer; +Cc: linux-block, dm-devel
Get rid of the long-lasting struct block_device reference in
struct mapped_device. The only remaining user is the freeze code,
where we can trivially look up the block device at freeze time
and release the reference at thaw time.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/md/dm-core.h | 2 --
drivers/md/dm.c | 19 ++++++++-----------
2 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/drivers/md/dm-core.h b/drivers/md/dm-core.h
index d522093cb39dda..b1b400ed76fe90 100644
--- a/drivers/md/dm-core.h
+++ b/drivers/md/dm-core.h
@@ -107,8 +107,6 @@ struct mapped_device {
/* kobject and completion */
struct dm_kobject_holder kobj_holder;
- struct block_device *bdev;
-
struct dm_stats stats;
/* for blk-mq request-based DM support */
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 6d7eb72d41f9ea..83fe1e7f13e6b0 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1744,11 +1744,6 @@ static void cleanup_mapped_device(struct mapped_device *md)
cleanup_srcu_struct(&md->io_barrier);
- if (md->bdev) {
- bdput(md->bdev);
- md->bdev = NULL;
- }
-
mutex_destroy(&md->suspend_lock);
mutex_destroy(&md->type_lock);
mutex_destroy(&md->table_devices_lock);
@@ -1840,10 +1835,6 @@ static struct mapped_device *alloc_dev(int minor)
if (!md->wq)
goto bad;
- md->bdev = bdget_disk(md->disk, 0);
- if (!md->bdev)
- goto bad;
-
dm_stats_init(&md->stats);
/* Populate the mapping, nobody knows we exist yet */
@@ -2384,12 +2375,17 @@ struct dm_table *dm_swap_table(struct mapped_device *md, struct dm_table *table)
*/
static int lock_fs(struct mapped_device *md)
{
+ struct block_device *bdev;
int r;
WARN_ON(md->frozen_sb);
- md->frozen_sb = freeze_bdev(md->bdev);
+ bdev = bdget_disk(md->disk, 0);
+ if (!bdev)
+ return -ENOMEM;
+ md->frozen_sb = freeze_bdev(bdev);
if (IS_ERR(md->frozen_sb)) {
+ bdput(bdev);
r = PTR_ERR(md->frozen_sb);
md->frozen_sb = NULL;
return r;
@@ -2405,7 +2401,8 @@ static void unlock_fs(struct mapped_device *md)
if (!test_bit(DMF_FROZEN, &md->flags))
return;
- thaw_bdev(md->bdev, md->frozen_sb);
+ thaw_bdev(md->frozen_sb->s_bdev, md->frozen_sb);
+ bdput(md->frozen_sb->s_bdev);
md->frozen_sb = NULL;
clear_bit(DMF_FROZEN, &md->flags);
}
--
2.29.2
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: misc struct block_device related driver cleanups
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
@ 2020-11-17 15:46 ` Mike Snitzer
-1 siblings, 0 replies; 24+ messages in thread
From: Mike Snitzer @ 2020-11-17 15:46 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Jens Axboe, Minchan Kim, dm-devel, linux-block
On Mon, Nov 16 2020 at 4:20pm -0500,
Christoph Hellwig <hch@lst.de> wrote:
> Hi Jens, Minchan and Mike,
>
> this series cleans up a few interactions of driver with struct
> block_device, in preparation for big changes to struct block_device
> that I plan to send soon.
Thanks, I've picked up 5 and 6 for 5.11.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [dm-devel] misc struct block_device related driver cleanups
@ 2020-11-17 15:46 ` Mike Snitzer
0 siblings, 0 replies; 24+ messages in thread
From: Mike Snitzer @ 2020-11-17 15:46 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Jens Axboe, Minchan Kim, dm-devel, linux-block
On Mon, Nov 16 2020 at 4:20pm -0500,
Christoph Hellwig <hch@lst.de> wrote:
> Hi Jens, Minchan and Mike,
>
> this series cleans up a few interactions of driver with struct
> block_device, in preparation for big changes to struct block_device
> that I plan to send soon.
Thanks, I've picked up 5 and 6 for 5.11.
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: misc struct block_device related driver cleanups
2020-11-17 15:46 ` [dm-devel] " Mike Snitzer
@ 2020-11-17 15:51 ` Christoph Hellwig
-1 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-17 15:51 UTC (permalink / raw)
To: Mike Snitzer
Cc: Christoph Hellwig, Jens Axboe, Minchan Kim, dm-devel, linux-block
On Tue, Nov 17, 2020 at 10:46:29AM -0500, Mike Snitzer wrote:
> On Mon, Nov 16 2020 at 4:20pm -0500,
> Christoph Hellwig <hch@lst.de> wrote:
>
> > Hi Jens, Minchan and Mike,
> >
> > this series cleans up a few interactions of driver with struct
> > block_device, in preparation for big changes to struct block_device
> > that I plan to send soon.
>
> Thanks, I've picked up 5 and 6 for 5.11.
I actually need them in Jens' for-5.11/block tree for my next series..
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [dm-devel] misc struct block_device related driver cleanups
@ 2020-11-17 15:51 ` Christoph Hellwig
0 siblings, 0 replies; 24+ messages in thread
From: Christoph Hellwig @ 2020-11-17 15:51 UTC (permalink / raw)
To: Mike Snitzer
Cc: Jens Axboe, Minchan Kim, dm-devel, linux-block, Christoph Hellwig
On Tue, Nov 17, 2020 at 10:46:29AM -0500, Mike Snitzer wrote:
> On Mon, Nov 16 2020 at 4:20pm -0500,
> Christoph Hellwig <hch@lst.de> wrote:
>
> > Hi Jens, Minchan and Mike,
> >
> > this series cleans up a few interactions of driver with struct
> > block_device, in preparation for big changes to struct block_device
> > that I plan to send soon.
>
> Thanks, I've picked up 5 and 6 for 5.11.
I actually need them in Jens' for-5.11/block tree for my next series..
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: misc struct block_device related driver cleanups
2020-11-17 15:51 ` [dm-devel] " Christoph Hellwig
@ 2020-11-17 16:09 ` Mike Snitzer
-1 siblings, 0 replies; 24+ messages in thread
From: Mike Snitzer @ 2020-11-17 16:09 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Jens Axboe, Minchan Kim, dm-devel, linux-block
On Tue, Nov 17 2020 at 10:51am -0500,
Christoph Hellwig <hch@lst.de> wrote:
> On Tue, Nov 17, 2020 at 10:46:29AM -0500, Mike Snitzer wrote:
> > On Mon, Nov 16 2020 at 4:20pm -0500,
> > Christoph Hellwig <hch@lst.de> wrote:
> >
> > > Hi Jens, Minchan and Mike,
> > >
> > > this series cleans up a few interactions of driver with struct
> > > block_device, in preparation for big changes to struct block_device
> > > that I plan to send soon.
> >
> > Thanks, I've picked up 5 and 6 for 5.11.
>
> I actually need them in Jens' for-5.11/block tree for my next series..
Ah, OK.. no problem.
I'll reply with my Acked-by:s
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [dm-devel] misc struct block_device related driver cleanups
@ 2020-11-17 16:09 ` Mike Snitzer
0 siblings, 0 replies; 24+ messages in thread
From: Mike Snitzer @ 2020-11-17 16:09 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Jens Axboe, Minchan Kim, dm-devel, linux-block
On Tue, Nov 17 2020 at 10:51am -0500,
Christoph Hellwig <hch@lst.de> wrote:
> On Tue, Nov 17, 2020 at 10:46:29AM -0500, Mike Snitzer wrote:
> > On Mon, Nov 16 2020 at 4:20pm -0500,
> > Christoph Hellwig <hch@lst.de> wrote:
> >
> > > Hi Jens, Minchan and Mike,
> > >
> > > this series cleans up a few interactions of driver with struct
> > > block_device, in preparation for big changes to struct block_device
> > > that I plan to send soon.
> >
> > Thanks, I've picked up 5 and 6 for 5.11.
>
> I actually need them in Jens' for-5.11/block tree for my next series..
Ah, OK.. no problem.
I'll reply with my Acked-by:s
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 5/6] dm: simplify flush_bio initialization in __send_empty_flush
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
@ 2020-11-17 16:10 ` Mike Snitzer
-1 siblings, 0 replies; 24+ messages in thread
From: Mike Snitzer @ 2020-11-17 16:10 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Jens Axboe, Minchan Kim, dm-devel, linux-block
On Mon, Nov 16 2020 at 4:20pm -0500,
Christoph Hellwig <hch@lst.de> wrote:
> We don't really need the struct block_device to initialize a bio. So
> switch from using bio_set_dev to manually setting up bi_disk (bi_partno
> will always be zero and has been cleared by bio_init already).
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Mike Snitzer <snitzer@redhat.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [dm-devel] [PATCH 5/6] dm: simplify flush_bio initialization in __send_empty_flush
@ 2020-11-17 16:10 ` Mike Snitzer
0 siblings, 0 replies; 24+ messages in thread
From: Mike Snitzer @ 2020-11-17 16:10 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Jens Axboe, Minchan Kim, dm-devel, linux-block
On Mon, Nov 16 2020 at 4:20pm -0500,
Christoph Hellwig <hch@lst.de> wrote:
> We don't really need the struct block_device to initialize a bio. So
> switch from using bio_set_dev to manually setting up bi_disk (bi_partno
> will always be zero and has been cleared by bio_init already).
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Mike Snitzer <snitzer@redhat.com>
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 6/6] dm: remove the block_device reference in struct mapped_device
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
@ 2020-11-17 16:11 ` Mike Snitzer
-1 siblings, 0 replies; 24+ messages in thread
From: Mike Snitzer @ 2020-11-17 16:11 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Jens Axboe, Minchan Kim, dm-devel, linux-block
On Mon, Nov 16 2020 at 4:20pm -0500,
Christoph Hellwig <hch@lst.de> wrote:
> Get rid of the long-lasting struct block_device reference in
> struct mapped_device. The only remaining user is the freeze code,
> where we can trivially look up the block device at freeze time
> and release the reference at thaw time.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Mike Snitzer <snitzer@redhat.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [dm-devel] [PATCH 6/6] dm: remove the block_device reference in struct mapped_device
@ 2020-11-17 16:11 ` Mike Snitzer
0 siblings, 0 replies; 24+ messages in thread
From: Mike Snitzer @ 2020-11-17 16:11 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Jens Axboe, Minchan Kim, dm-devel, linux-block
On Mon, Nov 16 2020 at 4:20pm -0500,
Christoph Hellwig <hch@lst.de> wrote:
> Get rid of the long-lasting struct block_device reference in
> struct mapped_device. The only remaining user is the freeze code,
> where we can trivially look up the block device at freeze time
> and release the reference at thaw time.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Mike Snitzer <snitzer@redhat.com>
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2020-11-17 17:03 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-16 21:20 misc struct block_device related driver cleanups Christoph Hellwig
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
2020-11-16 21:20 ` [PATCH 1/6] mtip32xx: remove the call to fsync_bdev on removal Christoph Hellwig
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
2020-11-16 21:20 ` [PATCH 2/6] zram: remove the claim mechanism Christoph Hellwig
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
2020-11-16 21:20 ` [PATCH 3/6] zram: do not call set_blocksize Christoph Hellwig
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
2020-11-16 21:20 ` [PATCH 4/6] loop: " Christoph Hellwig
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
2020-11-16 21:20 ` [PATCH 5/6] dm: simplify flush_bio initialization in __send_empty_flush Christoph Hellwig
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
2020-11-17 16:10 ` Mike Snitzer
2020-11-17 16:10 ` [dm-devel] " Mike Snitzer
2020-11-16 21:20 ` [PATCH 6/6] dm: remove the block_device reference in struct mapped_device Christoph Hellwig
2020-11-16 21:20 ` [dm-devel] " Christoph Hellwig
2020-11-17 16:11 ` Mike Snitzer
2020-11-17 16:11 ` [dm-devel] " Mike Snitzer
2020-11-17 15:46 ` misc struct block_device related driver cleanups Mike Snitzer
2020-11-17 15:46 ` [dm-devel] " Mike Snitzer
2020-11-17 15:51 ` Christoph Hellwig
2020-11-17 15:51 ` [dm-devel] " Christoph Hellwig
2020-11-17 16:09 ` Mike Snitzer
2020-11-17 16:09 ` [dm-devel] " Mike Snitzer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.