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 --- |