mds: check cap ID when handling cap export message
handle following sequence of events: - mds0 exports an inode to mds1. client receives the cap import message from mds1. caps from mds0 are removed while handling the cap import message. - mds1 exports an inode to mds0. client receives the cap export message from mds1. handle_cap_export() adds placeholder caps for mds0 - client receives the first cap export message (for exporting inode from mds0 to mds1) Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
This commit is contained in:
parent
8d08503c13
commit
ca665e0282
1 changed files with 1 additions and 1 deletions
|
@ -2805,7 +2805,7 @@ static void handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex,
|
|||
retry:
|
||||
spin_lock(&ci->i_ceph_lock);
|
||||
cap = __get_cap_for_mds(ci, mds);
|
||||
if (!cap)
|
||||
if (!cap || cap->cap_id != le64_to_cpu(ex->cap_id))
|
||||
goto out_unlock;
|
||||
|
||||
if (target < 0) {
|
||||
|
|
Loading…
Reference in a new issue