diff --git a/fs/ceph/export.c b/fs/ceph/export.c
index 3c59ad180ef0bb5b9dfb09528e5c1dc363f9b94e..4cfe1154d4c726f621b5a6f689f7e7b05ca52a39 100644
--- a/fs/ceph/export.c
+++ b/fs/ceph/export.c
@@ -151,6 +151,11 @@ static struct dentry *__get_parent(struct super_block *sb,
 
 	req->r_num_caps = 1;
 	err = ceph_mdsc_do_request(mdsc, NULL, req);
+	if (err) {
+		ceph_mdsc_put_request(req);
+		return ERR_PTR(err);
+	}
+
 	inode = req->r_target_inode;
 	if (inode)
 		ihold(inode);