[PATCH 00/25] AFS development [ver #2]

From: David Howells
Date: Tue Oct 23 2018 - 19:57:48 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 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-20181024

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 (25):
amd-gpu: Don't undefine READ and WRITE
iov_iter: Use accessor function
iov_iter: Separate type from direction and use accessor functions
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/gpu/drm/amd/display/dc/os_types.h | 2
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 | 65 +
include/trace/events/afs.h | 213 +++
lib/iov_iter.c | 125 +-
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
84 files changed, 5629 insertions(+), 1236 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