diff options
author | Sage Weil <sage@newdream.net> | 2010-05-13 09:06:02 -0700 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-05-17 15:25:39 -0700 |
commit | 85792d0dd6e7a7a18fba55c97e49871211b28fe0 (patch) | |
tree | 7b8405250e818f8d5b71d9495c06bf5773d9c5e7 | |
parent | aba558e28ac40a598542d995c09efa8439ee3ed4 (diff) | |
download | op-kernel-dev-85792d0dd6e7a7a18fba55c97e49871211b28fe0.zip op-kernel-dev-85792d0dd6e7a7a18fba55c97e49871211b28fe0.tar.gz |
ceph: cope with out of order (unsafe after safe) mds reply
Signed-off-by: Sage Weil <sage@newdream.net>
-rw-r--r-- | fs/ceph/mds_client.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 114bada..40dd437 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -1871,6 +1871,12 @@ static void handle_reply(struct ceph_mds_session *session, struct ceph_msg *msg) mutex_unlock(&mdsc->mutex); goto out; } + if (req->r_got_safe && !head->safe) { + pr_warning("got unsafe after safe on %llu from mds%d\n", + tid, mds); + mutex_unlock(&mdsc->mutex); + goto out; + } result = le32_to_cpu(head->result); |