sfx2/source/doc/docfile.cxx | 13 ++++++++++++- ucb/source/ucp/file/shell.cxx | 4 ---- 2 files changed, 12 insertions(+), 5 deletions(-)
New commits: commit c16c9fe5b9caa5792d930ec2f3339108d50cd2e1 Author: Michael Meeks <michael.me...@suse.com> Date: Sun Apr 15 03:33:22 2012 +0200 re-open output file on save to fsync to improve first-start performance (cherry picked from commit a0b5ba2e821091b8053bfc1d2f9c99aca7431907) Signed-off-by: Stephan Bergmann <sberg...@redhat.com> diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx index b9aeb16..3b41fc7 100644 --- a/sfx2/source/doc/docfile.cxx +++ b/sfx2/source/doc/docfile.cxx @@ -1942,9 +1942,20 @@ void SfxMedium::Transfer_Impl() xComEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler, Reference< ::com::sun::star::ucb::XProgressHandler >() ); - if ( ::utl::LocalFileHelper::IsLocalFile( aDest.GetMainURL( INetURLObject::NO_DECODE ) ) || !aDest.removeSegment() ) + rtl::OUString aDestURL( aDest.GetMainURL( INetURLObject::NO_DECODE ) ); + if ( ::utl::LocalFileHelper::IsLocalFile( aDestURL ) || !aDest.removeSegment() ) { TransactedTransferForFS_Impl( aSource, aDest, xComEnv ); + + // Hideous - no clean way to do this, so we re-open the file just to fsync it + osl::File aFile( aDestURL ); + if ( aFile.open( osl_File_OpenFlag_Write ) == osl::FileBase::E_None ) + { + aFile.sync(); + OSL_TRACE("fsync'd saved file '%s'\n", + rtl::OUStringToOString( aDestURL, RTL_TEXTENCODING_UTF8 ).getStr() ); + aFile.close(); + } } else { diff --git a/ucb/source/ucp/file/shell.cxx b/ucb/source/ucp/file/shell.cxx index 1cd1505..fcc238b 100644 --- a/ucb/source/ucp/file/shell.cxx +++ b/ucb/source/ucp/file/shell.cxx @@ -1913,10 +1913,6 @@ shell::write( sal_Int32 CommandId, } } while( nReadBytes == nRequestedBytes ); - aFile.sync(); // fsync / flush it to disk. - OSL_TRACE( "fsync'd file '%s'\n", - rtl::OUStringToOString( aUnqPath, RTL_TEXTENCODING_UTF8 ).getStr() ); - err = aFile.close(); if( err != osl::FileBase::E_None ) { _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits