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 *);  | 
