From f8ce1524a89aa3cec16edb6da9a8ac8aa6d7173a Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 27 Feb 2013 17:05:26 -0800 Subject: [PATCH] --- yaml --- r: 359400 b: refs/heads/master c: a83e814b5bb948850e903585d18b6298b7093cb2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/nbd.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 7fa25f7dc09e..820bbd5610cf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3a2d63f87989e01437ba994df5f297528c353d7d +refs/heads/master: a83e814b5bb948850e903585d18b6298b7093cb2 diff --git a/trunk/drivers/block/nbd.c b/trunk/drivers/block/nbd.c index 869861a87f40..52003d7a69ae 100644 --- a/trunk/drivers/block/nbd.c +++ b/trunk/drivers/block/nbd.c @@ -703,6 +703,8 @@ 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); @@ -730,6 +732,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd, dev_warn(disk_to_dev(nbd->disk), "queue cleared\n"); kill_bdev(bdev); queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, nbd->disk->queue); + set_device_ro(bdev, false); if (file) fput(file); nbd->flags = 0;