Skip to content
  • Trond Myklebust's avatar
    NFSv4: Fix problem with OPEN_DOWNGRADE · d530838b
    Trond Myklebust authored
    
    
     RFC 3530 states that for OPEN_DOWNGRADE "The share_access and share_deny
     bits specified must be exactly equal to the union of the share_access and
     share_deny bits specified for some subset of the OPENs in effect for
     current openowner on the current file.
    
     Setattr is currently violating the NFSv4 rules for OPEN_DOWNGRADE in that
     it may cause a downgrade from OPEN4_SHARE_ACCESS_BOTH to
     OPEN4_SHARE_ACCESS_WRITE despite the fact that there exists no open file
     with O_WRONLY access mode.
    
     Fix the problem by replacing nfs4_find_state() with a modified version of
     nfs_find_open_context().
    
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    d530838b