All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Henriques <lhenriques@suse.de>
To: Venky Shankar <vshankar@redhat.com>
Cc: jlayton@redhat.com, idryomov@gmail.com, pdonnell@redhat.com,
	ceph-devel@vger.kernel.org
Subject: Re: [PATCH v2 2/4] ceph: validate cluster FSID for new device syntax
Date: Fri, 2 Jul 2021 11:48:15 +0100	[thread overview]
Message-ID: <YN7u73BDwB4aoe4w@suse.de> (raw)
In-Reply-To: <YN7t9TJlDG8YcbqM@suse.de>

On Fri, Jul 02, 2021 at 11:44:05AM +0100, Luis Henriques wrote:
> On Fri, Jul 02, 2021 at 12:18:19PM +0530, Venky Shankar wrote:
> > The new device syntax requires the cluster FSID as part
> > of the device string. Use this FSID to verify if it matches
> > the cluster FSID we get back from the monitor, failing the
> > mount on mismatch.
> > 
> > Also, rename parse_fsid() to ceph_parse_fsid() as it is too
> > generic.
> > 
> > Signed-off-by: Venky Shankar <vshankar@redhat.com>
> > ---
> >  fs/ceph/super.c              | 9 +++++++++
> >  fs/ceph/super.h              | 1 +
> >  include/linux/ceph/libceph.h | 1 +
> >  net/ceph/ceph_common.c       | 5 +++--
> >  4 files changed, 14 insertions(+), 2 deletions(-)
> > 
> > diff --git a/fs/ceph/super.c b/fs/ceph/super.c
> > index 0b324e43c9f4..03e5f4bb2b6f 100644
> > --- a/fs/ceph/super.c
> > +++ b/fs/ceph/super.c
> > @@ -268,6 +268,9 @@ static int ceph_parse_new_source(const char *dev_name, const char *dev_name_end,
> >  	if (!fs_name_start)
> >  		return invalfc(fc, "missing file system name");
> >  
> > +	if (ceph_parse_fsid(fsid_start, &fsopt->fsid))
> > +		return invalfc(fc, "invalid fsid format");
> > +
> >  	++fs_name_start; /* start of file system name */
> >  	fsopt->mds_namespace = kstrndup(fs_name_start,
> >  					dev_name_end - fs_name_start, GFP_KERNEL);
> > @@ -750,6 +753,12 @@ static struct ceph_fs_client *create_fs_client(struct ceph_mount_options *fsopt,
> >  	}
> >  	opt = NULL; /* fsc->client now owns this */
> >  
> > +	/* help learn fsid */
> > +	if (fsopt->new_dev_syntax) {
> > +		ceph_check_fsid(fsc->client, &fsopt->fsid);
> 
> This call to ceph_check_fsid() made me wonder what would happen if I use
> the wrong fsid with the new syntax.  And the result is:
> 
> [   41.882334] libceph: mon0 (1)192.168.155.1:40594 session established
> [   41.884537] libceph: bad fsid, had d52783e6-efc2-4dce-ad01-aa3272fa5f66 got 90bdb539-9d95-402e-8f23-b0e26cba8b1b
> [   41.885955] libceph: bad fsid, had d52783e6-efc2-4dce-ad01-aa3272fa5f66 got 90bdb539-9d95-402e-8f23-b0e26cba8b1b
> [   41.889313] libceph: bad fsid, had d52783e6-efc2-4dce-ad01-aa3272fa5f66 got 90bdb539-9d95-402e-8f23-b0e26cba8b1b
> [   41.892578] libceph: osdc handle_map corrupt msg
> 
> ... followed by a msg dump.
> 
> I guess this means that manually setting the fsid requires changes to the
> messenger (I've only tested with v1) so that it gracefully handles this
> scenario.

I forgot to mention that the above errors are, obviously, not due to this
call to ceph_check_fsid() but rather from calling it from mon_dispatch().

Cheers,
--
Luís

  reply	other threads:[~2021-07-02 10:48 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-02  6:48 [PATCH v2 0/4] ceph: new mount device syntax Venky Shankar
2021-07-02  6:48 ` [PATCH v2 1/4] ceph: new device mount syntax Venky Shankar
2021-07-02 10:38   ` Luis Henriques
2021-07-02 11:05     ` Venky Shankar
2021-07-06 18:41       ` Jeff Layton
2021-07-02  6:48 ` [PATCH v2 2/4] ceph: validate cluster FSID for new device syntax Venky Shankar
2021-07-02 10:44   ` Luis Henriques
2021-07-02 10:48     ` Luis Henriques [this message]
2021-07-02 11:10     ` Venky Shankar
2021-07-02 13:49       ` Luis Henriques
2021-07-02 14:57         ` Venky Shankar
2021-07-06 18:35           ` Jeff Layton
2021-07-07  5:05             ` Venky Shankar
2021-07-02  6:48 ` [PATCH v2 3/4] ceph: record updated mon_addr on remount Venky Shankar
2021-07-02  6:48 ` [PATCH v2 4/4] doc: document new CephFS mount device syntax Venky Shankar
2021-07-02 18:08   ` Patrick Donnelly
2021-07-05  4:39     ` Venky Shankar
2021-07-06 18:25       ` Jeff Layton
2021-07-02 18:05 ` [PATCH v2 0/4] ceph: new " Patrick Donnelly
2021-07-05  4:36   ` Venky Shankar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YN7u73BDwB4aoe4w@suse.de \
    --to=lhenriques@suse.de \
    --cc=ceph-devel@vger.kernel.org \
    --cc=idryomov@gmail.com \
    --cc=jlayton@redhat.com \
    --cc=pdonnell@redhat.com \
    --cc=vshankar@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.