commit 9e1cf2688efc25ae10e17b3d3fb4c15d5907ecfb
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date:   Thu Feb 26 10:13:50 2015 +0100

    Update CellServDB to 20150119 snapshot
    
    Update all remaining copies of CellServDB in the tree, and make the
    Red Hat packaging use it by default too.
    
    Reviewed-on: http://gerrit.openafs.org/11764
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    (cherry picked from commit 8cb4a42496f71c3d47ebe30a96ec33478e203c82)
    
    Change-Id: I77854bb86ae0d17c4094705e80586b53ba504956
    Reviewed-on: http://gerrit.openafs.org/11767
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
    Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 8317f21bec74f9816a0dd757d60a6954e17f0946
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date:   Wed Feb 25 16:35:12 2015 +0100

    Make OpenAFS 1.6.11
    
    Update version strings and NEWS for release 1.6.11
    
    Change-Id: I43770a355adc551b1bbd42ac3abc6b649b600532
    Reviewed-on: http://gerrit.openafs.org/11762
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 617d424c6ce451445e93962a59c4880edc8502b9
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date:   Wed Feb 4 14:24:02 2015 +0100

    Make OpenAFS 1.6.11pre2
    
    prerelease for 1.6.11
    
    Change-Id: I5418881f003b6cb1a74fad2397cd5d2c67613181
    Reviewed-on: http://gerrit.openafs.org/11709
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 1fbe3cd4841aef35b7e2798769504ee85fc6851d
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date:   Tue Feb 17 15:34:33 2015 +0100

    Document --enable-linux-d_splice_alias-extra-iput
    
    Even though we hope no one will actually ever need to use it, explain
    this configure switch in the same place as the others.
    
    Reviewed-on: http://gerrit.openafs.org/11749
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    (cherry picked from commit e02b852f05c0927d48b6467872378bae99df2760)
    
    Change-Id: I4f7e42730afab2387d343880acc81d28b70ef5e9
    Reviewed-on: http://gerrit.openafs.org/11752
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Tested-by: Daria Brashear <shadow@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 8f07914acee06c509eca3435635bf5247fe6bf33
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date:   Fri Feb 13 14:50:44 2015 +0100

    Update NEWS for 1.6.11pre2
    
    Preliminary release notes for OpenAFS 1.6.11
    
    Change-Id: I5f23fcbe3ba8520ca4789984c26f84f966f70ff9
    Reviewed-on: http://gerrit.openafs.org/11744
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 8f4823934bbad984c5cc2961e4f6fc410afb7535
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Wed Feb 4 10:25:38 2015 -0600

    rx: Zero unitialized uio structs
    
    We use some uio structures that were allocated on the stack, but we
    only initialize them by initializing individual fields. On some
    platforms (Solaris is one known example, but probably not the only
    one), there are additional fields we do not initialize. Since we
    cannot be certain of what any additional fields there may be, just
    zero the whole thing.
    
    This is basically the same change as
    I0eae0b49a70aee19f3a9ec118b03cfb3a6bd03a3, but in the rx subtree.
    
    Reviewed-on: http://gerrit.openafs.org/11711
    Tested-by: Andrew Deason <adeason@sinenomine.net>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    (cherry picked from commit a762e6871ad6837ee126cec9e63d99388b4bf119)
    
    Change-Id: Ie6a2cce500d6a0a7a09c305296f4b34d122d3108
    Reviewed-on: http://gerrit.openafs.org/11714
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Tested-by: Andrew Deason <adeason@sinenomine.net>
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit a2603d4dd02194a05a550a5759970515b9aa2f08
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Thu Dec 18 08:43:22 2014 -0500

    Linux: d_splice_alias may drop inode reference on error
    
    d_splice_alias now drops the inode reference on error, so we
    need to grab an extra one to make sure that the inode doesn't
    go away, and release it when done if there was no error.
    
    For kernels that may not drop the reference, provide an
    additional iput() within an ifdef.  This could be hooked up
    to a configure option to allow building a module for a kernel
    that is known not to drop the reference on error.  That hook
    is not provided here.  Affected kernels should be the early
    3.17 ones (3.17 - 3.17.2); 3.16 and older kernels should not
    return errors here.
    
    [kaduk@mit.edu add configure option to control behavior, which
    is mandatory on non-buildbot linux systems]
    
    Reviewed-on: http://gerrit.openafs.org/11643
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    (cherry picked from commit 15260c7fdc5ac8fe9fb1797c8e383c665e9e0ccd)
    
    Change-Id: I288eb66c38386fcd6bae0da111d97e211cc5c995
    Reviewed-on: http://gerrit.openafs.org/11694
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 3995ad443eca54542651003d4fc5a7e594833bad
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Fri Jan 30 13:29:57 2015 -0600

    afs: Zero uninitialized uio structs
    
    In several places in the code, we allocate a 'struct uio' on the
    stack, or allocate one from non-zeroed memory. In most of these
    places, we initialize the structure by assigning individual fields to
    certain values. However, this leaves any remaining fields assigned to
    random garbage, if there are any additional fields in the struct uio
    that we don't know about.
    
    One such platform is Solaris, which has a field called uio_extflg,
    which exists in Solaris 11, Solaris 10, and possibly further back.
    One of the flags defined for this field in Solaris 11 is UIO_XUIO,
    which indicates that the structure is actually an xuio_t, which is
    larger than a normal uio_t and contains additional fields. So when we
    allocate a uio on the stack without initializing it, it can randomly
    appear to be an xuio_t, depending on what garbage was on the stack at
    the time. An xuio_t is a kind of extensible structure, which is used
    for things like async I/O or DMA, that kind of thing.
    
    One of the places we make use of such a uio_t is in afs_ustrategy,
    which we go through for cache reads and writes on most Unix platforms
    (but not Linux). When handling a read (reading from the disk cache
    into a mapped page), a copy of our stack-allocated uio eventually gets
    passed to VOP_READ. So VOP_READ for the cache filesystem will randomly
    interpret our uio_t as an xuio_t.
    
    In many scenarios, this (amazingly) does not cause any problems, since
    generally, Solaris code will not notice if something is flagged as an
    xuio_t, unless it is specifically written to handle specific xuio_t
    types. ZFS is one of the apparent few filesystem implementations that
    can handle xuio_t's, and will detect and specially handle a
    UIOTYPE_ZEROCOPY xuio_t differently than a regular uio_t.
    
    If ZFS gets a UIOTYPE_ZEROCOPY xuio_t, it appears to ignore the uio
    buffers passed in, and supplies its own buffers from its cache. This
    means that our VOP_READ request will return success, and act like it
    serviced the read just fine. However, the actual buffer that we passed
    in will remain untouched, and so we will return the page to the VFS
    filled with garbage data.
    
    The way this typically manifests is that seemingly random pages will
    contain random data. This seems to happen very rarely, though it may
    not always be obvious what is going on when this occurs.
    
    It is also worth noting that the above description on Solaris only
    happens with Solaris 11 and newer, and only with a ZFS disk cache.
    Anything older than Solaris 11 does not have the xuio_t framework
    (though other uio_extflg values can cause performance degradations),
    and all known non-ZFS local disk filesystems do not interpret special
    xuio_t structures (networked filesystems might have xuio_t handling,
    but they shouldn't be used for a cache).
    
    Bugs similar to this may also exist on other Unix clients, but at
    least this specific scenario should not occur on Linux (since we don't
    use afs_ustrategy), and newer Darwin (since we get a uio allocated for
    us).
    
    To fix this, zero out the entire uio structure before we use it, for
    all instances where we allocate a uio from the stack or from
    non-zeroed memory. Also zero out the accompanying iovec in many
    places, just to be safe. Some of these may not actually need to be
    zeroed (since we do actually initialize the whole thing, or a platform
    doesn't have any additional unknown uio fields), but it seems
    worthwhile to err on the side of caution.
    
    Thanks to Oracle for their assistance on this issue, and thanks to the
    organization experiencing this issue for their patience and
    persistence.
    
    1.6 note: This differs noticeably from the master commit in two
    places:
    
     - src/afs/NBSD/osi_vnodeops.c: On master there is no stack-allocated
       uio struct here.
    
     - src/afs/VNOPS/afs_vnop_write.c and afs_vnop_read.c: On master,
       these code paths are structured quite differently, and are handled
       in afs_osi_uio.c instead.
    
    Reviewed-on: http://gerrit.openafs.org/11705
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    (cherry picked from commit 5ef1de5eddccce0e7b135bb9ed4decaa62fc19ce)
    
    Change-Id: I8dbf60637774dff81ff839ccd78f58b3b1e85c5b
    Reviewed-on: http://gerrit.openafs.org/11713
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 2108273154d0a90da4b754dfb9afb92168f40d94
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Fri Jan 30 13:08:19 2015 -0600

    SOLARIS: Avoid uninitialized caller_context_t
    
    Currently we pass a caller_context_t* to some of Solaris' VFS
    functions (VOP_SETATTR, VOP_READ, VOP_WRITE, VOP_RWLOCK,
    VOP_RWUNLOCK), but the pointer we pass is to uninitialized memory.
    
    This code was added in commit 51d76681, and this particular argument
    is mentioned in
    <https://lists.openafs.org/pipermail/openafs-info/2004-March/012657.html>,
    where the author doesn't really know what the argument is for.
    
    Over 10 years later, it's still not obvious what this argument does,
    since I cannot find any documentation for it. However, browsing
    publicly-available Illumos/OpenSolaris source suggests this is used
    for things like non-blocking operations for network filesystems, and
    is only interpreted by certain filesystems in certain codepaths.
    
    In any case, it's clear that we're not supposed to be passing in an
    uninitialized structure, since the struct has actual members that are
    sometimes interpreted by lower levels. Other callers in
    Illumos/OpenSolaris source seem to just pass NULL here if they don't
    need any special behavior. So, just pass NULL.
    
    I am not aware of any issues caused by passing in this uninitialized
    struct, and browsing Illumos source and discussing the issue with
    Oracle engineers suggest there would currently not be any issues with
    the cache filesystems we would be using.
    
    However, it's always possible that issues could arise from this in the
    future, or there are issues we don't know about. Any such issues would
    almost certainly appear to be non-deterministic and be a nightmare to
    track down. So just pass NULL, to avoid the potential issues.
    
    Reviewed-on: http://gerrit.openafs.org/11704
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    (cherry picked from commit b9647ac1062509d6a3997ca575ab1542d04677a2)
    
    Change-Id: I5d247cfa6ada3773d20e3938957dcc31c8664bb2
    Reviewed-on: http://gerrit.openafs.org/11712
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit c9cd05263b478d116e9c240953827e34fe2559b4
Author: Jeffrey Hutzelman <jhutz@cmu.edu>
Date:   Wed Jun 12 16:22:36 2013 -0400

    libafs/LINUX: avoid leaks due to corrupt dir
    
    When a corrupt directory is discovered, scanning stops immediately and
    readdir returns ENOENT.  Currently, the vcache lock is unlocked and the
    dcache containing the directory is released, but that's not enough.
    It's also necessary to unlock the dcache, on which we hold a read lock,
    and to clear the vcache state which records an in-progress readdir.
    
    Reviewed-on: http://gerrit.openafs.org/9971
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
    (cherry picked from commit a2bfa0e853fb4954fd06a00ea6fbc55c39e76b8a)
    
    Change-Id: Id648822cd45087e5c0d320e8cfdcd6659bb33559
    Reviewed-on: http://gerrit.openafs.org/11707
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit c98fb960b9d9a4cab37bec7fa341f01dad60d14e
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Mon Dec 1 10:23:23 2014 -0600

    LINUX: Avoid mvid NULL deref in check_bad_parent
    
    check_bad_parent dereferences vcp->mvid, assuming it is not NULL (vcp
    is a root vcache here, so mvid refers to the parent fid). However, in
    some situations, vcp->mvid can be NULL.
    
    When we first afs_GetVCache the fid, we try to set mvid by setting
    mvid to the 'dotdot' structure in the volume struct. But we get that
    volume struct from afs_GetVolume, which can fail (at the very least,
    this can fail on network failure when looking up vldb information). If
    it fails, then we do not set the mvid parent. On future lookups for
    the fid, afs_GetVCache will return early for a fastpath, if the vcache
    is already in memory. So, mvid will never get set in such a situation.
    
    We also set the mvid parent fid in afs_lookup if we resolved a
    mountpoint to the root vcache. However, this is skipped if CMValid is
    not set on the vcache, so if CMValid is cleared right after resolving
    the mountpoint (say, perhaps done by some other thread e.g. a callback
    break or other reasons), then the mvid parent fid will not be set.
    
    To avoid crashing in these situations, if vcp->mvid is NULL in
    check_bad_parent, don't check the mvid, and assume it does not match
    (since we don't know what it is).
    
    This is a 1.6-only change. On the master branch, the problem is
    addressed by commit 69e84bd8a2ccc6065c3a06b7239c855207b92e4d .
    
    Change-Id: I3550cf5a01811ede17d74770161326667a6e8628
    Reviewed-on: http://gerrit.openafs.org/11616
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 50b28a4326f6f5868369b84dab431f96778787b6
Author: Antoine Verheijen <apv@ualberta.ca>
Date:   Wed May 7 14:57:26 2014 -0600

    OpenBSD: Add support for OpenBSD 5.4
    
    Add param header files and other config info to provide
    support for OpenBSD 5.4.
    
    Reviewed-on: http://gerrit.openafs.org/11130
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit e1d0342326d11a14e1fb0075fb62cc6be9389b97)
    
    Change-Id: Ibdde973cf2a542fc89eba025b7210f8b0c843b95
    Reviewed-on: http://gerrit.openafs.org/11700
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>

commit 3da7b86c4ac998640b0b7ffd0e01613449d72e30
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Mon Jan 5 07:17:14 2015 -0500

    Linux 3.19: struct nameidata becomes opaque
    
    With kernel 3.19 struct nameidata becomes opaque.  As a result
    we cannot rely on STRUCT_NAMEIDATA_HAS_PATH being true for
    new kernels.
    
    Rework the conditions here so that STRUCT_NAMEIDATA_HAS_PATH
    is only tested when we're using a nameidata structure and
    the result matters.
    
    Also modify a configure test to use a nameidata pointer
    instead of an actual structure.
    
    Reviewed-on: http://gerrit.openafs.org/11648
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    (cherry picked from commit 72e22eb00f641f137f7dbe4195d6d82f4a8addc9)
    
    Change-Id: Ia794d9006a054d16a3b9e5b8ced55c798244d4c7
    Reviewed-on: http://gerrit.openafs.org/11662
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 78e8cce68d11e895140b0b03894ffdd62699ffbc
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Mon Jan 5 07:13:37 2015 -0500

    Linux 3.19: Use mgs_iter in struct msghdr
    
    struct msghdr gets msg_iov replaced by msg_iter.  Add a configure
    test and adjust the affected code.
    
    Reviewed-on: http://gerrit.openafs.org/11647
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    (cherry picked from commit ec9a7c2db833efacfd0692c658c2d38ed9f852ba)
    
    Change-Id: I9d873626d8997922aacf67a5a9ce7621ed904faa
    Reviewed-on: http://gerrit.openafs.org/11661
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 7ba61dfa6cedc4e6e106bd2079e564e554720d7e
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Mon Jan 5 07:03:16 2015 -0500

    Linux 3.19: No more f_dentry
    
    Back in kernel 2.6 .20 struct file lost its f_dentry field
    which was replaced by f_path.To ease transition f_dentry
    was defined as f_dpath.dentry in the same header.This
    define finally gets removed with kernel 3.19.
    
    Keep using f_dentry in the code, but add a configure test
    for the presence of f_path and the absence of the f_dentry
    macro so we can add it if its missing.
    
    Change - Id:I8e8a7e4d3ddd861018de50af1eb7315e730ad529
    
    Reviewed-on: http://gerrit.openafs.org/11646
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    (cherry picked from commit f9ca302b7a10ffc36f2439e068333ab147791c5a)
    
    Change-Id: I179bf2fbc22e824e40c60c59e5d223d49343e7a5
    Reviewed-on: http://gerrit.openafs.org/11660
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 860764da5ee2e48a2c3f7552fad1766e19eae47f
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Thu Dec 18 07:13:46 2014 -0500

    Linux: d_alias becomes d_u.d_alias
    
    The fields in struct dentry are re-arranged so that d_alias
    shares space wth d_rcu inside the d_u union.  Some references
    need to change from d_alias to d_u.d_alias.
    
    The kernel change was introduced for 3.19 but was also backported
    to the 3.18 stable series in 3.18.1, so this commit is required
    for 3.19 and current 3.18 kernels.
    
    Reviewed-on: http://gerrit.openafs.org/11642
    Reviewed-by: Anders Kaseorg <andersk@mit.edu>
    Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    (cherry picked from commit d6f29679098aff171e69511823b340ccf28e5c31)
    
    Change-Id: Ifb6199aa7fa922e64540d9fad1d2d79facbb9761
    Reviewed-on: http://gerrit.openafs.org/11659
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit a6013738362f4d1487ca57282b2428e3ba962720
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Thu Dec 18 06:57:22 2014 -0500

    Linux: Move code to reset the root to afs/LINUX
    
    Move the Linux specific bit of code to reset the root to
    afs/LINUX platform specific files.  Things that play with
    the Linux vfs internals should not be exposed here.
    
    No functional change, but this helps cleanup some ifdef
    mess.
    
    Reviewed-on: http://gerrit.openafs.org/11641
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    (cherry picked from commit 6ca324e565c34d9d04f3c553b7d0febe675ae538)
    
    Change-Id: I82803669dd34d7abeb29040fbb38ec2f000f2601
    Reviewed-on: http://gerrit.openafs.org/11658
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit fba39040435afe63b0737945e2269375107fc686
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Sun Sep 14 14:10:11 2014 -0500

    afs: Fix some afs_conn overcounts
    
    The usual pattern of using afs_Conn looks like this:
    
      do {
          tc = afs_Conn(...);
          if (tc) {
              code = /* ... */
          } else {
              code = -1;
          }
      } while (afs_Analyze(...));
    
    The afs_Analyze call, amongst other things, puts back the reference to
    the connection obtained from afs_Conn. If anything inside the do/while
    block exits that block without calling afs_Analyze or afs_PutConn, we
    will leak a reference to the conn.
    
    A few places currently do this, by jumping out of the loop with
    'goto's. Specifically, in afs_dcache.c and afs_bypasscache.c. These
    locations currently leak references to our connection object (and to
    the underlying Rx connection object), which can cause problems over
    time. Specifically, this can cause a panic when the refcount overflows
    and becomes negative, causing a panic message that looks like:
    
      afs_PutConn: refcount imbalance 0xd34db33f -32768
    
    To avoid this, make sure we afs_PutConn in these cases where we 'goto'
    out of the afs_Conn/afs_Analyze loop. Perhaps ideally we should cause
    afs_Analyze itself to be called in these situations, but for now just
    fix the problem with the least amount of impact possible.
    
    FIXES 131885
    
    Reviewed-on: http://gerrit.openafs.org/11464
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Tested-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    (cherry picked from commit 54c0ee608f4afd2b178c9b60eabfc3564293d996)
    
    Change-Id: Ic02ede4f8177863e8079b4a92c9bad492d6dc97b
    Reviewed-on: http://gerrit.openafs.org/11645
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>

commit 013e8db33fbec8b5db4ac5a1ec94a7f5b2afbc45
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Fri Dec 19 10:11:53 2014 -0500

    Unix CM: Avoid using stale DV in afs_StoreAllSegments
    
    It was reported in RT 131976 that on Linux some file
    corruption was observed when doing mmap writes to
    a file substantially larger than the cache size.
    
    osi_VM_StoreAllSegments drops locks and asks the OS to flush
    any dirty pages in the file 's mapping.  This will trigger
    calls into our writepage op, and if the number of dirty
    cache chunks is too high (as will happen for a file larger
    than the cache size), afs_DoPartialWrite will recursively
    call afs_StoreAllSegments and some chunks will be written
    back to the server.  After potentially doing this several
    times, control will return to the original afs_StoreAllSegments.
    
    At that point the data version that was stored before
    osi_VM_StoreAllSegments is no longer correct, leading to
    possible data corruption.
    
    Triggering this bug requires writing a file larger than the
    cache so that partial stores are done, and writing enough
    data to exceed the system's maximum dirty ratio and cause
    it to initiate writeback.
    
    To fix, just wait until after osi_VM_StoreAllSegments to
    look at and store the data version
    
    FIXES 131976
    
    Reviewed-on: http://gerrit.openafs.org/11644
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    (cherry picked from commit b22c586bcdf785c489009ab96cbb572181cb9b09)
    
    Change-Id: I32a2f6f32d432fe4a2e21ebd4bb278a9d7e5499f
    Reviewed-on: http://gerrit.openafs.org/11656
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 7308aab9d911d87bde8a0a8a1e6120b83ea9bde6
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Tue Apr 26 14:32:25 2011 -0500

    Fix --without-krb5
    
    Currently, specifying --without-krb5 causes the AM_CONDITIONAL
    KRB5_USES_COM_ERR to not be defined, which makes configure refuse to
    run successfully. Fix this by forcing KRB5_USES_COM_ERR to always be
    false if we are running explicitly without krb5.
    
    Reviewed-on: http://gerrit.openafs.org/4576
    Reviewed-by: Russ Allbery <rra@stanford.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    (cherry picked from commit 9b405a7b082a8498fb6e918df73482ad05e251ea)
    
    Change-Id: I4e706a828e205cf649f09d770986bdfb27f984aa
    Reviewed-on: http://gerrit.openafs.org/11636
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>

commit 05f3c5254013b095c86a768c3107f475e99f9a56
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date:   Thu Nov 6 14:40:17 2014 +0100

    Make OpenAFS 1.6.11pre1
    
    prerelease for 1.6.11
    
    Change-Id: I2c8592ae5aa2d3d7e20283064305ce5b6fc74e60
    Reviewed-on: http://gerrit.openafs.org/11593
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 28c943d4a45ebb89623a1e1c91a11fd2ac1c8e6e
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date:   Mon Nov 24 11:26:04 2014 +0100

    Update NEWS for 1.6.11pre1
    
    Preliminary release notes for OpenAFS 1.6.11
    
    Change-Id: Ibbc9948cd4d8cfc87300f7a7276076af779d37b4
    Reviewed-on: http://gerrit.openafs.org/11612
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 694721b13d14fdd29b3c1ac781121f0d67bdbbb9
Author: Anders Kaseorg <andersk@mit.edu>
Date:   Wed Sep 3 18:26:36 2014 -0400

    Linux: Refine openafs-client.service dependencies
    
    Make sure that openafs-client is started after the network is online,
    and before services that need remote-fs at startup.
    
    Signed-off-by: Anders Kaseorg <andersk@mit.edu>
    Reviewed-on: http://gerrit.openafs.org/11441
    Reviewed-by: Chaskiel Grundman <cg2v@andrew.cmu.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    (cherry picked from commit cadaea4f86427c4dc74f56fc66707e8cfb0166cb)
    
    Change-Id: I42aea5dff364e1005808b6ae926f6cf1bf2e0d61
    Reviewed-on: http://gerrit.openafs.org/11534
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit cdb1bb0b29d1aa896a57619cf8f87aabbe798193
Author: Benjamin Kaduk <kaduk@mit.edu>
Date:   Wed Aug 27 12:23:20 2014 -0400

    Appease compile_et for objdir builds
    
    The argument we pass to -p needs to be in the source tree, not
    the object tree -- compile_et will not find the input files it
    wants in the objdir tree.
    
    For tbudb we can do this as is done on master, by just including
    it in the local variable BUDB, but for tptserver and tvlserver
    that is a rather invasive change.
    
    This fixes the build with a separate objdir, which was broken by
    commit 7c451fab11b65dd5e2860715b939e5de33c7645e.
    
    Change-Id: If90f170ef3777a9987a0ba91747041abb89b2b65
    Reviewed-on: http://gerrit.openafs.org/11435
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit e51d3b13c2b208efe72b584b532a28444633feff
Author: Benjamin Kaduk <kaduk@mit.edu>
Date:   Thu Oct 30 19:51:29 2014 -0400

    Build fix for recent FreeBSD -current
    
    r273707 added a flags argument to syscall_register(), so
    add the appropriate version check in param.generic_fbsd.h
    and ues that in the main code.
    
    Reviewed-on: http://gerrit.openafs.org/11565
    Tested-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit f39dd54e11dff5e2b4da3eec419ae7c0825c210f)
    
    Note that the 1.6 branch does not have param.generic_fbsd.h, so
    the patch was modified for backport to just use AFS_FBSD110_ENV
    as the conditional.
    
    Change-Id: Id2934d83940caff4f64c2a7f2187b0eca5881c8f
    Reviewed-on: http://gerrit.openafs.org/11610
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 4e31fa4f6de614e07fbd5faf17d9639f42cab8cb
Author: Benjamin Kaduk <kaduk@mit.edu>
Date:   Wed Nov 19 14:14:07 2014 -0500

    Update CellServDB to 20141117 snapshot
    
    This should be all the locations we keep it in-tree.
    
    Reviewed-on: http://gerrit.openafs.org/11607
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
    (cherry picked from commit ce0cad182cddd21ccdebbf05a3e2379c7fcbe8fe)
    
    Change-Id: If63c9540beb81485d3e0c2934096f4d0aaee12ad
    Reviewed-on: http://gerrit.openafs.org/11608
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 610ed430a1a8dd8967f19273a7dcc0deaf016dd0
Author: Christer Grafström <christer.grafstrom@ltu.se>
Date:   Wed Oct 29 08:05:06 2014 +0100

    Packaging support for MacOS X 10.10 "Yosemite"
    
    This is just the packaging part of the patch submitted in the
    RT ticket. The configuration part is in the preceding change.
    
    FIXES 131946
    
    Reviewed-on: http://gerrit.openafs.org/11561
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit 8f630226f6f1f73a4d816b72caab3bb1e4620312)
    
    Change-Id: Iea5a295107350e7080278b914badb8b33a5cbc2b
    Reviewed-on: http://gerrit.openafs.org/11572
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 78bf372b9067f1ac12f2fd0dd9aac81aea9b2df2
Author: Michael Meffie <mmeffie@sinenomine.net>
Date:   Fri Oct 31 23:45:13 2014 -0400

    fix whitespace errors in acinclude.m4
    
    Use tabs instead of spaces in the sysname lookup case
    statement for the macos cases.
    
    Reviewed-on: http://gerrit.openafs.org/11566
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    (cherry picked from commit 7ae5b73a90940fe693fd5a726aa31408bd7aec39)
    
    Change-Id: I2860cd835242f0972b8795f2f7fedcb012aa18ea
    Reviewed-on: http://gerrit.openafs.org/11611
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 2ef14c90aa68089acab98819c30f052cb982cf4b
Author: Christer Grafström <christer.grafstrom@ltu.se>
Date:   Wed Oct 29 07:56:35 2014 +0100

    Add support for configuration of MacOS 10.10 "Yosemite"
    
    This is just the configuration part of  the patch submitted
    in the RT ticket. The packaging part will will follow in the
    next change.
    
    FIXES 131946
    
    Reviewed-on: http://gerrit.openafs.org/11560
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit 4109785a891d802194ad11edb600a61de316d262)
    
    Change-Id: I5800a89ef06bfad31ee284637fc0685b82e9693f
    Reviewed-on: http://gerrit.openafs.org/11571
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 9ff1cd92d023f9a949b499891f552b41cb0c52e4
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Wed Nov 5 10:22:00 2014 -0600

    LINUX: Avoid check for key_type.match existence
    
    Commit b5de4a9f removed our key_type 'match' function for kernels that
    do not have such a 'match' function pointer. However, this added a
    configure test where we are supposed to fail for the "new" behavior,
    which is discouraged.
    
    This causes an actual problem, because this test will fail on at least
    RHEL5, due to arguably unrelated reasons (the header file for the
    relevant struct is in key.h instead of key-type.h). And so, in that
    situation we avoid defining a 'match' function callback, meaning our
    'match' function callback is NULL, which causes a panic when we try to
    actually look up keys for a PAG.
    
    To fix this, transform the 'match' config test into one where we
    succeed for the "new" behavior. We do this by testing for the
    existence of the new functionality that replaced the old 'match'
    function, which is the match_preparse function (specifically, the
    'cmp' field in the structure accepted by match_preparse). This should
    cause unrelated compilation errors to cause us to revert to the "old"
    behavior instead of the "new" behavior. At worst, this should cause
    build issues if we get the config test wrong (since we will try to use
    the 'match' function definition that does not exist), instead of
    panicing at runtime.
    
    Note that while we test for key_type.match_preparse, we don't actually
    use that function, since our 'match' functionality is the same as the
    default behavior (according to b5de4a9f). So, we can avoid defining
    any such function for newer kernels.
    
    Thanks to Stephan Wiesand for bisecting this issue.
    
    Reviewed-on: http://gerrit.openafs.org/11589
    Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    (cherry picked from commit a9a3cb2efff7e6c020be4687b004d157bc070ac6)
    
    Change-Id: I59f40258c5ea35a59681f436095922d111e344f6
    Reviewed-on: http://gerrit.openafs.org/11595
    Tested-by: Anders Kaseorg <andersk@mit.edu>
    Reviewed-by: Anders Kaseorg <andersk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 9d653bd966b47223eaaf6f8a5d983b6634bdf0d5
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Thu Oct 23 11:27:55 2014 -0400

    Linux 3.18: key_type no longer has a match op
    
    Structure key_type no longer has a match op, and
    overriding the default matching has to be done
    differently.
    
    Our current match op doesn't do anything special so there's
    no need to try to override the defaults; just remove the
    assignment of .match and the associated function.
    
    Reviewed-on: http://gerrit.openafs.org/11563
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit b5de4a9f42bb83ae03f2f647b11a1200a502d013)
    
    Change-Id: I7baca4a7f02eac45671e1e9ebf48534cdd5830be
    Reviewed-on: http://gerrit.openafs.org/11570
    Reviewed-by: Anders Kaseorg <andersk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit b3527c802ad82cdecc0df6dfa42b228710ad5fd4
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Thu Oct 23 11:12:57 2014 -0400

    Linux 3.18: d_invalidate can no longer return an error
    
    d_invalidate is now defined as void and does not have
    a return value to check.
    
    Reviewed-on: http://gerrit.openafs.org/11562
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit a42f01d5ebb13da575b3123800ee6990743155ab)
    
    Change-Id: I8542404771c4a7962238efd9a53d7dfcf4011c96
    Reviewed-on: http://gerrit.openafs.org/11569
    Reviewed-by: Anders Kaseorg <andersk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 2fd2c69257edff968ef24a1d903bd602817bbf01
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Tue Oct 28 00:10:56 2014 -0500

    LINUX: Avoid d_revalidate failure on mtpt mismatch
    
    Currently, if afs_linux_dentry_revalidate is given an inode that
    corresponds to a mtpt vcache ('vcp'), it resolves the mtpt to its root
    dir if it's easy to do so (mvid and CMValid are set). Later on, we run
    afs_lookup to see if looking up our dentry's name returns the same
    vcache that we got; afs_lookup presumably will also resolve the mtpt
    if it's easy to do so.
    
    However, it is possible that afs_linux_dentry_revalidate and
    afs_lookup will make different decisions as to whether or not they
    resolve a mtpt to a dir. Specifically, if CMValid is cleared after
    afs_linux_dentry_revalidate checks for it, but before afs_lookup does,
    then afs_lookup will return a different vcache than
    afs_linux_dentry_revalidate is expecting, even though the relevant
    directory entry has not changed. That is, tvc is not equal to vcp, but
    tvc could be a mtpt that resolves to vcp, or vice versa. CMValid can
    be cleared by another thread at virtually any time, since this is
    cleared in some situations when we're not sure if the mtpt resolution
    is still valid (callbacks are broken, vldb cache entries expire, etc).
    
    afs_linux_dentry_revalidate interprets this situation to mean that the
    directory entry has changed, and so it eventually d_drop's the
    associated dentry. The way that this manifests to users is that a
    "fakestatted" mtpt can appear to be deleted effectively randomly, even
    when nothing has changed. This can be a problem because this causes
    the getcwd() syscall to return ENOENT when the working directory
    involves such an affected directory.
    
    To fix this situation, we just detect if afs_lookup returned either
    'vcp' (our possibly-resolved vcache), or the original inode associated
    with the dentry we are revalidating. If the returned vcache matches
    either of these, then the entry is okay and we don't need to
    invalidate or drop anything.
    
    FIXES 131780
    
    Reviewed-on: http://gerrit.openafs.org/11559
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Tested-by: Anders Kaseorg <andersk@mit.edu>
    Reviewed-by: Anders Kaseorg <andersk@mit.edu>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit ba1cc838ab4a80b7a7787c441a79aca31d84808c)
    
    Change-Id: I3273cc15ebe7fd94f3127840fdc5316bd7458e7c
    Reviewed-on: http://gerrit.openafs.org/11568
    Reviewed-by: Anders Kaseorg <andersk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit d3f0c37b796b02e05baf9d8270bd95d713d08b62
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Thu Jul 24 11:07:45 2014 -0500

    LINUX: Check afs_lookup return code explicitly
    
    Checking if the returned vcache is NULL or not is a bit of an indirect
    way to check if an error occurred. Just check the return code itself,
    to make sure we notice if any kind of error is reported.
    
    Suggested by Chas Williams.
    
    Reviewed-on: http://gerrit.openafs.org/11321
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit 2edf5c0382385f898a017fd8e0e2429f8b2b3520)
    
    Change-Id: I7e123ab1cf88570a6b18e438e01409ed7804e014
    Reviewed-on: http://gerrit.openafs.org/11558
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 663bdfcb16ab742ef12acca110f279b749f15586
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Thu Sep 25 07:52:12 2014 -0300

    Linux 3.17: Deal with d_splice_alias errors
    
    In 3.17 the logic in d_splice_alias has changed.  Of interest to
    us is the fact that it will now return an EIO error if it finds
    an existing connected directory for the dentry, where it would
    previously have added a new alias for it.  As a result the end
    user can get EIO errors when accessing any file in a volume
    if the volume was first accessed through a different path (ex:
    RO path vs RW path).
    
    This commit just restores the old behaviour, adding the directory
    alias manually in the error case, which is what older versions
    of d_splice_alias used to do.
    
    Reviewed-on: http://gerrit.openafs.org/11492
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit 5815ee92a41cdcf105741d834042a5617dc4c219)
    
    Change-Id: Ie86009ede93255c85fcf640af14c598fe1e42ca9
    Reviewed-on: http://gerrit.openafs.org/11550
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 75f36df74bb3c13aadb047163b93d6c24436f784
Author: Marc Dionne <marc.dionne@your-file-system.com>
Date:   Tue Sep 9 10:39:55 2014 -0300

    Linux 3.17: No more typedef for ctl_table
    
    The typedef has been removed so we need to use the structure
    directly.
    
    Note that the API for register_sysctl_table has also changed
    with 3.17, but it reverted back to a form that existed
    before and the configure tests handle it correctly.
    
    Reviewed-on: http://gerrit.openafs.org/11455
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Reviewed-by: D Brashear <shadow@your-file-system.com>
    (cherry picked from commit 6a23ca5b6e8bcaf881be7a4c50bfba72d001e6cd)
    
    Change-Id: Ifb8fc0b9b01d2578c65407608f0e1b3f3b254459
    Reviewed-on: http://gerrit.openafs.org/11549
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit 198a4c970ee3cce9dcf3c49fd178d3e1fc3c6c9b
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date:   Mon Oct 13 17:48:05 2014 -0400

    aklog 1.6: make krb5_524 non-fatal for native K5 tokens
    
    The krb5_524_conv_principal() function should fail whenever the Kerberos
    v5 principal cannot safely be mapped onto a Kerberos v4 principal, and
    does fail on some Kerberos v5 principals used in real-world AFS
    deployments.
    
    Prior to this patchset a failure was treated as a fatal error that
    in turn prevents an AFS token from being generated or set into the
    cache manager.
    
    Prior to b1f9b4cb5dd295162ae51704310e9d6058008f0a the
    krb5_524_conv_principal() function wasn't used and a local client
    mapping was created.  b1f9b4cb5dd295162ae51704310e9d6058008f0a
    replaced the local mapping with the krb5 function because the local
    mapping could be wrong and confusing.
    
    The krb5_524_conv_principal() function as applied to AFS tokens is
    just a local guess.  How the username in the token is interpreted by
    the AFS server is up to the server.
    
    krb5_524_conv_principal() is only used for Krb5 native tokens. For Krb4
    tokens the krb5_524_convert_creds() function is used to obtain both the
    Kerberos v4 ticket and the converted names from the KDC.  Many
    organizations used the krb524d service to perform name translation.  When
    the krb524d service is used, the name translation is performed by the KDC,
    so there is no local call to krb5_524_conv_principal() which might fail.
    As a result, disallowing the use of a native Krb5 token due to a failed
    local name translation is a needless loss of functionality; the local name
    translation is not an essential part of obtaining a token.
    
    This patchset modifies the behavior such that krb5_524_conv_principal()
    errors are non-fatal.
    
     1. If -noprdb is not specified the error message is generated
        and a NULL username is used.
    
     2. If the username is NULL the prdb lookup is disabled.
    
     3. If the username is NULL the informational messages do not
        include a username.
    
     4. If the username is NULL the username info provided to the
        cache manager in the token description is the nul string.
    
    This patchset is an openafs-stable-1_6_x specific version of
    the patch.  The master version was submitted to
    
      http://gerrit.openafs.org/#change,11542
    
    Credit to Ben Kaduk for assistance with the wording of this commit
    message.
    
    Change-Id: If12ae69394321fa7b7a182c9db95716bc66e489c
    Reviewed-on: http://gerrit.openafs.org/11538
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

commit e64daf49eb8ac240b76c4fd8b9f2fb4111793cb9
Author: D Brashear <shadow@your-file-system.com>
Date:   Sat Oct 18 13:24:46 2014 -0400

    shlibafsrpc: correct double export in symbol map
    
    afs_xdr_pointer was exported twice. remove one.
    1.6-only fix.
    
    Change-Id: I55c6663340d0b87331f18b3d120d5184b567f5e1
    Reviewed-on: http://gerrit.openafs.org/11551
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>