* later. See the COPYING file in the top-level directory.
*/
-#include "blockdev.h"
-#include "hw/block-common.h"
-#include "monitor.h"
-#include "qerror.h"
-#include "sysemu.h"
+#include "sysemu/blockdev.h"
+#include "hw/block/block.h"
+#include "monitor/monitor.h"
+#include "qapi/qmp/qerror.h"
+#include "sysemu/sysemu.h"
#include "qmp-commands.h"
#include "trace.h"
-#include "nbd.h"
-#include "qemu_socket.h"
+#include "block/nbd.h"
+#include "qemu/sockets.h"
static int server_fd = -1;
NBDExport *exp;
NBDCloseNotifier *n;
+ if (server_fd == -1) {
+ error_setg(errp, "NBD server not running");
+ return;
+ }
+
if (nbd_export_find(device)) {
error_setg(errp, "NBD server already exporting device '%s'", device);
return;
return;
}
+ if (!has_writable) {
+ writable = false;
+ }
+ if (bdrv_is_read_only(bs)) {
+ writable = false;
+ }
+
exp = nbd_export_new(bs, 0, -1, writable ? 0 : NBD_FLAG_READ_ONLY,
nbd_server_put_ref);