mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 11:57:38 +02:00
ndb - bug#28726
make sure to remove LCP files aswell if specifying --initial storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: Add removal of LCP/X directories
This commit is contained in:
parent
c8e0d0dbd5
commit
253c2808b3
1 changed files with 24 additions and 6 deletions
|
|
@ -2761,16 +2761,34 @@ void Ndbcntr::execSTART_ORD(Signal* signal){
|
|||
c_missra.execSTART_ORD(signal);
|
||||
}
|
||||
|
||||
#define CLEAR_DX 13
|
||||
#define CLEAR_LCP 3
|
||||
|
||||
void
|
||||
Ndbcntr::clearFilesystem(Signal* signal){
|
||||
Ndbcntr::clearFilesystem(Signal* signal)
|
||||
{
|
||||
const Uint32 lcp = c_fsRemoveCount >= CLEAR_DX;
|
||||
|
||||
FsRemoveReq * req = (FsRemoveReq *)signal->getDataPtrSend();
|
||||
req->userReference = reference();
|
||||
req->userPointer = 0;
|
||||
req->directory = 1;
|
||||
req->ownDirectory = 1;
|
||||
FsOpenReq::setVersion(req->fileNumber, 3);
|
||||
FsOpenReq::setSuffix(req->fileNumber, FsOpenReq::S_CTL); // Can by any...
|
||||
FsOpenReq::v1_setDisk(req->fileNumber, c_fsRemoveCount);
|
||||
|
||||
if (lcp == 0)
|
||||
{
|
||||
FsOpenReq::setVersion(req->fileNumber, 3);
|
||||
FsOpenReq::setSuffix(req->fileNumber, FsOpenReq::S_CTL); // Can by any...
|
||||
FsOpenReq::v1_setDisk(req->fileNumber, c_fsRemoveCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
FsOpenReq::setVersion(req->fileNumber, 5);
|
||||
FsOpenReq::setSuffix(req->fileNumber, FsOpenReq::S_DATA);
|
||||
FsOpenReq::v5_setLcpNo(req->fileNumber, c_fsRemoveCount - CLEAR_DX);
|
||||
FsOpenReq::v5_setTableId(req->fileNumber, 0);
|
||||
FsOpenReq::v5_setFragmentId(req->fileNumber, 0);
|
||||
}
|
||||
sendSignal(NDBFS_REF, GSN_FSREMOVEREQ, signal,
|
||||
FsRemoveReq::SignalLength, JBA);
|
||||
c_fsRemoveCount++;
|
||||
|
|
@ -2779,12 +2797,12 @@ Ndbcntr::clearFilesystem(Signal* signal){
|
|||
void
|
||||
Ndbcntr::execFSREMOVECONF(Signal* signal){
|
||||
jamEntry();
|
||||
if(c_fsRemoveCount == 13){
|
||||
if(c_fsRemoveCount == CLEAR_DX + CLEAR_LCP){
|
||||
jam();
|
||||
sendSttorry(signal);
|
||||
} else {
|
||||
jam();
|
||||
ndbrequire(c_fsRemoveCount < 13);
|
||||
ndbrequire(c_fsRemoveCount < CLEAR_DX + CLEAR_LCP);
|
||||
clearFilesystem(signal);
|
||||
}//if
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue