Hmm, Still corrupted. Looks like the tabs are converted to spaces. I don't know what mailer you use but the following might be useful: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/email-clients.txt On Fri, 25 Jul 2014 07:25:21 -0400 Scott Sullivan <ssullivan@xxxxxxxxxxxxx> wrote: > On 07/25/2014 03:31 AM, FUJITA Tomonori wrote: >> On Mon, 21 Jul 2014 15:34:46 -0400 >> Scott Sullivan <ssullivan@xxxxxxxxxxxxx> wrote: >> >>> On 06/18/2014 01:49 AM, Dan Mick wrote: >>>> I've seen this; I'm traveling/busy this week so will try to give it >>>> some thought, but no promises >>> ping ? >> I tried to apply however I can't cleanly. Looks like the patch is >> corrupted. Can you resend? > > > URL: http://paste.debian.net/111595/ > > Paste: > > From 5359b581c5e7bf434979becaefc53a711ef88432 Mon Sep 17 00:00:00 2001 > From: Scott Sullivan <ssullivan@xxxxxxxxxxxxx> > Date: Tue, 17 Jun 2014 08:16:09 -0400 > Subject: [PATCH] bsopts: Add virsecretuuid && cephx_key > > Allow passing either a libvirt secret UUID, or a cephx_key to > --bsopts. Options are > conflicting, so error if both options given. This allows one to do > this: > > --bsopts="conf=/etc/ceph/ceph.conf;id=cephx_user;virsecretuuid=$MY_LIBVIRT_SECRET_UUID" > -OR- > --bsopts="conf=/etc/ceph/ceph.conf;id=cephx_user;cephx_key=$MY_KEY" > > Signed-off-by: Scott Sullivan <ssullivan@xxxxxxxxxxxxx> > --- > usr/bs_rbd.c | 64 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 64 insertions(+) > > diff --git a/usr/bs_rbd.c b/usr/bs_rbd.c > index 3a052ed..86857b9 100644 > --- a/usr/bs_rbd.c > +++ b/usr/bs_rbd.c > @@ -517,6 +517,9 @@ static tgtadm_err bs_rbd_init(struct scsi_lu *lu, > char *bsopts) > struct active_rbd *rbd = RBDP(lu); > char *confname = NULL; > char *clientid = NULL; > + char *virsecretuuid = NULL; > + char *given_cephx_key = NULL; > + char disc_cephx_key[256]; > char *clustername = NULL; > char clientid_full[128]; > char *ignore = NULL; > @@ -532,6 +535,10 @@ static tgtadm_err bs_rbd_init(struct scsi_lu *lu, > char *bsopts) > clientid = slurp_value(&bsopts); > else if (is_opt("cluster", bsopts)) > clustername = slurp_value(&bsopts); > + else if (is_opt("virsecretuuid", bsopts)) > + virsecretuuid = slurp_value(&bsopts); > + else if (is_opt("cephx_key", bsopts)) > + given_cephx_key = slurp_value(&bsopts); > else { > ignore = slurp_to_semi(&bsopts); > eprintf("bs_rbd: ignoring unknown option \"%s\"\n", > @@ -547,6 +554,41 @@ static tgtadm_err bs_rbd_init(struct scsi_lu *lu, > char *bsopts) > eprintf("bs_rbd_init: confname %s\n", confname); > if (clustername) > eprintf("bs_rbd_init: clustername %s\n", clustername); > + if (virsecretuuid) > + eprintf("bs_rbd_init: virsecretuuid %s\n", virsecretuuid); > + if (given_cephx_key) > + eprintf("bs_rbd_init: given_cephx_key %s\n", given_cephx_key); > + > + /* virsecretuuid && given_cephx_key are conflicting options. */ > + if (virsecretuuid && given_cephx_key) { > + eprintf("Conflicting options virsecretuuid=[%s] cephx_key=[%s]", > + virsecretuuid, given_cephx_key); > + goto fail; > + } > + > + /* Get stored key from secret uuid. */ > + if (virsecretuuid) { > + char libvir_uuid_file_path_buf[256] = "/etc/libvirt/secrets/"; > + strcat(libvir_uuid_file_path_buf, virsecretuuid); > + strcat(libvir_uuid_file_path_buf, ".base64"); > + > + FILE *fp; > + fp = fopen(libvir_uuid_file_path_buf , "r"); > + if (fp == NULL) { > + eprintf("bs_rbd_init: Unable to read %s\n", > + libvir_uuid_file_path_buf); > + goto fail; > + } > + if (fgets(disc_cephx_key, 256, fp) == NULL) { > + eprintf("bs_rbd_init: Unable to read %s\n", > + libvir_uuid_file_path_buf); > + goto fail; > + } > + fclose(fp); > + strtok(disc_cephx_key, "\n"); > + > + eprintf("bs_rbd_init: disc_cephx_key %s\n", disc_cephx_key); > + } > > eprintf("bs_rbd_init bsopts=%s\n", bsopts); > /* > @@ -570,6 +612,7 @@ static tgtadm_err bs_rbd_init(struct scsi_lu *lu, > char *bsopts) > eprintf("bs_rbd_init: rados_create: %d\n", rados_ret); > return ret; > } > + > /* > * Read config from environment, then conf file(s) which may > * be set by conf= > @@ -584,6 +627,23 @@ static tgtadm_err bs_rbd_init(struct scsi_lu *lu, > char *bsopts) > eprintf("bs_rbd_init: rados_conf_read_file: %d\n", rados_ret); > goto fail; > } > + > + /* Set given key */ > + if (virsecretuuid) { > + if (rados_conf_set(rbd->cluster, "key", disc_cephx_key) < 0) { > + eprintf("bs_rbd_init: failed to set cephx_key: %s\n", > + disc_cephx_key); > + goto fail; > + } > + } > + if (given_cephx_key) { > + if (rados_conf_set(rbd->cluster, "key", given_cephx_key) < 0) { > + eprintf("bs_rbd_init: failed to set cephx_key: %s\n", > + given_cephx_key); > + goto fail; > + } > + } > + > rados_ret = rados_connect(rbd->cluster); > if (rados_ret < 0) { > eprintf("bs_rbd_init: rados_connect: %d\n", rados_ret); > @@ -595,6 +655,10 @@ fail: > free(confname); > if (clientid) > free(clientid); > + if (virsecretuuid) > + free(virsecretuuid); > + if (given_cephx_key) > + free(given_cephx_key); > > return ret; > } > -- > 1.7.10.4 > > > I also checked, and I didn't have any problem applying the patch to > the current master branch: > > ssullivan@data ~/syseng/packages/tgt $ git apply --stat > ../rpmbuild/SOURCES/tgt-add_virsecretuuid_cephx_key_to_bsopts.patch > usr/bs_rbd.c | 64 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 64 insertions(+) > ssullivan@data ~/syseng/packages/tgt $ git apply --check > ../rpmbuild/SOURCES/tgt-add_virsecretuuid_cephx_key_to_bsopts.patch > ssullivan@data ~/syseng/packages/tgt $ git am --signoff < > ../rpmbuild/SOURCES/tgt-add_virsecretuuid_cephx_key_to_bsopts.patch > Applying: bsopts: Add virsecretuuid && cephx_key > ssullivan@data ~/syseng/packages/tgt $ > -- > To unsubscribe from this list: send the line "unsubscribe stgt" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe stgt" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html