| From d1b58f35cce20485e1ff1521ecc0a6f710f55e9e Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 15 Jul 2021 14:40:39 +0100 |
| Subject: ceph: don't WARN if we're still opening a session to an MDS |
| |
| From: Luis Henriques <lhenriques@suse.de> |
| |
| [ Upstream commit cdb330f4b41ab55feb35487729e883c9e08b8a54 ] |
| |
| If MDSs aren't available while mounting a filesystem, the session state |
| will transition from SESSION_OPENING to SESSION_CLOSING. And in that |
| scenario check_session_state() will be called from delayed_work() and |
| trigger this WARN. |
| |
| Avoid this by only WARNing after a session has already been established |
| (i.e., the s_ttl will be different from 0). |
| |
| Fixes: 62575e270f66 ("ceph: check session state after bumping session->s_seq") |
| Signed-off-by: Luis Henriques <lhenriques@suse.de> |
| 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 | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c |
| index e5af591d3bd4..86f09b1110a2 100644 |
| --- a/fs/ceph/mds_client.c |
| +++ b/fs/ceph/mds_client.c |
| @@ -4468,7 +4468,7 @@ bool check_session_state(struct ceph_mds_session *s) |
| break; |
| case CEPH_MDS_SESSION_CLOSING: |
| /* Should never reach this when we're unmounting */ |
| - WARN_ON_ONCE(true); |
| + WARN_ON_ONCE(s->s_ttl); |
| fallthrough; |
| case CEPH_MDS_SESSION_NEW: |
| case CEPH_MDS_SESSION_RESTARTING: |
| -- |
| 2.30.2 |
| |