OpenAFS Master Repository branch, master, updated. BP--openafs-stable-1_6_x-1220-g0284e65

Gerrit Code Review
Thu, 2 Jun 2011 07:38:37 -0700 (PDT)

The following commit has been merged in the master branch:
commit 0284e65f97861e888d95576f22a93cd681813c39
Author: Simon Wilkinson <>
Date:   Wed Apr 27 14:24:56 2011 -0400

    dir: Explicitly state buffer locations for data
    DNew and DRead always returned directory page aligned pointers,
    however the directory code further manipulates those pointers,
    requiring the DRelease be able to fill a page when passed a pointer
    to any address within that page. This is relatively straightforward
    in the userspace implementation, but much more complex in the kernel,
    where all of the directory pages are not necessarily contiguous.
    Resolve this issue by making DNew, DRead and DRelease all return a
    new structure, struct DirBuffer. This structure contains both a
    pointer to the data, and an implementation specific private
    pointer to data describing the page containing the address. The
    directory code is free to play with the data pointer as it wishes,
    as long as the private pointer to the page is passed through intact.
    DRelease (and DVOffset) can then simply use the private pointer for
    their operations, without having to walk page lists.
    This new behaviour also requires changes to the directory functions
    GetBlob, FindItem and FindFid which all return pointers to directory
    Change-Id: I8b8b003b789976b593a7c752969f47d55f4ee707
    Tested-by: Derrick Brashear <>
    Reviewed-by: Derrick Brashear <>

 src/afs/LINUX/osi_vnodeops.c     |   10 +-
 src/afs/LINUX24/osi_vnodeops.c   |    5 +-
 src/afs/VNOPS/afs_vnop_lookup.c  |   13 +-
 src/afs/VNOPS/afs_vnop_readdir.c |  266 +++------------------------
 src/afs/afs_buffer.c             |   94 +++++-----
 src/afs/afs_prototypes.h         |    7 +-
 src/dir/              |    2 +-
 src/dir/buffer.c                 |   71 ++++---
 src/dir/dir.c                    |  379 +++++++++++++++++++++++---------------
 src/dir/dir.h                    |   18 +-
 src/dir/salvage.c                |  114 +++++++-----
 11 files changed, 429 insertions(+), 550 deletions(-)

OpenAFS Master Repository