Skip to content
Snippets Groups Projects
Commit dffd4877 authored by Yang Sheng's avatar Yang Sheng
Browse files

Branch b1_6

b=16593
i=johann, robert.read

Add mount retry option for liblustre.
parent 9da8b7be
No related branches found
No related tags found
No related merge requests found
......@@ -324,6 +324,8 @@ int _sysio_lustre_init(void)
extern int _sysio_native_init();
static int mnt_retry = 0;
char *lustre_path = NULL;
void __liblustre_setup_(void)
......@@ -331,13 +333,20 @@ void __liblustre_setup_(void)
char *target = NULL;
char *lustre_driver = "lustre";
unsigned mntflgs = 0;
int err;
int err, count;
lustre_path = getenv("LIBLUSTRE_MOUNT_POINT");
if (!lustre_path) {
lustre_path = "/mnt/lustre";
}
target = getenv("LIBLUSTRE_MOUNT_RETRY");
if (target) {
mnt_retry = atoi(target);
if (mnt_retry < 0)
mnt_retry = 0;
}
/* mount target */
target = getenv("LIBLUSTRE_MOUNT_TARGET");
if (!target) {
......@@ -366,7 +375,16 @@ void __liblustre_setup_(void)
exit(1);
#endif /* INIT_SYSIO */
err = mount(target, lustre_path, lustre_driver, mntflgs, NULL);
count = mnt_retry;
do {
err = mount(target, lustre_path, lustre_driver, mntflgs, NULL);
if (err && mnt_retry && (-- count)) {
fprintf(stderr, "Lustre mount failed: %s. "
"Will retry %d more times\n",
strerror(errno), mnt_retry - count );
sleep(2);
}
} while (err && count > 0);
if (err) {
fprintf(stderr, "Lustre mount failed: %s\n", strerror(errno));
exit(1);
......
......@@ -297,6 +297,7 @@ for NAME in $CONFIGS; do
MDS_MOUNT_OPTS=${MDS_MOUNT_OPTS/#,/-o } \
$SETUP
export LIBLUSTRE_MOUNT_POINT=$MOUNT2
export LIBLUSTRE_MOUNT_RETRY=5
export LIBLUSTRE_MOUNT_TARGET=$MGSNID:/$FSNAME
export LIBLUSTRE_TIMEOUT=`lctl get_param -n timeout`
#export LIBLUSTRE_DEBUG_MASK=`lctl get_param -n debug`
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment