diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfat32/sl_file.cpp --- a/userlibandfileserver/fileserver/sfat32/sl_file.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat32/sl_file.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -245,8 +245,10 @@ if((startPos + length > curSize) || (startPos > startPos + length) ) aLength=curSize-startPos; + + TUint flag = DirectIOMode(aMessage) ? RLocalDrive::ELocDrvDirectIO : 0; - FatMount().ReadFromClusterListL(iCurrentPos,aLength,aDes,aMessage,aOffset); + FatMount().ReadFromClusterListL(iCurrentPos,aLength,aDes,aMessage,aOffset, flag); aLength=iCurrentPos.iPos-startPos; } @@ -295,7 +297,9 @@ TUint badcluster=0; TUint goodcluster=0; - TRAPD(ret, FatMount().WriteToClusterListL(iCurrentPos,aLength,aSrc,aMessage,aOffset,badcluster, goodcluster)); + TUint flag = DirectIOMode(aMessage) ? RLocalDrive::ELocDrvDirectIO : 0; + + TRAPD(ret, FatMount().WriteToClusterListL(iCurrentPos,aLength,aSrc,aMessage,aOffset,badcluster, goodcluster, flag)); if (ret == KErrCorrupt || ret == KErrDied) {