rbd.c (fe5241bfe3fb61ec3f589ceacd91c1469bfd400f) rbd.c (e2b8247a322cd92945785edf25f09e6b3e8285f9)
1/*
2 * QEMU Block driver for RADOS (Ceph)
3 *
4 * Copyright (C) 2010-2011 Christian Brunner <chb@muc.de>,
5 * Josh Durgin <josh.durgin@dreamhost.com>
6 *
7 * This work is licensed under the terms of the GNU GPL, version 2. See
8 * the COPYING file in the top-level directory.

--- 621 unchanged lines hidden (view full) ---

630 }
631
632 r = rados_ioctx_create(s->cluster, pool, &s->io_ctx);
633 if (r < 0) {
634 error_setg_errno(errp, -r, "error opening pool %s", pool);
635 goto failed_shutdown;
636 }
637
1/*
2 * QEMU Block driver for RADOS (Ceph)
3 *
4 * Copyright (C) 2010-2011 Christian Brunner <chb@muc.de>,
5 * Josh Durgin <josh.durgin@dreamhost.com>
6 *
7 * This work is licensed under the terms of the GNU GPL, version 2. See
8 * the COPYING file in the top-level directory.

--- 621 unchanged lines hidden (view full) ---

630 }
631
632 r = rados_ioctx_create(s->cluster, pool, &s->io_ctx);
633 if (r < 0) {
634 error_setg_errno(errp, -r, "error opening pool %s", pool);
635 goto failed_shutdown;
636 }
637
638 /* rbd_open is always r/w */
638 r = rbd_open(s->io_ctx, s->name, &s->image, s->snap);
639 if (r < 0) {
640 error_setg_errno(errp, -r, "error reading header from %s", s->name);
641 goto failed_open;
642 }
643
639 r = rbd_open(s->io_ctx, s->name, &s->image, s->snap);
640 if (r < 0) {
641 error_setg_errno(errp, -r, "error reading header from %s", s->name);
642 goto failed_open;
643 }
644
644 bdrv_set_read_only(bs, (s->snap != NULL));
645 /* If we are using an rbd snapshot, we must be r/o, otherwise
646 * leave as-is */
647 if (s->snap != NULL) {
648 r = bdrv_set_read_only(bs, true, &local_err);
649 if (r < 0) {
650 error_propagate(errp, local_err);
651 goto failed_open;
652 }
653 }
645
646 qemu_opts_del(opts);
647 return 0;
648
649failed_open:
650 rados_ioctx_destroy(s->io_ctx);
651failed_shutdown:
652 rados_shutdown(s->cluster);

--- 450 unchanged lines hidden ---
654
655 qemu_opts_del(opts);
656 return 0;
657
658failed_open:
659 rados_ioctx_destroy(s->io_ctx);
660failed_shutdown:
661 rados_shutdown(s->cluster);

--- 450 unchanged lines hidden ---