diff options
-rw-r--r-- | tests/bitrot/bug-1294786.t | 12 | ||||
-rw-r--r-- | tests/bitrot/bug-1373520.t | 4 | ||||
-rw-r--r-- | tests/volume.rc | 2 | ||||
-rw-r--r-- | xlators/features/bit-rot/src/stub/bit-rot-stub-helpers.c | 17 | ||||
-rw-r--r-- | xlators/features/bit-rot/src/stub/bit-rot-stub.c | 2 | ||||
-rw-r--r-- | xlators/features/bit-rot/src/stub/bit-rot-stub.h | 6 |
6 files changed, 29 insertions, 14 deletions
diff --git a/tests/bitrot/bug-1294786.t b/tests/bitrot/bug-1294786.t index d395d76b7ed..b177574f756 100644 --- a/tests/bitrot/bug-1294786.t +++ b/tests/bitrot/bug-1294786.t @@ -56,10 +56,10 @@ echo "Corrupted data" >> $B1/FILE2 #Manually set bad-file xattr since we can't wait for an hour for scrubber. TEST setfattr -n trusted.bit-rot.bad-file -v 0x3100 $B1/FILE1 TEST setfattr -n trusted.bit-rot.bad-file -v 0x3100 $B1/FILE2 -TEST touch "$B1/.glusterfs/quanrantine/$gfid1" -TEST chmod 000 "$B1/.glusterfs/quanrantine/$gfid1" -TEST touch "$B1/.glusterfs/quanrantine/$gfid2" -TEST chmod 000 "$B1/.glusterfs/quanrantine/$gfid2" +TEST touch "$B1/.glusterfs/quarantine/$gfid1" +TEST chmod 000 "$B1/.glusterfs/quarantine/$gfid1" +TEST touch "$B1/.glusterfs/quarantine/$gfid2" +TEST chmod 000 "$B1/.glusterfs/quarantine/$gfid2" EXPECT "4" get_quarantine_count "$B1"; TEST $CLI_1 volume stop $V0 @@ -80,7 +80,7 @@ EXPECT "$uuid2" get_node_uuid; #BUG 1308961 #Remove bad files from mount, it should be removed from quarantine directory. TEST rm -f $M0/FILE1 -TEST ! stat "$B1/.glusterfs/quanrantine/$gfid1" +TEST ! stat "$B1/.glusterfs/quarantine/$gfid1" #BUG 1308961 #Set network.inode-lru-limit to 5 and exceed the limit by creating 10 other files. @@ -90,6 +90,6 @@ for i in {1..10} do echo "1234" > $M0/file_$i done -TEST stat "$B1/.glusterfs/quanrantine/$gfid2" +TEST stat "$B1/.glusterfs/quarantine/$gfid2" cleanup; diff --git a/tests/bitrot/bug-1373520.t b/tests/bitrot/bug-1373520.t index 67bb984888c..5e69ab78fe9 100644 --- a/tests/bitrot/bug-1373520.t +++ b/tests/bitrot/bug-1373520.t @@ -37,8 +37,8 @@ gfid1=$(getfattr -n glusterfs.gfid.string --only-values $M0/FILE1) #Manually set bad-file xattr TEST setfattr -n trusted.bit-rot.bad-file -v 0x3100 $B0/${V0}5/FILE1 -TEST touch "$B0/${V0}5/.glusterfs/quanrantine/$gfid1" -TEST chmod 000 "$B0/${V0}5/.glusterfs/quanrantine/$gfid1" +TEST touch "$B0/${V0}5/.glusterfs/quarantine/$gfid1" +TEST chmod 000 "$B0/${V0}5/.glusterfs/quarantine/$gfid1" EXPECT "3" get_quarantine_count "$B0/${V0}5"; TEST $CLI volume stop $V0 diff --git a/tests/volume.rc b/tests/volume.rc index e3ae408f971..bd51893392e 100644 --- a/tests/volume.rc +++ b/tests/volume.rc @@ -618,7 +618,7 @@ function get_scrubd_count { } function get_quarantine_count { - ls -l "$1/.glusterfs/quanrantine" | wc -l + ls -l "$1/.glusterfs/quarantine" | wc -l } function get_quotad_count { 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 *); |