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 <m...@pengutronix.de>
---
 drivers/block/nbd.c | 22 +++++++++++++---------
 1 file 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)
        }
 }
 
+static void nbd_parse_flags(struct nbd_device *nbd, struct block_device *bdev)
+{
+       if (nbd->flags & NBD_FLAG_READ_ONLY)
+               set_device_ro(bdev, true);
+       if (nbd->flags & NBD_FLAG_SEND_TRIM)
+               queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, nbd->disk->queue);
+       if (nbd->flags & NBD_FLAG_SEND_FLUSH)
+               blk_queue_flush(nbd->disk->queue, REQ_FLUSH);
+       else
+               blk_queue_flush(nbd->disk->queue, 0);
+}
+
 static int nbd_dev_dbg_init(struct nbd_device *nbd);
 static void nbd_dev_dbg_close(struct nbd_device *nbd);
 
@@ -742,15 +754,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct 
nbd_device *nbd,
 
                mutex_unlock(&nbd->tx_lock);
 
-               if (nbd->flags & NBD_FLAG_READ_ONLY)
-                       set_device_ro(bdev, true);
-               if (nbd->flags & NBD_FLAG_SEND_TRIM)
-                       queue_flag_set_unlocked(QUEUE_FLAG_DISCARD,
-                               nbd->disk->queue);
-               if (nbd->flags & NBD_FLAG_SEND_FLUSH)
-                       blk_queue_flush(nbd->disk->queue, REQ_FLUSH);
-               else
-                       blk_queue_flush(nbd->disk->queue, 0);
+               nbd_parse_flags(nbd, bdev);
 
                thread = kthread_run(nbd_thread_send, nbd, "%s",
                                     nbd_name(nbd));
-- 
2.7.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Nbd-general mailing list
Nbd-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nbd-general

Reply via email to