Skip to content

Commit ba30585

Browse files
Christoph Hellwigaxboe
authored andcommitted
dm: move setting md->type into dm_setup_md_queue
Move setting md->type from both callers into dm_setup_md_queue. This ensures that md->type is only set to a valid value after the queue has been fully setup, something we'll rely on future changes. Signed-off-by: Christoph Hellwig <[email protected]> Reviewed-by: Mike Snitzer <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
1 parent 74a2b6e commit ba30585

File tree

2 files changed

+3
-6
lines changed

2 files changed

+3
-6
lines changed

drivers/md/dm-ioctl.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,9 +1436,6 @@ static int table_load(struct file *filp, struct dm_ioctl *param, size_t param_si
14361436
}
14371437

14381438
if (dm_get_md_type(md) == DM_TYPE_NONE) {
1439-
/* Initial table load: acquire type of table. */
1440-
dm_set_md_type(md, dm_table_get_type(t));
1441-
14421439
/* setup md->queue to reflect md's type (may block) */
14431440
r = dm_setup_md_queue(md, t);
14441441
if (r) {
@@ -2187,7 +2184,6 @@ int __init dm_early_create(struct dm_ioctl *dmi,
21872184
if (r)
21882185
goto err_destroy_table;
21892186

2190-
md->type = dm_table_get_type(t);
21912187
/* setup md->queue to reflect md's type (may block) */
21922188
r = dm_setup_md_queue(md, t);
21932189
if (r) {

drivers/md/dm.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2052,9 +2052,9 @@ EXPORT_SYMBOL_GPL(dm_get_queue_limits);
20522052
*/
20532053
int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t)
20542054
{
2055-
int r;
2055+
enum dm_queue_mode type = dm_table_get_type(t);
20562056
struct queue_limits limits;
2057-
enum dm_queue_mode type = dm_get_md_type(md);
2057+
int r;
20582058

20592059
switch (type) {
20602060
case DM_TYPE_REQUEST_BASED:
@@ -2081,6 +2081,7 @@ int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t)
20812081
r = dm_table_set_restrictions(t, md->queue, &limits);
20822082
if (r)
20832083
return r;
2084+
md->type = type;
20842085

20852086
blk_register_queue(md->disk);
20862087

0 commit comments

Comments
 (0)