diff options
author | Markus Pargmann <mpa@pengutronix.de> | 2015-10-29 07:06:15 -0400 |
---|---|---|
committer | Markus Pargmann <mpa@pengutronix.de> | 2016-02-05 02:52:33 -0500 |
commit | d02cf53107792df373558851d6162dc4e4ceb95a (patch) | |
tree | 670e8f839edac965a72446ea3a4d70f86ed4ef2e /drivers/block | |
parent | 0e4f0f6f63d3416a9e529d99febfe98545427b81 (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.c | 22 |
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 | ||
644 | static 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 | |||
644 | static int nbd_dev_dbg_init(struct nbd_device *nbd); | 656 | static int nbd_dev_dbg_init(struct nbd_device *nbd); |
645 | static void nbd_dev_dbg_close(struct nbd_device *nbd); | 657 | static 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)); |