block: make queue flags non-atomic
We can save some atomic ops in the IO path, if we clearly define the rules of how to modify the queue flags. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
@ -873,10 +873,13 @@ void dm_table_set_restrictions(struct dm_table *t, struct request_queue *q)
|
||||
q->max_hw_sectors = t->limits.max_hw_sectors;
|
||||
q->seg_boundary_mask = t->limits.seg_boundary_mask;
|
||||
q->bounce_pfn = t->limits.bounce_pfn;
|
||||
/* XXX: the below will probably go bug. must ensure there can be no
|
||||
* concurrency on queue_flags, and use the unlocked versions...
|
||||
*/
|
||||
if (t->limits.no_cluster)
|
||||
q->queue_flags &= ~(1 << QUEUE_FLAG_CLUSTER);
|
||||
queue_flag_clear(QUEUE_FLAG_CLUSTER, q);
|
||||
else
|
||||
q->queue_flags |= (1 << QUEUE_FLAG_CLUSTER);
|
||||
queue_flag_set(QUEUE_FLAG_CLUSTER, q);
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user