[PATCH 00/24] AFS development

From: David Howells
Date: Fri Oct 19 2018 - 21:10:44 EST



Hi Al,

Here's a set of development patches for AFS if you could pull it for the
upcoming merge window. Its main features are:

(1) Provide wrapper functions for accessing iov iterators, renumber the
iterator types to be more amenable to switching on and provide a new read
discard iterator type (ITER_DISCARD).

(2) Use iov iterators more directly in AFS unmarshalling routines.

(3) Support for retrieving DNS information where the VL server address list
is partitioned by server.

(4) Implement VL server rotation and improve both this and FS server
rotation.

(5) Add support for the YFS variant of the AFS server.

(6) When first attempting to use a server or a list of servers, plumb all the
addresses simultaneously to try and determine the best route.

The patches are tagged here:

git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
afs-next-20181020

and can also be found on the following branch:

http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=afs-next

David
---
David Howells (24):
iov_iter: Separate type from direction and use accessor functions
iov_iter: Renumber the ITER_* constants in uio.h
iov_iter: Add I/O discard iterator
afs: Better tracing of protocol errors
afs: Set up the iov_iter before calling afs_extract_data()
afs: Improve FS server rotation error handling
afs: Implement VL server rotation
afs: Fix TTL on VL server and address lists
afs: Handle EIO from delivery function
afs: Add a couple of tracepoints to log I/O errors
afs: Don't invoke the server to read data beyond EOF
afs: Increase to 64-bit volume ID and 96-bit vnode ID for YFS
afs: Commit the status on a new file/dir/symlink
afs: Remove callback details from afs_callback_break struct
afs: Implement the YFS cache manager service
afs: Fix FS.FetchStatus delivery from updating wrong vnode
afs: Calc callback expiry in op reply delivery
afs: Get the target vnode in afs_rmdir() and get a callback on it
afs: Expand data structure fields to support YFS
afs: Implement YFS support in the fs client
afs: Allow dumping of server cursor on operation failure
afs: Eliminate the address pointer from the address list cursor
afs: Fix callback handling
afs: Probe multiple fileservers simultaneously


block/bio.c | 2
drivers/block/drbd/drbd_main.c | 2
drivers/block/drbd/drbd_receiver.c | 2
drivers/block/loop.c | 9
drivers/block/nbd.c | 12
drivers/fsi/fsi-sbefifo.c | 4
drivers/isdn/mISDN/l1oip_core.c | 3
drivers/misc/vmw_vmci/vmci_queue_pair.c | 6
drivers/nvme/target/io-cmd-file.c | 2
drivers/target/iscsi/iscsi_target_util.c | 6
drivers/target/target_core_file.c | 6
drivers/usb/usbip/usbip_common.c | 2
drivers/xen/pvcalls-back.c | 8
fs/9p/vfs_addr.c | 4
fs/9p/vfs_dir.c | 2
fs/9p/xattr.c | 4
fs/afs/Kconfig | 12
fs/afs/Makefile | 7
fs/afs/addr_list.c | 209 ++-
fs/afs/afs.h | 50 -
fs/afs/cache.c | 2
fs/afs/callback.c | 17
fs/afs/cell.c | 65 +
fs/afs/cmservice.c | 287 +++-
fs/afs/dir.c | 75 +
fs/afs/dynroot.c | 4
fs/afs/file.c | 8
fs/afs/flock.c | 22
fs/afs/fs_probe.c | 270 ++++
fs/afs/fsclient.c | 583 ++++----
fs/afs/inode.c | 37 -
fs/afs/internal.h | 322 ++++
fs/afs/mntpt.c | 5
fs/afs/proc.c | 110 +-
fs/afs/protocol_yfs.h | 163 ++
fs/afs/rotate.c | 302 +++-
fs/afs/rxrpc.c | 115 +-
fs/afs/security.c | 13
fs/afs/server.c | 145 --
fs/afs/server_list.c | 6
fs/afs/super.c | 5
fs/afs/vl_list.c | 340 +++++
fs/afs/vl_probe.c | 273 ++++
fs/afs/vl_rotate.c | 355 +++++
fs/afs/vlclient.c | 195 +--
fs/afs/volume.c | 56 -
fs/afs/write.c | 30
fs/afs/xattr.c | 2
fs/afs/yfsclient.c | 2184 ++++++++++++++++++++++++++++++
fs/block_dev.c | 2
fs/ceph/file.c | 7
fs/cifs/connect.c | 4
fs/cifs/file.c | 4
fs/cifs/misc.c | 4
fs/cifs/smb2ops.c | 4
fs/cifs/smbdirect.c | 17
fs/cifs/transport.c | 8
fs/direct-io.c | 2
fs/dlm/lowcomms.c | 2
fs/fuse/file.c | 2
fs/iomap.c | 2
fs/nfsd/vfs.c | 4
fs/ocfs2/cluster/tcp.c | 2
fs/orangefs/inode.c | 2
fs/splice.c | 7
include/linux/uio.h | 74 +
include/trace/events/afs.h | 213 +++
lib/iov_iter.c | 301 +++-
mm/filemap.c | 2
mm/page_io.c | 2
net/9p/client.c | 2
net/9p/trans_virtio.c | 2
net/bluetooth/6lowpan.c | 2
net/bluetooth/a2mp.c | 2
net/bluetooth/smp.c | 2
net/ceph/messenger.c | 6
net/netfilter/ipvs/ip_vs_sync.c | 2
net/smc/smc_clc.c | 4
net/socket.c | 6
net/sunrpc/svcsock.c | 2
net/tipc/topsrv.c | 2
net/tls/tls_device.c | 4
net/tls/tls_sw.c | 4
83 files changed, 5761 insertions(+), 1287 deletions(-)
create mode 100644 fs/afs/fs_probe.c
create mode 100644 fs/afs/protocol_yfs.h
create mode 100644 fs/afs/vl_list.c
create mode 100644 fs/afs/vl_probe.c
create mode 100644 fs/afs/vl_rotate.c
create mode 100644 fs/afs/yfsclient.c