mirror of https://github.com/schoebel/mars
main: remove compat alivelinks
Now superseded by automatic actual dir creation.
This commit is contained in:
parent
90a6c6e0c0
commit
9f0a53487e
|
@ -478,32 +478,17 @@ const char * const rot_keys[] = {
|
||||||
#define IS_EMERGENCY_PRIMARY() (mars_emergency_mode > 2)
|
#define IS_EMERGENCY_PRIMARY() (mars_emergency_mode > 2)
|
||||||
#define IS_JAMMED() (mars_emergency_mode > 3)
|
#define IS_JAMMED() (mars_emergency_mode > 3)
|
||||||
|
|
||||||
static bool write_alivelinks = false;
|
|
||||||
static bool compat_alivelinks = false;
|
|
||||||
static bool needed_compat_alivelinks = false;
|
|
||||||
|
|
||||||
/* for safety, consider both the old and new alivelink path */
|
|
||||||
static
|
static
|
||||||
void get_alivelink_stamp(const char *name, const char *peer,
|
void get_alivelink_stamp(const char *name, const char *peer,
|
||||||
struct lamport_time *stamp)
|
struct lamport_time *stamp)
|
||||||
{
|
{
|
||||||
const char *peer_time_path1 = NULL;
|
const char *peer_time_path1 = NULL;
|
||||||
const char *peer_time_path2 = NULL;
|
|
||||||
struct kstat peer_time_stat1 = {};
|
struct kstat peer_time_stat1 = {};
|
||||||
struct kstat peer_time_stat2 = {};
|
|
||||||
|
|
||||||
peer_time_path1 = path_make("/mars/actual-%s/%s", peer, name);
|
peer_time_path1 = path_make("/mars/actual-%s/%s", peer, name);
|
||||||
peer_time_path2 = path_make("/mars/%s-%s", name, peer);
|
|
||||||
mars_stat(peer_time_path1, &peer_time_stat1, true);
|
mars_stat(peer_time_path1, &peer_time_stat1, true);
|
||||||
mars_stat(peer_time_path2, &peer_time_stat2, true);
|
|
||||||
*stamp = peer_time_stat1.mtime;
|
*stamp = peer_time_stat1.mtime;
|
||||||
if (lamport_time_compare(&peer_time_stat1.mtime,
|
|
||||||
&peer_time_stat2.mtime) < 0) {
|
|
||||||
needed_compat_alivelinks = true;
|
|
||||||
*stamp = peer_time_stat2.mtime;
|
|
||||||
}
|
|
||||||
brick_string_free(peer_time_path1);
|
brick_string_free(peer_time_path1);
|
||||||
brick_string_free(peer_time_path2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
|
@ -524,22 +509,9 @@ static
|
||||||
const char *get_alivelink(const char *name, const char *peer)
|
const char *get_alivelink(const char *name, const char *peer)
|
||||||
{
|
{
|
||||||
const char *path1 = path_make("/mars/actual-%s/%s", peer, name);
|
const char *path1 = path_make("/mars/actual-%s/%s", peer, name);
|
||||||
const char *path2 = path_make("/mars/%s-%s", name, peer);
|
const char *result1 = ordered_readlink(path1, NULL);
|
||||||
struct lamport_time stamp1 = {};
|
|
||||||
struct lamport_time stamp2 = {};
|
|
||||||
const char *result1 = ordered_readlink(path1, &stamp1);
|
|
||||||
const char *result2 = ordered_readlink(path2, &stamp2);
|
|
||||||
|
|
||||||
if (lamport_time_compare(&stamp1, &stamp2) < 0) {
|
|
||||||
needed_compat_alivelinks = true;
|
|
||||||
brick_string_free(result1);
|
|
||||||
result1 = result2;
|
|
||||||
} else {
|
|
||||||
brick_string_free(result2);
|
|
||||||
}
|
|
||||||
|
|
||||||
brick_string_free(path1);
|
brick_string_free(path1);
|
||||||
brick_string_free(path2);
|
|
||||||
return result1;
|
return result1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -567,32 +539,6 @@ void get_marsadm_version(const char *peer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
|
||||||
void __make_alivelink_str_old(const char *name, const char *src, bool lazy)
|
|
||||||
{
|
|
||||||
char *dst = path_make("/mars/%s-%s", name, my_id());
|
|
||||||
|
|
||||||
if (!src || !dst) {
|
|
||||||
MARS_ERR("cannot make alivelink paths\n");
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
if (lazy) {
|
|
||||||
char *check = mars_readlink(dst, NULL);
|
|
||||||
bool ok = (check && !strcmp(check, src));
|
|
||||||
|
|
||||||
brick_string_free(check);
|
|
||||||
if (ok) {
|
|
||||||
MARS_DBG("symlink '%s' -> '%s' has not changed\n", src, dst);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
MARS_DBG("'%s' -> '%s'\n", src, dst);
|
|
||||||
if (write_alivelinks)
|
|
||||||
ordered_symlink(src, dst, NULL);
|
|
||||||
err:
|
|
||||||
brick_string_free(dst);
|
|
||||||
}
|
|
||||||
|
|
||||||
static
|
static
|
||||||
void __make_alivelink_str(const char *name, const char *src, bool lazy)
|
void __make_alivelink_str(const char *name, const char *src, bool lazy)
|
||||||
{
|
{
|
||||||
|
@ -602,8 +548,6 @@ void __make_alivelink_str(const char *name, const char *src, bool lazy)
|
||||||
MARS_ERR("cannot make alivelink paths\n");
|
MARS_ERR("cannot make alivelink paths\n");
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
if (compat_alivelinks)
|
|
||||||
__make_alivelink_str_old(name, src, lazy);
|
|
||||||
if (lazy) {
|
if (lazy) {
|
||||||
char *check = mars_readlink(dst, NULL);
|
char *check = mars_readlink(dst, NULL);
|
||||||
bool ok = (check && !strcmp(check, src));
|
bool ok = (check && !strcmp(check, src));
|
||||||
|
@ -615,8 +559,7 @@ void __make_alivelink_str(const char *name, const char *src, bool lazy)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MARS_DBG("'%s' -> '%s'\n", src, dst);
|
MARS_DBG("'%s' -> '%s'\n", src, dst);
|
||||||
if (write_alivelinks)
|
ordered_symlink(src, dst, NULL);
|
||||||
ordered_symlink(src, dst, NULL);
|
|
||||||
err:
|
err:
|
||||||
brick_string_free(dst);
|
brick_string_free(dst);
|
||||||
}
|
}
|
||||||
|
@ -7160,10 +7103,6 @@ int make_uuid(struct mars_dent *dent)
|
||||||
|
|
||||||
brick_string_free(my_uuid);
|
brick_string_free(my_uuid);
|
||||||
my_uuid = brick_strdup(dent->new_link);
|
my_uuid = brick_strdup(dent->new_link);
|
||||||
/* Do not write alivelinks before {create,join}-cluster
|
|
||||||
* has been exectued.
|
|
||||||
*/
|
|
||||||
write_alivelinks = true;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7910,16 +7849,6 @@ static int _main_thread(void *data)
|
||||||
_tmp_oneshot_stamp.tv_sec = 0;
|
_tmp_oneshot_stamp.tv_sec = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* determine compat_* variables */
|
|
||||||
compat_alivelinks =
|
|
||||||
needed_compat_alivelinks ||
|
|
||||||
!(usable_strategy_version >= 3 &&
|
|
||||||
(marsadm_version_major > 2 ||
|
|
||||||
(marsadm_version_major == 2 &&
|
|
||||||
marsadm_version_minor >= 8)));
|
|
||||||
needed_compat_alivelinks = false;
|
|
||||||
|
|
||||||
__make_alivelink("compat-alivelinks", compat_alivelinks, true);
|
|
||||||
|
|
||||||
update_brick_mem_freelist_max();
|
update_brick_mem_freelist_max();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue