[Sheepdog] [PATCH v3] Don't report an error for blocks not stored locally
Chris Webb
chris at arachsys.com
Sat Dec 17 10:00:55 CET 2011
Signed-off-by: Chris Webb <chris at arachsys.com>
---
Oops, previous patch was incorrectly edited and wouldn't apply! Fixed
properly this time.
sheep/simple_store.c | 10 +++++++----
1 files changed, 7 insertions(+), 4 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,20 @@ 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
+ } else {
+ eprintf("failed to open %s: %m\n", path.buf);
ret = SD_RES_UNKNOWN;
+ }
goto out;
}
--
1.7.5.4
More information about the sheepdog
mailing list