OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-4556-g71072c2

Gerrit Code Review gerrit@openafs.org
Wed, 21 Jan 2015 10:36:04 -0500


The following commit has been merged in the master branch:
commit 71072c2bb373a6ae5edec91884985c3cfc478147
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Thu Apr 4 14:39:41 2013 -0500

    ihandle: Add a comment on IH_OPEN/IH_REALLYCLOSE
    
    Currently, it's not really 'safe' in ihandle to issue an IH_OPEN
    against an IHandle_t when an IH_REALLYCLOSE is running at the same
    time. The reasons for this are explained a bit in ticket 131530 and
    related commits, but briefly:
    
    Say IH_OPEN runs, and drops IH_LOCK to open a new fd on disk. Then
    IH_REALLYCLOSE runs and closes all fds, or marks them as needing
    close. The running IH_OPEN then acquires IH_LOCK again and puts the
    newly-opened fd onto the per-IH list of fds. We now have an fd that
    effectively "survives" across the IH_REALLYCLOSE; effectively
    IH_REALLYCLOSE did not close all fds for the ih.
    
    This is possibly fixable by maintaining some extra information in
    IHandle_t's, but this is only a problem if we allow IH_OPEN calls to
    happen simultaneously with IH_REALLYCLOSE calls. Ever since
    ih_sync_thread was removed (or changed to not call IH_OPEN), there
    should be no cases where this is possible. All instances of
    IH_REALLYCLOSE happen during error recovery for a newly-created file,
    or happen under a per-vnode write lock, or for volume metadata files
    only happens when the ref count for a volume drops to zero when we're
    offlining the volume.
    
    So, do not bother trying to fix this, since doing so is currently a
    waste of time and the resulting complexity could introduce bugs. But
    in case someone ever tries to do something resulting in IH_OPEN calls
    executing outside the normal threads of execution, add a comment
    around the IH_REALLYCLOSE explanations to try and briefly explain that
    this cannot currently be done.
    
    Change-Id: I989806635f3b048b0c084480a4b02dc1902ba031
    Reviewed-on: http://gerrit.openafs.org/9709
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Daria Brashear <shadow@your-file-system.com>

 src/vol/ihandle.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

-- 
OpenAFS Master Repository