summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Benjamin <matt@linuxbox.com>2013-10-08 16:49:23 -0400
committerMatt Benjamin <matt@linuxbox.com>2013-10-08 16:49:23 -0400
commit50cad2896dac0d8f4125297bd7cf7ba219a95827 (patch)
tree25c04c5f4c2f9bf339b9374a8b15586875c905c3
parent09f4df02a866230b19539b03061f4abc5ab47ae2 (diff)
downloadceph-wip-libcephfs-emp-rb.tar.gz
Don't forget an inode not found in cache.wip-libcephfs-emp-rb
This could be working around a prematurely released inode, but the result can stably save, expand, configure, and build linux-3.11.4 (stability). Signed-off-by: Matt Benjamin <matt@linuxbox.com>
-rw-r--r--src/client/fuse_ll.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/client/fuse_ll.cc b/src/client/fuse_ll.cc
index 92a6beab762..6f7133cda1d 100644
--- a/src/client/fuse_ll.cc
+++ b/src/client/fuse_ll.cc
@@ -117,7 +117,10 @@ static void fuse_ll_forget(fuse_req_t req, fuse_ino_t ino,
long unsigned nlookup)
{
CephFuse::Handle *cfuse = (CephFuse::Handle *)fuse_req_userdata(req);
- cfuse->client->ll_forget(cfuse->iget(ino), nlookup+1);
+ Inode *in = cfuse->iget(ino);
+ if (in) {
+ cfuse->client->ll_forget(in, nlookup+1);
+ }
fuse_reply_none(req);
}