summaryrefslogtreecommitdiffstats
path: root/xlators/features/bit-rot
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/features/bit-rot')
-rw-r--r--xlators/features/bit-rot/src/stub/bit-rot-stub-helpers.c17
-rw-r--r--xlators/features/bit-rot/src/stub/bit-rot-stub.c2
-rw-r--r--xlators/features/bit-rot/src/stub/bit-rot-stub.h6
3 files changed, 20 insertions, 5 deletions
diff --git a/xlators/features/bit-rot/src/stub/bit-rot-stub-helpers.c b/xlators/features/bit-rot/src/stub/bit-rot-stub-helpers.c
index bf3e56a6c74..59588d04f5c 100644
--- a/xlators/features/bit-rot/src/stub/bit-rot-stub-helpers.c
+++ b/xlators/features/bit-rot/src/stub/bit-rot-stub-helpers.c
@@ -224,8 +224,15 @@ out:
static int
br_stub_check_stub_directory (xlator_t *this, char *fullpath)
{
- int ret = 0;
- struct stat st = {0,};
+ int ret = 0;
+ struct stat st = {0,};
+ char oldpath[PATH_MAX] = {0};
+ br_stub_private_t *priv = NULL;
+
+ priv = this->private;
+
+ (void) snprintf (oldpath, PATH_MAX,
+ "%s/%s", priv->export, OLD_BR_STUB_QUARANTINE_DIR);
ret = sys_stat (fullpath, &st);
if (!ret && !S_ISDIR (st.st_mode))
@@ -233,7 +240,11 @@ br_stub_check_stub_directory (xlator_t *this, char *fullpath)
if (ret) {
if (errno != ENOENT)
goto error_return;
- ret = mkdir_p (fullpath, 0600, _gf_true);
+ ret = sys_stat (oldpath, &st);
+ if (ret)
+ ret = mkdir_p (fullpath, 0600, _gf_true);
+ else
+ ret = sys_rename (oldpath, fullpath);
}
if (ret)
diff --git a/xlators/features/bit-rot/src/stub/bit-rot-stub.c b/xlators/features/bit-rot/src/stub/bit-rot-stub.c
index 4e01f5c86b1..ae99604957b 100644
--- a/xlators/features/bit-rot/src/stub/bit-rot-stub.c
+++ b/xlators/features/bit-rot/src/stub/bit-rot-stub.c
@@ -112,8 +112,6 @@ out:
return -1;
}
-#define BR_STUB_QUARANTINE_DIR GF_HIDDEN_PATH"/quanrantine"
-
int32_t
init (xlator_t *this)
{
diff --git a/xlators/features/bit-rot/src/stub/bit-rot-stub.h b/xlators/features/bit-rot/src/stub/bit-rot-stub.h
index 2d515417059..3facf2fe9c6 100644
--- a/xlators/features/bit-rot/src/stub/bit-rot-stub.h
+++ b/xlators/features/bit-rot/src/stub/bit-rot-stub.h
@@ -24,6 +24,12 @@
#define BAD_OBJECT_THREAD_STACK_SIZE ((size_t)(1024*1024))
+/*
+ * Oops. Spelling mistake. Correcting it
+ */
+#define OLD_BR_STUB_QUARANTINE_DIR GF_HIDDEN_PATH"/quanrantine"
+#define BR_STUB_QUARANTINE_DIR GF_HIDDEN_PATH"/quarantine"
+
typedef int (br_stub_version_cbk) (call_frame_t *, void *,
xlator_t *, int32_t, int32_t, dict_t *);