Sfoglia il codice sorgente

apt-pkg/contrib/mmap.cc:
- guard only the msync call with _POSIX_SYNCHRONIZED_IO rather
than also the fallback code as it breaks APT on hurd since 0.9.7.3
as the fallback is now always used on non-linux (Closes: #683354)

Pino Toscano 14 anni fa
parent
commit
3ac981df10
2 ha cambiato i file con 13 aggiunte e 7 eliminazioni
  1. 7 7
      apt-pkg/contrib/mmap.cc
  2. 6 0
      debian/changelog

+ 7 - 7
apt-pkg/contrib/mmap.cc

@@ -156,11 +156,10 @@ bool MMap::Close(bool DoSync)
 /* This is done in syncronous mode - the docs indicate that this will 
    not return till all IO is complete */
 bool MMap::Sync()
-{   
+{
    if ((Flags & UnMapped) == UnMapped)
       return true;
-   
-#ifdef _POSIX_SYNCHRONIZED_IO   
+
    if ((Flags & ReadOnly) != ReadOnly)
    {
       if (SyncToFd != NULL)
@@ -170,11 +169,12 @@ bool MMap::Sync()
       }
       else
       {
+#ifdef _POSIX_SYNCHRONIZED_IO
 	 if (msync((char *)Base, iSize, MS_SYNC) < 0)
 	    return _error->Errno("msync", _("Unable to synchronize mmap"));
+#endif
       }
    }
-#endif   
    return true;
 }
 									/*}}}*/
@@ -185,8 +185,7 @@ bool MMap::Sync(unsigned long Start,unsigned long Stop)
 {
    if ((Flags & UnMapped) == UnMapped)
       return true;
-   
-#ifdef _POSIX_SYNCHRONIZED_IO
+
    unsigned long long PSize = sysconf(_SC_PAGESIZE);
    if ((Flags & ReadOnly) != ReadOnly)
    {
@@ -198,11 +197,12 @@ bool MMap::Sync(unsigned long Start,unsigned long Stop)
       }
       else
       {
+#ifdef _POSIX_SYNCHRONIZED_IO
 	 if (msync((char *)Base+(unsigned long long)(Start/PSize)*PSize,Stop - Start,MS_SYNC) < 0)
 	    return _error->Errno("msync", _("Unable to synchronize mmap"));
+#endif
       }
    }
-#endif   
    return true;
 }
 									/*}}}*/

+ 6 - 0
debian/changelog

@@ -6,6 +6,12 @@ apt (0.9.7.4) UNRELEASED; urgency=low
   [ Program translation updates ]
   * Polish (Michał Kułach)
 
+  [ Pino Toscano ]
+  * apt-pkg/contrib/mmap.cc:
+    - guard only the msync call with _POSIX_SYNCHRONIZED_IO rather
+      than also the fallback code as it breaks APT on hurd since 0.9.7.3
+      as the fallback is now always used on non-linux (Closes: #683354)
+
  -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 18 Jul 2012 11:45:57 +0200
 
 apt (0.9.7.3) UNRELEASED; urgency=low