• J. Bruce Fields's avatar
    NLM: don't unlock on cancel requests · 5996a298
    J. Bruce Fields authored
     Currently when lockd gets an NLM_CANCEL request, it also does an unlock for
     the same range.  This is incorrect.
    
     The Open Group documentation says that "This procedure cancels an
     *outstanding* blocked lock request."  (Emphasis mine.)
    
     Also, consider a client that holds a lock on the first byte of a file, and
     requests a lock on the entire file.  If the client cancels that request
     (perhaps because the requesting process is signalled), the server shouldn't
     apply perform an unlock on the entire file, since that will also remove the
     previous lock that the client was already granted.
    
     Or consider a lock request that actually *downgraded* an exclusive lock to
     a shared lock.
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    5996a298
locks.c 55 KB