1
1
openmpi/ompi/mca/fs/base/fs_base_file_delete.c
Gaëtan Bossu 8522ba112c MCA/IO/OMPIO: fix MPI_File_delete implementation.
OMPIO now uses the correct delete function depending on the fs

mca_common_ompio_file_delete now works this way instead
of calling POSIX unlink:
 - create a minimal file handle with the given file name
 - select the best fs component using this file handle
 - call the component-specific file delete function

Signed-off-by: Gaëtan Bossu <gbossu@ddn.com>
2018-07-17 18:17:13 +02:00

59 строки
1.7 KiB
C

/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2011 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2008-2018 University of Houston. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* Copyright (c) 2018 DataDirect Networks. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "base.h"
#include <unistd.h>
#include "mpi.h"
#include "ompi/constants.h"
#include "ompi/mca/fs/fs.h"
/*
* file_delete_ufs
*
* Function: - deletes a file
* Accepts: - file name & info
* Returns: - Success if file closed
*/
int mca_fs_base_file_delete (char* file_name,
struct opal_info_t *info)
{
int ret;
ret = unlink(file_name);
if (0 > ret ) {
if ( ENOENT == errno ) {
return MPI_ERR_NO_SUCH_FILE;
} else {
opal_output (0, "mca_fs_base_file_delete: Could not remove file "
"%s errno = %d %s\n",
file_name, errno, strerror(errno));
return MPI_ERR_ACCESS;
}
}
return OMPI_SUCCESS;
}