From: Yibin Shen <zituan at taobao.com> Signed-off-by: Yibin Shen <zituan at taobao.com> --- sheep/store.c | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-) diff --git a/sheep/store.c b/sheep/store.c index 739862c..027443f 100644 --- a/sheep/store.c +++ b/sheep/store.c @@ -588,18 +588,23 @@ int store_remove_obj(const struct sd_req *req, struct sd_rsp *rsp, void *data) struct sd_obj_req *hdr = (struct sd_obj_req *)req; uint32_t epoch = hdr->epoch; char path[1024]; + struct strbuf store_dir = STRBUF_INIT; + int ret = SD_RES_SUCCESS; + get_store_dir(&store_dir, epoch); - snprintf(path, sizeof(path), "%s%08u/%016" PRIx64, obj_path, - epoch, hdr->oid); + snprintf(path, sizeof(path), "%s%016" PRIx64, store_dir.buf, hdr->oid); if (unlink(path) < 0) { - if (errno == ENOENT) - return SD_RES_NO_OBJ; + if (errno == ENOENT) { + ret = SD_RES_NO_OBJ; + goto out; + } eprintf("%m\n"); - return SD_RES_EIO; + ret = SD_RES_EIO; } - - return SD_RES_SUCCESS; + out: + strbuf_release(&store_dir); + return ret; } int store_read_obj(const struct sd_req *req, struct sd_rsp *rsp, void *data) -- 1.7.7.3 |