RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  [email protected]
  Module: rpm                              Date:   17-Oct-2009 07:46:42
  Branch: HEAD                             Handle: 2009101705464200

  Modified files:
    rpm/rpmdb               logio_rec.c

  Log:
    - dbi: ignore ENOENT retrns from Unlink(2).
    - dbi: use writeFile not creat(2).

  Summary:
    Revision    Changes     Path
    1.7         +6  -3      rpm/rpmdb/logio_rec.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/logio_rec.c
  ============================================================================
  $ cvs diff -u -r1.6 -r1.7 logio_rec.c
  --- rpm/rpmdb/logio_rec.c     12 Oct 2009 23:05:39 -0000      1.6
  +++ rpm/rpmdb/logio_rec.c     17 Oct 2009 05:46:42 -0000      1.7
  @@ -14,6 +14,8 @@
   
   #include "debug.h"
   
  +#undef       DEBUG_RECOVER
  +
   static int writeFile(const char * fn, mode_t mode,
                const DBT * content, const DBT * digest, uint32_t dalgo)
   {
  @@ -76,14 +78,15 @@
       case DB_TXN_ABORT:
       case DB_TXN_BACKWARD_ROLL:
        ret = Unlink(argp->path.data);
  -     if (ret != 0)
  +     if (ret != 0 && errno != ENOENT)
            dbenv->err(dbenv, ret, "Creat: DB_TXN_BACKWARD_ROLL");
        else
            ret = 0;
        break;
       case DB_TXN_APPLY:
       case DB_TXN_FORWARD_ROLL:
  -     ret = creat(argp->path.data, argp->mode);
  +     ret = writeFile(argp->path.data, argp->mode, &argp->content,
  +                             &argp->digest, argp->dalgo);
        if (ret != 0)
            dbenv->err(dbenv, ret, "Creat: DB_TXN_FORWARD_ROLL");
        else
  @@ -143,7 +146,7 @@
       case DB_TXN_APPLY:
       case DB_TXN_FORWARD_ROLL:
        ret = Unlink(argp->path.data);
  -     if (ret != 0)
  +     if (ret != 0 && errno != ENOENT)
            dbenv->err(dbenv, ret, "Unlink: DB_TXN_FORWARD_ROLL");
        else
            ret = 0;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to