aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorMarkus Pargmann <mpa@pengutronix.de>2015-10-29 07:06:15 -0400
committerMarkus Pargmann <mpa@pengutronix.de>2016-02-05 02:52:33 -0500
commitd02cf53107792df373558851d6162dc4e4ceb95a (patch)
tree670e8f839edac965a72446ea3a4d70f86ed4ef2e /drivers/block
parent0e4f0f6f63d3416a9e529d99febfe98545427b81 (diff)
nbd: Move flag parsing to a function
nbd changes properties of the blockdevice depending on flags that were received. This patch moves this flag parsing into a separate function nbd_parse_flags(). Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/nbd.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 34a46c32c24f..b67500d5b338 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -641,6 +641,18 @@ static void nbd_bdev_reset(struct block_device *bdev)
641 } 641 }
642} 642}
643 643
644static void nbd_parse_flags(struct nbd_device *nbd, struct block_device *bdev)
645{
646 if (nbd->flags & NBD_FLAG_READ_ONLY)
647 set_device_ro(bdev, true);
648 if (nbd->flags & NBD_FLAG_SEND_TRIM)
649 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, nbd->disk->queue);
650 if (nbd->flags & NBD_FLAG_SEND_FLUSH)
651 blk_queue_flush(nbd->disk->queue, REQ_FLUSH);
652 else
653 blk_queue_flush(nbd->disk->queue, 0);
654}
655
644static int nbd_dev_dbg_init(struct nbd_device *nbd); 656static int nbd_dev_dbg_init(struct nbd_device *nbd);
645static void nbd_dev_dbg_close(struct nbd_device *nbd); 657static void nbd_dev_dbg_close(struct nbd_device *nbd);
646 658
@@ -742,15 +754,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
742 754
743 mutex_unlock(&nbd->tx_lock); 755 mutex_unlock(&nbd->tx_lock);
744 756
745 if (nbd->flags & NBD_FLAG_READ_ONLY) 757 nbd_parse_flags(nbd, bdev);
746 set_device_ro(bdev, true);
747 if (nbd->flags & NBD_FLAG_SEND_TRIM)
748 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD,
749 nbd->disk->queue);
750 if (nbd->flags & NBD_FLAG_SEND_FLUSH)
751 blk_queue_flush(nbd->disk->queue, REQ_FLUSH);
752 else
753 blk_queue_flush(nbd->disk->queue, 0);
754 758
755 thread = kthread_run(nbd_thread_send, nbd, "%s", 759 thread = kthread_run(nbd_thread_send, nbd, "%s",
756 nbd_name(nbd)); 760 nbd_name(nbd));