File: ad_gpfs_close.c

package info (click to toggle)
openmpi 2.0.2-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 99,912 kB
  • ctags: 55,589
  • sloc: ansic: 525,999; f90: 18,307; makefile: 12,062; sh: 6,583; java: 6,278; asm: 3,515; cpp: 2,227; perl: 2,136; python: 1,350; lex: 734; fortran: 52; tcl: 12
file content (57 lines) | stat: -rw-r--r-- 1,418 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* ---------------------------------------------------------------- */
/* (C)Copyright IBM Corp.  2007, 2008                               */
/* ---------------------------------------------------------------- */
/**
 * \file ad_gpfs_close.c
 * \brief ???
 */

/* -*- Mode: C; c-basic-offset:4 ; -*- */
/*
 *   Copyright (C) 1997 University of Chicago.
 *   See COPYRIGHT notice in top-level directory.
 */

#include "ad_gpfs.h"
#include "ad_gpfs_tuning.h"
#include <unistd.h>

void ADIOI_GPFS_Close(ADIO_File fd, int *error_code)
{
  int err, derr=0;
  static char myname[] = "ADIOI_GPFS_CLOSE";

#ifdef PROFILE
  MPE_Log_event(9, 0, "start close");
#endif

  if (fd->null_fd >= 0)
      close(fd->null_fd);

  err = close(fd->fd_sys);
  if (fd->fd_direct >= 0)
  {
    derr = close(fd->fd_direct);
  }

#ifdef PROFILE
  MPE_Log_event(10, 0, "end close");
#endif

/*  FPRINTF(stderr,"%s(%d):'%s'. Free %#X\n",myname,__LINE__,fd->filename,(int)fd->fs_ptr);*/
  if (fd->fs_ptr != NULL) {
	  ADIOI_Free(fd->fs_ptr);
	  fd->fs_ptr = NULL;
  }
  fd->fd_sys    = -1;
  fd->fd_direct = -1;

  if (err == -1 || derr == -1)
  {
    *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
                                       myname, __LINE__, MPI_ERR_IO,
                                       "**io",
                                       "**io %s", strerror(errno));
  }
  else *error_code = MPI_SUCCESS;
}