From dcaa1b362ffb6af03810cb6dcd77c2347a9d98fd Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 14 Apr 2008 12:33:01 -0700 Subject: [PATCH] kclient: dont die (immediately) if we get a reply with no trace --- src/TODO | 1 + src/kernel/mds_client.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/TODO b/src/TODO index 8282904db3a95..ba1e327cf9141 100644 --- a/src/TODO +++ b/src/TODO @@ -23,6 +23,7 @@ kernel client - file_data_version stuff! - deal with CAP_RDCACHE properly: invalidate cache pages? - trim expired leases so we don't indefinitely hold dcache/icache refs... +- what happens after reconnect when we get successful reply but no trace (!) on e.g. rename, unlink, link, open+O_CREAT, etc... - procfs/debugfs - adjust granular debug levels too - should we be using debugfs? diff --git a/src/kernel/mds_client.c b/src/kernel/mds_client.c index 036688da3be39..b3541762033cb 100644 --- a/src/kernel/mds_client.c +++ b/src/kernel/mds_client.c @@ -923,7 +923,7 @@ void ceph_mdsc_handle_reply(struct ceph_mds_client *mdsc, struct ceph_msg *msg) goto done; if (result == 0) { /* caps? */ - if (req->r_expects_cap) { + if (req->r_expects_cap && req->r_last_inode) { cap = le32_to_cpu(rinfo->head->file_caps); capseq = le32_to_cpu(rinfo->head->file_caps_seq); req->r_cap = ceph_add_cap(req->r_last_inode, -- 2.39.5