diff --git a/src/gausskernel/storage/smgr/segment/data_file.cpp b/src/gausskernel/storage/smgr/segment/data_file.cpp index a64f31a4c..4d88ed328 100644 --- a/src/gausskernel/storage/smgr/segment/data_file.cpp +++ b/src/gausskernel/storage/smgr/segment/data_file.cpp @@ -239,7 +239,7 @@ SegPhysicalFile df_get_physical_file(SegLogicFile *sf, int sliceno, BlockNumber SegmentCheck(sliceno < sf->file_num); if (ENABLE_DMS && sf->segfiles[sliceno].fd <= 0) { char *filename = slice_filename(sf->filename, sliceno); - sf->segfiles[sliceno].fd = dv_open_file(filename, O_RDONLY | PG_BINARY, SEGMENT_FILE_MODE); + sf->segfiles[sliceno].fd = dv_open_file(filename, O_RDWR | PG_BINARY, SEGMENT_FILE_MODE); pfree(filename); }