root/ompi/mca/io/romio321/romio/adio/common/ad_resize.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. ADIOI_GEN_Resize

   1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
   2 /* 
   3  *
   4  *   Copyright (C) 2004 University of Chicago. 
   5  *   See COPYRIGHT notice in top-level directory.
   6  */
   7 
   8 #include "adio.h"
   9 
  10 #ifdef HAVE_UNISTD_H
  11 #include <unistd.h>
  12 #endif
  13 
  14 void ADIOI_GEN_Resize(ADIO_File fd, ADIO_Offset size, int *error_code)
  15 {
  16     int err, rank;
  17     static char myname[] = "ADIOI_GEN_RESIZE";
  18 
  19     MPI_Comm_rank(fd->comm, &rank);
  20 
  21     /* first aggregator performs ftruncate() */
  22     if (rank == fd->hints->ranklist[0]) {
  23     ADIOI_Assert(size == (off_t) size); 
  24         err = ftruncate(fd->fd_sys, (off_t)size);
  25     }
  26 
  27     /* bcast return value */
  28     MPI_Bcast(&err, 1, MPI_INT, fd->hints->ranklist[0], fd->comm);
  29 
  30     /* --BEGIN ERROR HANDLING-- */
  31     if (err == -1) {
  32         *error_code = ADIOI_Err_create_code(myname, fd->filename, errno);
  33         return;
  34     }
  35     /* --END ERROR HANDLING-- */
  36 
  37     *error_code = MPI_SUCCESS;
  38 }

/* [<][>][^][v][top][bottom][index][help] */