Hi Linus,
Here are a set of miscellaneous small fixes to the afs filesystem
including:
(1) Fix the afs_server_list struct to be cleaned up with RCU.
(2) Fix afs to translate a no-data result from a DNS lookup into ENOENT,
not EDESTADDRREQ for consistency with OpenAFS.
(3) Fix afs to translate a negative DNS lookup result into ENOENT rather
than EDESTADDRREQ.
(4) Fix file locking on R/O volumes to operate in local mode as the server
doesn't handle exclusive locks on such files.
(5) Set SB_RDONLY on superblocks for RO and Backup volumes so that the VFS
can see that they're read only.
Btw, I did want to ask about (5): Does a superblock being marked SB_RDONLY
imply immutability to the application? A 'read only' AFS volume is a snapshot
of a writable volume and can be updated. It's only read-only in the sense you
can't perform normal filesystem modification ops on it.
Link: https://lore.kernel.org/r/[email protected]/ # v1
Reviewed-by: Jeffrey Altman <[email protected]>
Thanks,
David
---
The following changes since commit 76df934c6d5f5c93ba7a0112b1818620ddc10b19:
MAINTAINERS: Add netdev subsystem profile link (2023-11-17 03:44:21 +0000)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git tags/afs-fixes-20231124
for you to fetch changes up to 68516f60c1d8b0a71e516d630f66b99cb50e0150:
afs: Mark a superblock for an R/O or Backup volume as SB_RDONLY (2023-11-24 14:52:24 +0000)
----------------------------------------------------------------
AFS Fixes
----------------------------------------------------------------
David Howells (5):
afs: Fix afs_server_list to be cleaned up with RCU
afs: Make error on cell lookup failure consistent with OpenAFS
afs: Return ENOENT if no cell DNS record can be found
afs: Fix file locking on R/O volumes to operate in local mode
afs: Mark a superblock for an R/O or Backup volume as SB_RDONLY
fs/afs/dynroot.c | 4 ++--
fs/afs/internal.h | 1 +
fs/afs/server_list.c | 2 +-
fs/afs/super.c | 4 ++++
fs/afs/vl_rotate.c | 10 ++++++++++
5 files changed, 18 insertions(+), 3 deletions(-)