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; }
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; }