diff mbox

libceph: require cephx message signature by default

Message ID 1415695109-4698-1-git-send-email-zyan@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Yan, Zheng Nov. 11, 2014, 8:38 a.m. UTC
Signed-off-by: Yan, Zheng <zyan@redhat.com>
---
 include/linux/ceph/libceph.h |  1 +
 net/ceph/ceph_common.c       | 13 +++++++++++++
 2 files changed, 14 insertions(+)

Comments

Ilya Dryomov Nov. 11, 2014, 9:51 a.m. UTC | #1
On Tue, Nov 11, 2014 at 11:38 AM, Yan, Zheng <zyan@redhat.com> wrote:
> Signed-off-by: Yan, Zheng <zyan@redhat.com>
> ---
>  include/linux/ceph/libceph.h |  1 +
>  net/ceph/ceph_common.c       | 13 +++++++++++++
>  2 files changed, 14 insertions(+)
>
> diff --git a/include/linux/ceph/libceph.h b/include/linux/ceph/libceph.h
> index d293f7e..8b11a79 100644
> --- a/include/linux/ceph/libceph.h
> +++ b/include/linux/ceph/libceph.h
> @@ -29,6 +29,7 @@
>  #define CEPH_OPT_NOSHARE          (1<<1) /* don't share client with other sbs */
>  #define CEPH_OPT_MYIP             (1<<2) /* specified my ip */
>  #define CEPH_OPT_NOCRC            (1<<3) /* no data crc on writes */
> +#define CEPH_OPT_NOMSGAUTH       (1<<4) /* not require cephx message signature */
>
>  #define CEPH_OPT_DEFAULT   (0)
>
> diff --git a/net/ceph/ceph_common.c b/net/ceph/ceph_common.c
> index d361a274..b22d82c 100644
> --- a/net/ceph/ceph_common.c
> +++ b/net/ceph/ceph_common.c
> @@ -237,6 +237,8 @@ enum {
>         Opt_noshare,
>         Opt_crc,
>         Opt_nocrc,
> +       Opt_cephx_require_signature,
> +       Opt_cephx_require_no_signature,
>  };
>
>  static match_table_t opt_tokens = {
> @@ -255,6 +257,8 @@ static match_table_t opt_tokens = {
>         {Opt_noshare, "noshare"},
>         {Opt_crc, "crc"},
>         {Opt_nocrc, "nocrc"},
> +       {Opt_cephx_require_signature, "cephx_require_signature"},
> +       {Opt_cephx_require_no_signature, "cephx_require_no_signature"},

Maybe "cephx_require_signatures", "nocephx_require_signatures" ?  It
would (almost) match injectargs and be more in line with general mount
option conventions.

Thanks,

                Ilya
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ilya Dryomov Nov. 11, 2014, 12:49 p.m. UTC | #2
On Tue, Nov 11, 2014 at 3:22 PM, ?? <zyan@redhat.com> wrote:
>
> ? 2014?11?11??17:51?Ilya Dryomov <ilya.dryomov@inktank.com> ???
>
> On Tue, Nov 11, 2014 at 11:38 AM, Yan, Zheng <zyan@redhat.com> wrote:
>
> Signed-off-by: Yan, Zheng <zyan@redhat.com>
> ---
> include/linux/ceph/libceph.h |  1 +
> net/ceph/ceph_common.c       | 13 +++++++++++++
> 2 files changed, 14 insertions(+)
>
> diff --git a/include/linux/ceph/libceph.h b/include/linux/ceph/libceph.h
> index d293f7e..8b11a79 100644
> --- a/include/linux/ceph/libceph.h
> +++ b/include/linux/ceph/libceph.h
> @@ -29,6 +29,7 @@
> #define CEPH_OPT_NOSHARE          (1<<1) /* don't share client with other
> sbs */
> #define CEPH_OPT_MYIP             (1<<2) /* specified my ip */
> #define CEPH_OPT_NOCRC            (1<<3) /* no data crc on writes */
> +#define CEPH_OPT_NOMSGAUTH       (1<<4) /* not require cephx message
> signature */
>
> #define CEPH_OPT_DEFAULT   (0)
>
> diff --git a/net/ceph/ceph_common.c b/net/ceph/ceph_common.c
> index d361a274..b22d82c 100644
> --- a/net/ceph/ceph_common.c
> +++ b/net/ceph/ceph_common.c
> @@ -237,6 +237,8 @@ enum {
>        Opt_noshare,
>        Opt_crc,
>        Opt_nocrc,
> +       Opt_cephx_require_signature,
> +       Opt_cephx_require_no_signature,
> };
>
> static match_table_t opt_tokens = {
> @@ -255,6 +257,8 @@ static match_table_t opt_tokens = {
>        {Opt_noshare, "noshare"},
>        {Opt_crc, "crc"},
>        {Opt_nocrc, "nocrc"},
> +       {Opt_cephx_require_signature, "cephx_require_signature"},
> +       {Opt_cephx_require_no_signature, "cephx_require_no_signature"},
>
>
> Maybe "cephx_require_signatures", "nocephx_require_signatures" ?  It
> would (almost) match injectargs and be more in line with general mount
> option conventions.
>
>
> nocephx_require_signature looks wired. I don’t like it. how about
> cephx_not_require_signaure.

First, whatever we settle on should end with "_signatures", not
"_signature" because that's how it's spelled out in config_opts.h.

The second issue is how to express negation.  For mount options it's
conventional to have a "no" prepended.  Now, whether or not that "no"
should be separated with an underscore is debatable, mount(8) man page
has examples of both:

auto_da_alloc/noauto_da_alloc
block_validity/noblock_validity

hashed_relocation/no_unhashed_relocation
bulk_read/no_bulk_read

I'd personally go with the first option (i.e. no underscore), as it's
much more common.

Thanks,

                Ilya
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/ceph/libceph.h b/include/linux/ceph/libceph.h
index d293f7e..8b11a79 100644
--- a/include/linux/ceph/libceph.h
+++ b/include/linux/ceph/libceph.h
@@ -29,6 +29,7 @@ 
 #define CEPH_OPT_NOSHARE          (1<<1) /* don't share client with other sbs */
 #define CEPH_OPT_MYIP             (1<<2) /* specified my ip */
 #define CEPH_OPT_NOCRC            (1<<3) /* no data crc on writes */
+#define CEPH_OPT_NOMSGAUTH	  (1<<4) /* not require cephx message signature */
 
 #define CEPH_OPT_DEFAULT   (0)
 
diff --git a/net/ceph/ceph_common.c b/net/ceph/ceph_common.c
index d361a274..b22d82c 100644
--- a/net/ceph/ceph_common.c
+++ b/net/ceph/ceph_common.c
@@ -237,6 +237,8 @@  enum {
 	Opt_noshare,
 	Opt_crc,
 	Opt_nocrc,
+	Opt_cephx_require_signature,
+	Opt_cephx_require_no_signature,
 };
 
 static match_table_t opt_tokens = {
@@ -255,6 +257,8 @@  static match_table_t opt_tokens = {
 	{Opt_noshare, "noshare"},
 	{Opt_crc, "crc"},
 	{Opt_nocrc, "nocrc"},
+	{Opt_cephx_require_signature, "cephx_require_signature"},
+	{Opt_cephx_require_no_signature, "cephx_require_no_signature"},
 	{-1, NULL}
 };
 
@@ -453,6 +457,12 @@  ceph_parse_options(char *options, const char *dev_name,
 		case Opt_nocrc:
 			opt->flags |= CEPH_OPT_NOCRC;
 			break;
+		case Opt_cephx_require_signature:
+			opt->flags &= ~CEPH_OPT_NOMSGAUTH;
+			break;
+		case Opt_cephx_require_no_signature:
+			opt->flags |= CEPH_OPT_NOMSGAUTH;
+			break;
 
 		default:
 			BUG_ON(token);
@@ -496,6 +506,9 @@  struct ceph_client *ceph_create_client(struct ceph_options *opt, void *private,
 	init_waitqueue_head(&client->auth_wq);
 	client->auth_err = 0;
 
+	if (!ceph_test_opt(client, NOMSGAUTH))
+		required_features |= CEPH_FEATURE_MSG_AUTH;
+
 	client->extra_mon_dispatch = NULL;
 	client->supported_features = CEPH_FEATURES_SUPPORTED_DEFAULT |
 		supported_features;