]> git.proxmox.com Git - qemu.git/blobdiff - nbd.c
Open 2.0 development tree
[qemu.git] / nbd.c
diff --git a/nbd.c b/nbd.c
index 0fd05836ca4c814eb6d32937891dce601362a12e..f847940f3edb8d8ecc00bf294a77f1e189abedff 100644 (file)
--- a/nbd.c
+++ b/nbd.c
@@ -882,6 +882,7 @@ NBDExport *nbd_export_new(BlockDriverState *bs, off_t dev_offset,
     exp->nbdflags = nbdflags;
     exp->size = size == -1 ? bdrv_getlength(bs) : size;
     exp->close = close;
+    bdrv_ref(bs);
     return exp;
 }
 
@@ -928,6 +929,10 @@ void nbd_export_close(NBDExport *exp)
     }
     nbd_export_set_name(exp, NULL);
     nbd_export_put(exp);
+    if (exp->bs) {
+        bdrv_unref(exp->bs);
+        exp->bs = NULL;
+    }
 }
 
 void nbd_export_get(NBDExport *exp)