Commit d9e42e87 authored by unknown's avatar unknown

Merge perch.ndb.mysql.com:/home/jonas/src/51-work

into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb

parents fed8254e e9e8b0bc
...@@ -385,16 +385,23 @@ void AsyncFile::openReq(Request* request) ...@@ -385,16 +385,23 @@ void AsyncFile::openReq(Request* request)
} }
new_flags |= O_CREAT; new_flags |= O_CREAT;
} }
no_odirect: no_odirect:
if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode))) if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode)))
{ {
PRINT_ERRORANDFLAGS(new_flags); PRINT_ERRORANDFLAGS(new_flags);
if ((errno == ENOENT ) && (new_flags & O_CREAT)) if ((errno == ENOENT) && (new_flags & O_CREAT))
{ {
createDirectories(); createDirectories();
if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode))) if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode)))
{ {
#ifdef O_DIRECT
if (new_flags & O_DIRECT)
{
new_flags &= ~O_DIRECT;
goto no_odirect;
}
#endif
PRINT_ERRORANDFLAGS(new_flags); PRINT_ERRORANDFLAGS(new_flags);
request->error = errno; request->error = errno;
return; return;
......
...@@ -1435,8 +1435,7 @@ NdbTransaction::sendTC_COMMIT_ACK(TransporterFacade *tp, ...@@ -1435,8 +1435,7 @@ NdbTransaction::sendTC_COMMIT_ACK(TransporterFacade *tp,
Uint32 * dataPtr = aSignal->getDataPtrSend(); Uint32 * dataPtr = aSignal->getDataPtrSend();
dataPtr[0] = transId1; dataPtr[0] = transId1;
dataPtr[1] = transId2; dataPtr[1] = transId2;
tp->sendSignalUnCond(aSignal, refToNode(aTCRef));
tp->sendSignal(aSignal, refToNode(aTCRef));
} }
int int
......
...@@ -343,7 +343,7 @@ execute(void * callbackObj, SignalHeader * const header, ...@@ -343,7 +343,7 @@ execute(void * callbackObj, SignalHeader * const header,
Uint32 aNodeId= refToNode(ref); Uint32 aNodeId= refToNode(ref);
tSignal.theReceiversBlockNumber= refToBlock(ref); tSignal.theReceiversBlockNumber= refToBlock(ref);
tSignal.theVerId_signalNumber= GSN_SUB_GCP_COMPLETE_ACK; tSignal.theVerId_signalNumber= GSN_SUB_GCP_COMPLETE_ACK;
theFacade->sendSignal(&tSignal, aNodeId); theFacade->sendSignalUnCond(&tSignal, aNodeId);
} }
break; break;
} }
...@@ -987,7 +987,7 @@ TransporterFacade::sendSignal(NdbApiSignal * aSignal, NodeId aNode){ ...@@ -987,7 +987,7 @@ TransporterFacade::sendSignal(NdbApiSignal * aSignal, NodeId aNode){
LinearSectionPtr ptr[3]; LinearSectionPtr ptr[3];
signalLogger.sendSignal(* aSignal, signalLogger.sendSignal(* aSignal,
1, 1,
aSignal->getDataPtr(), tDataPtr,
aNode, ptr, 0); aNode, ptr, 0);
signalLogger.flushSignalLog(); signalLogger.flushSignalLog();
aSignal->theSendersBlockRef = tmp; aSignal->theSendersBlockRef = tmp;
...@@ -1014,6 +1014,7 @@ TransporterFacade::sendSignal(NdbApiSignal * aSignal, NodeId aNode){ ...@@ -1014,6 +1014,7 @@ TransporterFacade::sendSignal(NdbApiSignal * aSignal, NodeId aNode){
int int
TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){ TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){
Uint32* tDataPtr = aSignal->getDataPtrSend();
#ifdef API_TRACE #ifdef API_TRACE
if(setSignalLog() && TRACE_GSN(aSignal->theVerId_signalNumber)){ if(setSignalLog() && TRACE_GSN(aSignal->theVerId_signalNumber)){
Uint32 tmp = aSignal->theSendersBlockRef; Uint32 tmp = aSignal->theSendersBlockRef;
...@@ -1021,7 +1022,7 @@ TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){ ...@@ -1021,7 +1022,7 @@ TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){
LinearSectionPtr ptr[3]; LinearSectionPtr ptr[3];
signalLogger.sendSignal(* aSignal, signalLogger.sendSignal(* aSignal,
0, 0,
aSignal->getDataPtr(), tDataPtr,
aNode, ptr, 0); aNode, ptr, 0);
signalLogger.flushSignalLog(); signalLogger.flushSignalLog();
aSignal->theSendersBlockRef = tmp; aSignal->theSendersBlockRef = tmp;
...@@ -1032,7 +1033,7 @@ TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){ ...@@ -1032,7 +1033,7 @@ TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){
(aSignal->theReceiversBlockNumber != 0)); (aSignal->theReceiversBlockNumber != 0));
SendStatus ss = theTransporterRegistry->prepareSend(aSignal, SendStatus ss = theTransporterRegistry->prepareSend(aSignal,
0, 0,
aSignal->getDataPtr(), tDataPtr,
aNode, aNode,
0); 0);
......
...@@ -175,7 +175,8 @@ private: ...@@ -175,7 +175,8 @@ private:
friend class GrepSS; friend class GrepSS;
friend class Ndb; friend class Ndb;
friend class Ndb_cluster_connection_impl; friend class Ndb_cluster_connection_impl;
friend class NdbTransaction;
int sendSignalUnCond(NdbApiSignal *, NodeId nodeId); int sendSignalUnCond(NdbApiSignal *, NodeId nodeId);
bool isConnected(NodeId aNodeId); bool isConnected(NodeId aNodeId);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment