lkml.org 
[lkml]   [2020]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.5 486/542] ceph: check availability of mds cluster on mount after wait timeout
    Date
    From: Xiubo Li <xiubli@redhat.com>

    [ Upstream commit 97820058fb2831a4b203981fa2566ceaaa396103 ]

    If all the MDS daemons are down for some reason, then the first mount
    attempt will fail with EIO after the mount request times out. A mount
    attempt will also fail with EIO if all of the MDS's are laggy.

    This patch changes the code to return -EHOSTUNREACH in these situations
    and adds a pr_info error message to help the admin determine the cause.

    URL: https://tracker.ceph.com/issues/4386
    Signed-off-by: Xiubo Li <xiubli@redhat.com>
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/ceph/mds_client.c | 3 +--
    fs/ceph/super.c | 5 +++++
    2 files changed, 6 insertions(+), 2 deletions(-)

    diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
    index 145d46ba25ae2..816d49aed96bc 100644
    --- a/fs/ceph/mds_client.c
    +++ b/fs/ceph/mds_client.c
    @@ -2558,8 +2558,7 @@ static void __do_request(struct ceph_mds_client *mdsc,
    if (!(mdsc->fsc->mount_options->flags &
    CEPH_MOUNT_OPT_MOUNTWAIT) &&
    !ceph_mdsmap_is_cluster_available(mdsc->mdsmap)) {
    - err = -ENOENT;
    - pr_info("probably no mds server is up\n");
    + err = -EHOSTUNREACH;
    goto finish;
    }
    }
    diff --git a/fs/ceph/super.c b/fs/ceph/super.c
    index 29a795f975dfa..430dcf329723a 100644
    --- a/fs/ceph/super.c
    +++ b/fs/ceph/super.c
    @@ -1070,6 +1070,11 @@ static int ceph_get_tree(struct fs_context *fc)
    return 0;

    out_splat:
    + if (!ceph_mdsmap_is_cluster_available(fsc->mdsc->mdsmap)) {
    + pr_info("No mds server is up or the cluster is laggy\n");
    + err = -EHOSTUNREACH;
    + }
    +
    ceph_mdsc_close_sessions(fsc->mdsc);
    deactivate_locked_super(sb);
    goto out_final;
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-02-14 18:50    [W:2.447 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site