{ GDSFILEXT_CLNUP; send_msg_csa(CSA_ARG(cs_addrs) VARLSTCNT(8) ERR_DBFILERR, 5, RTS_ERROR_LITERAL("fsync1()"), CALLFROM, status); return (uint4)(NO_FREE_SPACE); } } if (WBTEST_ENABLED(WBTEST_FILE_EXTEND_INTERRUPT_2)) { LONG_SLEEP(600); assert(FALSE); /* Should be killed before that */ } DEBUG_ONLY(prev_extend_blks_to_upgrd = cs_data->blks_to_upgrd;) /* inctn_detail.blks_to_upgrd_delta holds the increase in "csd->blks_to_upgrd" due to the file extension */ inctn_detail.blks2upgrd_struct.blks_to_upgrd_delta = (IS_GDS_BLK_DOWNGRADE_NEEDED(cs_data->desired_db_format) ? new_bit_maps : 0); if (JNL_ENABLED(cs_data)) { save_inctn_opcode = inctn_opcode; if (mu_reorg_process) inctn_opcode = inctn_gdsfilext_mu_reorg; else inctn_opcode = inctn_gdsfilext_gtm; if (0 == jpc->pini_addr) jnl_put_jrt_pini(cs_addrs); jnl_write_inctn_rec(cs_addrs); inctn_opcode = save_inctn_opcode; /* Harden INCTN to disk before updating/flushing database. This will ensure that any positive adjustment to the * blks_to_upgrd counter (stored in the inctn record) is seen by recovery before a V4 format bitmap block is. */ jnl_status = jnl_flush(gv_cur_region);
grab_crit(gv_cur_region); LSEEKWRITE(udi->fd, new_eof, buff, DISK_BLOCK_SIZE, save_errno); } } free(buff); if (0 != save_errno) { GDSFILEXT_CLNUP; if (ENOSPC == save_errno) return (uint4)(NO_FREE_SPACE); send_msg(VARLSTCNT(5) ERR_DBFILERR, 2, DB_LEN_STR(gv_cur_region), save_errno); return (uint4)(NO_FREE_SPACE); } DEBUG_ONLY(prev_extend_blks_to_upgrd = cs_data->blks_to_upgrd;) /* inctn_detail.blks_to_upgrd_delta holds the increase in "csd->blks_to_upgrd" due to the file extension */ inctn_detail.blks_to_upgrd_delta = (IS_GDS_BLK_DOWNGRADE_NEEDED(cs_data->desired_db_format) ? new_bit_maps : 0); if (JNL_ENABLED(cs_data)) { save_inctn_opcode = inctn_opcode; if (mu_reorg_process) inctn_opcode = inctn_gdsfilext_mu_reorg; else inctn_opcode = inctn_gdsfilext_gtm; if (0 == jpc->pini_addr) jnl_put_jrt_pini(cs_addrs); jnl_write_inctn_rec(cs_addrs); inctn_opcode = save_inctn_opcode; /* Harden INCTN to disk before updating/flushing database. This will ensure that any positive adjustment to the * blks_to_upgrd counter (stored in the inctn record) is seen by recovery before a V4 format bitmap block is. */ jnl_status = jnl_flush(gv_cur_region);