From e545af2db5c9eb02105c2f7f5975d2e7a5f818ee Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 11 Nov 2011 11:10:17 -0800 Subject: [PATCH] mon: remove empty monstore dirs This is sloppy, but it works well enough since we mkdir dirs as needed too. Signed-off-by: Sage Weil --- src/mon/MonitorStore.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mon/MonitorStore.cc b/src/mon/MonitorStore.cc index f93ab772ac6..d41209c2e02 100644 --- a/src/mon/MonitorStore.cc +++ b/src/mon/MonitorStore.cc @@ -226,14 +226,18 @@ bool MonitorStore::exists_bl_ss(const char *a, const char *b) int MonitorStore::erase_ss(const char *a, const char *b) { char fn[1024]; + char dr[1024]; + snprintf(dr, sizeof(dr), "%s/%s", dir.c_str(), a); if (b) { dout(15) << "erase_ss " << a << "/" << b << dendl; snprintf(fn, sizeof(fn), "%s/%s/%s", dir.c_str(), a, b); } else { dout(15) << "erase_ss " << a << dendl; - snprintf(fn, sizeof(fn), "%s/%s", dir.c_str(), a); + strcpy(fn, dr); } - return ::unlink(fn); + int r = ::unlink(fn); + ::rmdir(dr); // sloppy attempt to clean up empty dirs + return r; } int MonitorStore::get_bl_ss(bufferlist& bl, const char *a, const char *b)