[GIT PULL] afs: Miscellaneous fixes

From: David Howells
Date: Wed Dec 11 2019 - 16:18:09 EST

Hi Linus,

Can you pull these fixes for AFS plus one patch to make debugging easier:

(1) Fix how addresses are matched to server records. This is currently
incorrect which means cache invalidation callbacks from the server
don't necessarily get delivered correctly. This causes stale data and
metadata to be seen under some circumstances.

(2) Make the dynamic root superblock R/W so that rpm/dnf can reapply the
SELinux label to it when upgrading the Fedora filesystem-afs package.
If the filesystem is R/O, this fails and the upgrade fails.

It might be better in future to allow setxattr from an LSM to bypass
the R/O protections, if only for pseudo-filesystems.

(3) Fix the parsing of mountpoint strings. The mountpoint object has to
have a terminal dot, whereas the source/device string passed to mount
should not. This confuses type-forcing suffix detection leading to
the wrong volume variant being mounted.

(4) Make lookups in the dynamic root superblock for creation events (such
as mkdir) fail with EOPNOTSUPP rather than something like EEXIST. The
dynamic root only allows implicit creation by the ->lookup() method -
and only if the target cell exists.

(5) Fix the looking up of an AFS superblock to include the cell in the
matching key - otherwise all volumes with the same ID number are
treated as the same thing, irrespective of which cell they're in.

(6) Show the volume name of each volume in the volume records displayed in
/proc/net/afs/<cell>/volumes. This proved useful in debugging (5) as
it provides a way to map the volume IDs to names, where the names are
what appear in /proc/mounts.

Patch (6) can be dropped and deferred to the next merge window if you'd
prefer as it's not strictly a fix.

The following changes since commit e42617b825f8073569da76dc4510bfa019b1c35a:

Linux 5.5-rc1 (2019-12-08 14:57:55 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git tags/afs-fixes-20191211

for you to fetch changes up to 50559800b76a7a2a46da303100da639536261808:

afs: Show volume name in /proc/net/afs/<cell>/volumes (2019-12-11 17:48:20 +0000)

AFS fixes

David Howells (5):
afs: Fix SELinux setting security label on /afs
afs: Fix mountpoint parsing
afs: Fix creation calls in the dynamic root to fail with EOPNOTSUPP
afs: Fix missing cell comparison in afs_test_super()
afs: Show volume name in /proc/net/afs/<cell>/volumes

Marc Dionne (1):
afs: Fix afs_find_server lookups for ipv4 peers

fs/afs/dynroot.c | 3 +++
fs/afs/mntpt.c | 6 ++++--
fs/afs/proc.c | 7 ++++---
fs/afs/server.c | 21 ++++++++-------------
fs/afs/super.c | 2 +-
5 files changed, 20 insertions(+), 19 deletions(-)