• Linus Torvalds's avatar
    Merge tag 'afs-fixes-20190516' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 227747fb
    Linus Torvalds authored
    Pull misc AFS fixes from David Howells:
     "This fixes a set of miscellaneous issues in the afs filesystem,
      including:
    
       - leak of keys on file close.
    
       - broken error handling in xattr functions.
    
       - missing locking when updating VL server list.
    
       - volume location server DNS lookup whereby preloaded cells may not
         ever get a lookup and regular DNS lookups to maintain server lists
         consume power unnecessarily.
    
       - incorrect error propagation and handling in the fileserver
         iteration code causes operations to sometimes apparently succeed.
    
       - interruption of server record check/update side op during
         fileserver iteration causes uninterruptible main operations to fail
         unexpectedly.
    
       - callback promise expiry time miscalculation.
    
       - over invalidation of the callback promise on directories.
    
       - double locking on callback break waking up file locking waiters.
    
       - double increment of the vnode callback break counter.
    
      Note that it makes some changes outside of the afs code, including:
    
       - an extra parameter to dns_query() to allow the dns_resolver key
         just accessed to be immediately invalidated. AFS is caching the
         results itself, so the key can be discarded.
    
       - an interruptible version of wait_var_event().
    
       - an rxrpc function to allow the maximum lifespan to be set on a
         call.
    
       - a way for an rxrpc call to be marked as non-interruptible"
    
    * tag 'afs-fixes-20190516' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
      afs: Fix double inc of vnode->cb_break
      afs: Fix lock-wait/callback-break double locking
      afs: Don't invalidate callback if AFS_VNODE_DIR_VALID not set
      afs: Fix calculation of callback expiry time
      afs: Make dynamic root population wait uninterruptibly for proc_cells_lock
      afs: Make some RPC operations non-interruptible
      rxrpc: Allow the kernel to mark a call as being non-interruptible
      afs: Fix error propagation from server record check/update
      afs: Fix the maximum lifespan of VL and probe calls
      rxrpc: Provide kernel interface to set max lifespan on a call
      afs: Fix "kAFS: AFS vnode with undefined type 0"
      afs: Fix cell DNS lookup
      Add wait_var_event_interruptible()
      dns_resolver: Allow used keys to be invalidated
      afs: Fix afs_cell records to always have a VL server list record
      afs: Fix missing lock when replacing VL server list
      afs: Fix afs_xattr_get_yfs() to not try freeing an error value
      afs: Fix incorrect error handling in afs_xattr_get_acl()
      afs: Fix key leak in afs_release() and afs_evict_inode()
    227747fb
messenger.c 88.1 KB