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 <hch@lst.de> Reviewed-by: Mike Snitzer <snitzer@redhat.com> Link: https://lore.kernel.org/r/20210804094147.459763-7-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
74a2b6ec93
commit
ba30585936
|
@ -1436,9 +1436,6 @@ static int table_load(struct file *filp, struct dm_ioctl *param, size_t param_si
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dm_get_md_type(md) == DM_TYPE_NONE) {
|
if (dm_get_md_type(md) == DM_TYPE_NONE) {
|
||||||
/* Initial table load: acquire type of table. */
|
|
||||||
dm_set_md_type(md, dm_table_get_type(t));
|
|
||||||
|
|
||||||
/* setup md->queue to reflect md's type (may block) */
|
/* setup md->queue to reflect md's type (may block) */
|
||||||
r = dm_setup_md_queue(md, t);
|
r = dm_setup_md_queue(md, t);
|
||||||
if (r) {
|
if (r) {
|
||||||
|
@ -2187,7 +2184,6 @@ int __init dm_early_create(struct dm_ioctl *dmi,
|
||||||
if (r)
|
if (r)
|
||||||
goto err_destroy_table;
|
goto err_destroy_table;
|
||||||
|
|
||||||
md->type = dm_table_get_type(t);
|
|
||||||
/* setup md->queue to reflect md's type (may block) */
|
/* setup md->queue to reflect md's type (may block) */
|
||||||
r = dm_setup_md_queue(md, t);
|
r = dm_setup_md_queue(md, t);
|
||||||
if (r) {
|
if (r) {
|
||||||
|
|
|
@ -2052,9 +2052,9 @@ EXPORT_SYMBOL_GPL(dm_get_queue_limits);
|
||||||
*/
|
*/
|
||||||
int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t)
|
int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t)
|
||||||
{
|
{
|
||||||
int r;
|
enum dm_queue_mode type = dm_table_get_type(t);
|
||||||
struct queue_limits limits;
|
struct queue_limits limits;
|
||||||
enum dm_queue_mode type = dm_get_md_type(md);
|
int r;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DM_TYPE_REQUEST_BASED:
|
case DM_TYPE_REQUEST_BASED:
|
||||||
|
@ -2081,6 +2081,7 @@ int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t)
|
||||||
r = dm_table_set_restrictions(t, md->queue, &limits);
|
r = dm_table_set_restrictions(t, md->queue, &limits);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
md->type = type;
|
||||||
|
|
||||||
blk_register_queue(md->disk);
|
blk_register_queue(md->disk);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue