diff options
author | Yan, Zheng <zheng.z.yan@intel.com> | 2013-09-22 11:08:14 +0800 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-11-23 11:01:02 -0800 |
commit | 99a9c273b94a087f8feaec6c5ffbe3205a2dbe51 (patch) | |
tree | c02a8c512356b2a9ae76e18558e5b59a75458868 /fs/ceph/mds_client.h | |
parent | 44c99757fae80e9db058e1f1d7419cf6472e9af1 (diff) | |
download | op-kernel-dev-99a9c273b94a087f8feaec6c5ffbe3205a2dbe51.zip op-kernel-dev-99a9c273b94a087f8feaec6c5ffbe3205a2dbe51.tar.gz |
ceph: handle race between cap reconnect and cap release
When a cap get released while composing the cap reconnect message.
We should skip queuing the release message if the cap hasn't been
added to the cap reconnect message.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'fs/ceph/mds_client.h')
-rw-r--r-- | fs/ceph/mds_client.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ceph/mds_client.h b/fs/ceph/mds_client.h index c2a19fb..4c053d0 100644 --- a/fs/ceph/mds_client.h +++ b/fs/ceph/mds_client.h @@ -132,6 +132,7 @@ struct ceph_mds_session { struct list_head s_caps; /* all caps issued by this session */ int s_nr_caps, s_trim_caps; int s_num_cap_releases; + int s_cap_reconnect; struct list_head s_cap_releases; /* waiting cap_release messages */ struct list_head s_cap_releases_done; /* ready to send */ struct ceph_cap *s_cap_iterator; |