Skip to content

Commit

Permalink
Merge pull request #5612 from edgargabriel/pr/file-delete-fs-framewor…
Browse files Browse the repository at this point in the history
…k-open

io/base: fixes to file_delete selection logic
  • Loading branch information
edgargabriel authored Aug 28, 2018
2 parents 00d12c0 + 2303f0f commit 468085d
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion ompi/mca/io/base/io_base_delete.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* Copyright (c) 2008-2018 University of Houston. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand All @@ -35,6 +36,8 @@
#include "opal/mca/base/base.h"
#include "ompi/mca/io/io.h"
#include "ompi/mca/io/base/base.h"
#include "ompi/mca/fs/fs.h"
#include "ompi/mca/fs/base/base.h"

/*
* Local types
Expand Down Expand Up @@ -68,6 +71,8 @@ static void unquery(avail_io_t *avail, const char *filename, struct opal_info_t

static int delete_file(avail_io_t *avail, const char *filename, struct opal_info_t *info);

extern opal_mutex_t ompi_mpi_ompio_bootstrap_mutex;


/*
* Stuff for the OBJ interface
Expand Down Expand Up @@ -142,8 +147,25 @@ int mca_io_base_delete(const char *filename, struct opal_info_t *info)
}
OBJ_RELEASE(selectable);

/* Finally -- delete the file with the selected component */
if (!strcmp (selected.ai_component.v2_0_0.io_version.mca_component_name,
"ompio")) {
int ret;

opal_mutex_lock(&ompi_mpi_ompio_bootstrap_mutex);
if (OMPI_SUCCESS != (ret = mca_base_framework_open(&ompi_fs_base_framework, 0))) {
opal_mutex_unlock(&ompi_mpi_ompio_bootstrap_mutex);
return err;
}
opal_mutex_unlock(&ompi_mpi_ompio_bootstrap_mutex);

if (OMPI_SUCCESS !=
(ret = mca_fs_base_find_available(OPAL_ENABLE_PROGRESS_THREADS, 1))) {
return err;
}
}


/* Finally -- delete the file with the selected component */
if (OMPI_SUCCESS != (err = delete_file(&selected, filename, info))) {
return err;
}
Expand Down

0 comments on commit 468085d

Please sign in to comment.