This source file includes following definitions.
- ADIOI_PVFS2_Fcntl
1
2
3
4
5
6
7
8 #include "ad_pvfs2.h"
9 #include "adio_extern.h"
10 #include "ad_pvfs2_common.h"
11
12 void ADIOI_PVFS2_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct,
13 int *error_code)
14 {
15 int ret;
16 ADIOI_PVFS2_fs *pvfs_fs;
17 PVFS_sysresp_getattr resp_getattr;
18 static char myname[] = "ADIOI_PVFS2_FCNTL";
19
20 pvfs_fs = (ADIOI_PVFS2_fs*)fd->fs_ptr;
21
22 switch(flag) {
23 case ADIO_FCNTL_GET_FSIZE:
24 ret = PVFS_sys_getattr(pvfs_fs->object_ref, PVFS_ATTR_SYS_SIZE,
25 &(pvfs_fs->credentials), &resp_getattr);
26 if (ret != 0 ) {
27
28 *error_code = MPIO_Err_create_code(MPI_SUCCESS,
29 MPIR_ERR_RECOVERABLE,
30 myname, __LINE__,
31 ADIOI_PVFS2_error_convert(ret),
32 "Error in PVFS_sys_getattr", 0);
33
34 }
35 else {
36 *error_code = MPI_SUCCESS;
37 }
38 fcntl_struct->fsize = resp_getattr.attr.size;
39 return;
40
41 case ADIO_FCNTL_SET_DISKSPACE:
42 ADIOI_GEN_Prealloc(fd, fcntl_struct->diskspace, error_code);
43 break;
44
45
46 case ADIO_FCNTL_SET_ATOMICITY:
47 default:
48 *error_code = MPIO_Err_create_code(MPI_SUCCESS,
49 MPIR_ERR_RECOVERABLE,
50 myname, __LINE__,
51 MPI_ERR_ARG,
52 "**flag", "**flag %d", flag);
53
54 }
55 }
56
57
58
59