mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 15:19:51 +00:00
ceph: handle session flush message
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
This commit is contained in:
parent
9215aeea62
commit
186e4f7a4b
@ -1137,6 +1137,21 @@ static int send_renew_caps(struct ceph_mds_client *mdsc,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int send_flushmsg_ack(struct ceph_mds_client *mdsc,
|
||||
struct ceph_mds_session *session, u64 seq)
|
||||
{
|
||||
struct ceph_msg *msg;
|
||||
|
||||
dout("send_flushmsg_ack to mds%d (%s)s seq %lld\n",
|
||||
session->s_mds, session_state_name(session->s_state), seq);
|
||||
msg = create_session_msg(CEPH_SESSION_FLUSHMSG_ACK, seq);
|
||||
if (!msg)
|
||||
return -ENOMEM;
|
||||
ceph_con_send(&session->s_con, msg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Note new cap ttl, and any transition from stale -> not stale (fresh?).
|
||||
*
|
||||
@ -2396,6 +2411,10 @@ static void handle_session(struct ceph_mds_session *session,
|
||||
trim_caps(mdsc, session, le32_to_cpu(h->max_caps));
|
||||
break;
|
||||
|
||||
case CEPH_SESSION_FLUSHMSG:
|
||||
send_flushmsg_ack(mdsc, session, seq);
|
||||
break;
|
||||
|
||||
default:
|
||||
pr_err("mdsc_handle_session bad op %d mds%d\n", op, mds);
|
||||
WARN_ON(1);
|
||||
|
@ -41,6 +41,8 @@ const char *ceph_session_op_name(int op)
|
||||
case CEPH_SESSION_RENEWCAPS: return "renewcaps";
|
||||
case CEPH_SESSION_STALE: return "stale";
|
||||
case CEPH_SESSION_RECALL_STATE: return "recall_state";
|
||||
case CEPH_SESSION_FLUSHMSG: return "flushmsg";
|
||||
case CEPH_SESSION_FLUSHMSG_ACK: return "flushmsg_ack";
|
||||
}
|
||||
return "???";
|
||||
}
|
||||
|
@ -282,6 +282,8 @@ enum {
|
||||
CEPH_SESSION_RENEWCAPS,
|
||||
CEPH_SESSION_STALE,
|
||||
CEPH_SESSION_RECALL_STATE,
|
||||
CEPH_SESSION_FLUSHMSG,
|
||||
CEPH_SESSION_FLUSHMSG_ACK,
|
||||
};
|
||||
|
||||
extern const char *ceph_session_op_name(int op);
|
||||
|
Loading…
x
Reference in New Issue
Block a user