[PATCH 00/15] AFS fixes

From: David Howells
Date: Wed May 15 2019 - 12:27:31 EST



Here's a set of patches for AFS that fix the following issues:

(1) Leak of keys on file close.

(2) Broken error handling in xattr functions.

(3) Missing locking when updating VL server list.

(4) 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.

(5) Callback promise expiry time miscalculation.

(6) Over invalidation of the callback promise on directories.

(7) Double locking on callback break waking up file locking waiters.

(8) Double increment of the vnode callback break counter.

The patches can be found here:

http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git
tag afs-fixes-20190515

David
---
David Howells (15):
afs: Fix key leak in afs_release() and afs_evict_inode()
afs: Fix incorrect error handling in afs_xattr_get_acl()
afs: Fix afs_xattr_get_yfs() to not try freeing an error value
afs: Fix missing lock when replacing VL server list
afs: Fix afs_cell records to always have a VL server list record
dns_resolver: Allow used keys to be invalidated
Add wait_var_event_interruptible()
afs: Fix cell DNS lookup
rxrpc: Allow the kernel to mark a call as being non-interruptible
afs: Make some RPC operations non-interruptible
afs: Make dynamic root population wait uninterruptibly for proc_cells_lock
afs: Fix calculation of callback expiry time
afs: Don't invalidate callback if AFS_VNODE_DIR_VALID not set
afs: Fix lock-wait/callback-break double locking
afs: Fix double inc of vnode->cb_break


Documentation/networking/rxrpc.txt | 11 ++
fs/afs/addr_list.c | 2
fs/afs/callback.c | 8 --
fs/afs/cell.c | 187 ++++++++++++++++++++++--------------
fs/afs/dir.c | 18 ++-
fs/afs/dir_silly.c | 4 -
fs/afs/dynroot.c | 5 -
fs/afs/file.c | 9 +-
fs/afs/flock.c | 9 +-
fs/afs/fsclient.c | 76 +++++++++------
fs/afs/inode.c | 12 +-
fs/afs/internal.h | 21 +++-
fs/afs/proc.c | 8 +-
fs/afs/rotate.c | 27 +++--
fs/afs/rxrpc.c | 3 -
fs/afs/security.c | 4 -
fs/afs/super.c | 2
fs/afs/vl_list.c | 20 ++--
fs/afs/vl_rotate.c | 28 ++++-
fs/afs/write.c | 2
fs/afs/xattr.c | 103 ++++++++++----------
fs/afs/yfsclient.c | 98 +++++++++----------
fs/cifs/dns_resolve.c | 2
fs/nfs/dns_resolve.c | 2
include/linux/dns_resolver.h | 3 -
include/linux/wait_bit.h | 13 +++
include/net/af_rxrpc.h | 1
net/ceph/messenger.c | 2
net/dns_resolver/dns_query.c | 6 +
net/rxrpc/af_rxrpc.c | 3 +
net/rxrpc/ar-internal.h | 2
net/rxrpc/call_object.c | 2
net/rxrpc/conn_client.c | 8 +-
net/rxrpc/sendmsg.c | 4 +
34 files changed, 412 insertions(+), 293 deletions(-)