On 12/16/2011 09:20 PM, Liu Yuan wrote: > On 12/16/2011 08:11 PM, Chris Webb wrote: > >> Perhaps something like this would fit the bill? >> > > > Acked-by: Liu Yuan <tailai.ly at taobao.com> > >> -- >8 -- >> Subject: [PATCH] Don't report an error for blocks not stored locally >> >> Signed-off-by: Chris Webb <chris at arachsys.com> >> --- >> sheep/simple_store.c | 8 +++++--- >> 1 files changed, 5 insertions(+), 3 deletions(-) >> >> diff --git a/sheep/simple_store.c b/sheep/simple_store.c >> index 424589f..3f2c241 100644 >> --- a/sheep/simple_store.c >> +++ b/sheep/simple_store.c >> @@ -76,17 +76,19 @@ static int simple_store_open(uint64_t oid, struct siocb *iocb, int create) >> >> ret = open(path.buf, flags, def_fmode); >> if (ret < 0) { >> - eprintf("failed to open %s: %m\n", path.buf); >> if (errno == ENOENT) { >> struct stat s; >> >> - ret = SD_RES_NO_OBJ; >> if (stat(obj_path, &s) < 0) { >> /* store directory is corrupted */ >> - eprintf("corrupted\n"); >> + eprintf("store directory corrupted: %m\n"); >> ret = SD_RES_EIO; >> + } else { >> + dprintf("object %08u/%016" PRIx64 " not found locally\n", iocb->epoch, oid); >> + ret = SD_RES_NO_OBJ; >> } >> } else >> + eprintf("failed to open %s: %m\n", path.buf); need { for else clause? >> ret = SD_RES_UNKNOWN; >> goto out; >> } > > |