From 8663484a8fd07e3fbab03a1c471fca6e69e5ca40 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 9 Jan 2008 11:38:22 -0800 Subject: [PATCH] check do_request result codes --- src/kernel/dir.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/kernel/dir.c b/src/kernel/dir.c index a2be6a763fe21..7c5e5f803b140 100644 --- a/src/kernel/dir.c +++ b/src/kernel/dir.c @@ -77,7 +77,9 @@ nextfrag: rhead->args.readdir.frag = cpu_to_le32(frag); if ((err = ceph_mdsc_do_request(mdsc, req, &fi->rinfo, -1)) < 0) return err; - dout(10, "dir_readdir got and parsed readdir result on frag %u\n", frag); + err = le32_to_cpu(fi->rinfo.head->result); + dout(10, "dir_readdir got and parsed readdir result=%d on frag %u\n", err, frag); + if (err < 0) return err; /* pre-populate dentry cache */ parent = filp->f_dentry; @@ -169,6 +171,10 @@ static struct dentry *ceph_dir_lookup(struct inode *dir, struct dentry *dentry, return ERR_PTR(PTR_ERR(req)); if ((err = ceph_mdsc_do_request(mdsc, req, &rinfo, -1)) < 0) return ERR_PTR(err); + err = le32_to_cpu(rinfo.head->result); + dout(20, "dir_readdir result=%d\n", err); + if (err < 0) + return ERR_PTR(err); if (rinfo.trace_nr > 0) { ino = le64_to_cpu(rinfo.trace_in[rinfo.trace_nr-1].in->ino); -- 2.39.5