]> git.saurik.com Git - apt.git/commitdiff
apt-pkg/contrib/mmap.cc:
authorPino Toscano <pino@debian.org>
Sat, 4 Aug 2012 08:20:30 +0000 (10:20 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 4 Aug 2012 08:20:30 +0000 (10:20 +0200)
- 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)

apt-pkg/contrib/mmap.cc
debian/changelog

index 3e6ef3520d2520705ec8eb5aae82b6bb7bc8d51b..df7cd2a59f6f387abca376babc335f184b626cf4 100644 (file)
@@ -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()
 /* 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;
    if ((Flags & UnMapped) == UnMapped)
       return true;
-   
-#ifdef _POSIX_SYNCHRONIZED_IO   
+
    if ((Flags & ReadOnly) != ReadOnly)
    {
       if (SyncToFd != NULL)
    if ((Flags & ReadOnly) != ReadOnly)
    {
       if (SyncToFd != NULL)
@@ -170,11 +169,12 @@ bool MMap::Sync()
       }
       else
       {
       }
       else
       {
+#ifdef _POSIX_SYNCHRONIZED_IO
         if (msync((char *)Base, iSize, MS_SYNC) < 0)
            return _error->Errno("msync", _("Unable to synchronize mmap"));
         if (msync((char *)Base, iSize, MS_SYNC) < 0)
            return _error->Errno("msync", _("Unable to synchronize mmap"));
+#endif
       }
    }
       }
    }
-#endif   
    return true;
 }
                                                                        /*}}}*/
    return true;
 }
                                                                        /*}}}*/
@@ -185,8 +185,7 @@ bool MMap::Sync(unsigned long Start,unsigned long Stop)
 {
    if ((Flags & UnMapped) == UnMapped)
       return true;
 {
    if ((Flags & UnMapped) == UnMapped)
       return true;
-   
-#ifdef _POSIX_SYNCHRONIZED_IO
+
    unsigned long long PSize = sysconf(_SC_PAGESIZE);
    if ((Flags & ReadOnly) != ReadOnly)
    {
    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
       {
       }
       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"));
         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;
 }
                                                                        /*}}}*/
    return true;
 }
                                                                        /*}}}*/
index 3aa1f7e86e98e0eab4303caa48655828a43240dd..2ad1134a8255dbb1341db260632e936a6b716bc2 100644 (file)
@@ -6,6 +6,12 @@ apt (0.9.7.4) UNRELEASED; urgency=low
   [ Program translation updates ]
   * Polish (Michał Kułach)
 
   [ 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
  -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 18 Jul 2012 11:45:57 +0200
 
 apt (0.9.7.3) UNRELEASED; urgency=low