Perhaps something like this would fit the bill? -- >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); ret = SD_RES_UNKNOWN; goto out; } -- 1.7.5.4 |