Ejemplo n.º 1
0
static enkf_fs_type *  enkf_fs_mount_block_fs( FILE * fstab_stream , const char * mount_point , bool read_only ) {
  enkf_fs_type * fs = enkf_fs_alloc_empty( mount_point , read_only );
  {
    int driver_nr;
    for (driver_nr = 0; driver_nr < 5; driver_nr++) {
      fs_driver_enum driver_type = util_fread_int( fstab_stream );
      fs_driver_type * driver = block_fs_driver_open( fstab_stream , mount_point , driver_type , read_only);
      
      enkf_fs_assign_driver( fs , driver , driver_type );
    }
  }
  return fs;
}
Ejemplo n.º 2
0
Archivo: enkf_fs.c Proyecto: shulNN/ert
static enkf_fs_type *  enkf_fs_mount_block_fs( FILE * fstab_stream , const char * mount_point , bool read_only ) {
  enkf_fs_type * fs = enkf_fs_alloc_empty( mount_point , read_only );

  if (!read_only) { //Lock on fs level
    if (!util_try_lockf( fs->lock_file , S_IWUSR + S_IWGRP , &fs->lock_fd)) {
      fprintf(stderr," Another program has already opened filesystem read-write - this instance will be UNSYNCRONIZED read-only. Cross your fingers ....\n");
      fflush( stderr );
      enkf_fs_set_writable(fs, false);
      read_only = true;
    }
  }

  {
    int driver_nr;
    for (driver_nr = 0; driver_nr < 5; driver_nr++) {
      fs_driver_enum driver_type = util_fread_int( fstab_stream );

      fs_driver_type * driver = block_fs_driver_open( fstab_stream , mount_point , driver_type , read_only);
      
      enkf_fs_assign_driver( fs , driver , driver_type );
    }
  }
  return fs;
}