OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-2832-g355b8c7

Gerrit Code Review
Tue, 14 Aug 2012 06:21:56 -0700 (PDT)

The following commit has been merged in the master branch:
commit 355b8c73ed5adc5c182cf29561cc360ef4674f9e
Author: Michael Meffie <>
Date:   Sat Jul 28 11:37:59 2012 -0400

    vlserver: fix vldb header initialization
    Avoid creating new vldb files with zeroed header data.
    The code path is as follows; The call to Init_VLdbase makes several
    passes. On the first pass, the header is found to be empty, and so a
    write lock is obtained on the second pass.  On this second pass,
    UpdateCache creates a newly initialized header and writes it to the
    db.  The rd_cheader is set to the newly created header data, and the
    wr_cheader is still cleared at this point.
    When the transaction on the second pass ended in Init_VLdbase, the
    data is committed and vlsynccache() is called.  In this call to
    vlsynccache(), the cleared write header buffer (wr_cheader) is
    copied over the newly initialized rd_cheader buffer.  Init_VLdbase
    then returns to the caller, and if the caller writes to the db, the
    header on disk is then cleared.
    Instead of initializing the read header buffer when rebuilding the
    db header, initialize the write header buffer. When the ubik
    transaction is ended, the call to vlsynccache() updates the contents
    of the read header buffer with contents of the new/rebuilt header.
    This error was introduced with commits:
    Change-Id: If9c178bf28c55c50311554b12ffff9404785d052
    Reviewed-by: Derrick Brashear <>
    Reviewed-by: Alistair Ferguson <>
    Tested-by: BuildBot <>

 src/vlserver/vlprocs.c |    7 ++++++-
 src/vlserver/vlutils.c |   20 +++++++++++---------
 2 files changed, 17 insertions(+), 10 deletions(-)

OpenAFS Master Repository