linux/fs/afs
Marc Dionne f2aca0a2d9 afs: Don't cross .backup mountpoint from backup volume
commit 29be9100ac upstream.

Don't cross a mountpoint that explicitly specifies a backup volume
(target is <vol>.backup) when starting from a backup volume.

It it not uncommon to mount a volume's backup directly in the volume
itself.  This can cause tools that are not paying attention to get
into a loop mounting the volume onto itself as they attempt to
traverse the tree, leading to a variety of problems.

This doesn't prevent the general case of loops in a sequence of
mountpoints, but addresses a common special case in the same way
as other afs clients.

Reported-by: Jan Henrik Sylvester <jan.henrik.sylvester@uni-hamburg.de>
Link: http://lists.infradead.org/pipermail/linux-afs/2024-May/008454.html
Reported-by: Markus Suvanto <markus.suvanto@gmail.com>
Link: http://lists.infradead.org/pipermail/linux-afs/2024-February/008074.html
Signed-off-by: Marc Dionne <marc.dionne@auristor.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://lore.kernel.org/r/768760.1716567475@warthog.procyon.org.uk
Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
cc: linux-afs@lists.infradead.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-06-16 13:39:53 +02:00
..
addr_list.c afs: Use kfree_rcu() instead of casting kfree() to rcu_callback_t 2020-03-13 10:47:33 -07:00
afs_cm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
afs_fs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
afs_vl.h afs: Implement client support for the YFSVL.GetCellName RPC op 2020-06-04 15:37:57 +01:00
afs.h afs: Implement client support for the YFSVL.GetCellName RPC op 2020-06-04 15:37:57 +01:00
cache.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
callback.c afs: fix the usage of read_seqbegin_or_lock() in afs_lookup_volume_rcu() 2024-02-23 08:54:39 +01:00
cell.c afs: Use refcount_t rather than atomic_t 2024-01-05 15:13:30 +01:00
cmservice.c afs: Use refcount_t rather than atomic_t 2024-01-05 15:13:30 +01:00
dir_edit.c afs: Fix updating of i_blocks on file/dir extension 2021-09-13 09:14:21 +01:00
dir_silly.c afs: Fix kerneldoc warning shown up by W=1 2021-10-04 22:04:44 +01:00
dir.c afs: Revert "afs: Hide silly-rename files from userspace" 2024-03-26 18:21:34 -04:00
dynroot.c afs: Fix dynamic root lookup DNS check 2024-01-05 15:13:30 +01:00
file.c afs: Fix mmap 2021-12-22 09:32:45 +01:00
flock.c afs: Use the operation issue time instead of the reply time for callbacks 2022-09-15 11:30:05 +02:00
fs_operation.c afs: Fix speculative status fetches 2021-05-01 11:55:36 -07:00
fs_probe.c afs: Fix lost servers_outstanding count 2022-12-31 13:14:45 +01:00
fsclient.c afs: Use the operation issue time instead of the reply time for callbacks 2022-09-15 11:30:05 +02:00
inode.c afs: Fix updating of i_size with dv jump from server 2023-05-11 23:00:38 +09:00
internal.h afs: Fix use-after-free due to get/remove race in volume tree 2024-01-05 15:13:30 +01:00
Kconfig afs: Use new netfs lib read helper API 2021-04-23 10:17:28 +01:00
main.c afs: Fix an IS_ERR() vs NULL check 2021-06-15 07:42:26 -07:00
Makefile afs: Detect cell aliases 1 - Cells with root volumes 2020-06-04 15:37:57 +01:00
misc.c afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked 2022-09-23 14:15:51 +02:00
mntpt.c afs: Don't cross .backup mountpoint from backup volume 2024-06-16 13:39:53 +02:00
proc.c afs: Use refcount_t rather than atomic_t 2024-01-05 15:13:30 +01:00
protocol_afs.h afs: Fix corruption in reads at fpos 2G-4G from an OpenAFS server 2021-09-13 09:14:21 +01:00
protocol_uae.h afs: Add support for the UAE error table 2019-06-28 18:37:53 +01:00
protocol_yfs.h afs: Fix corruption in reads at fpos 2G-4G from an OpenAFS server 2021-09-13 09:14:21 +01:00
rotate.c afs: Adjust ACK interpretation to try and cope with NAT 2022-06-09 10:22:40 +02:00
rxrpc.c afs: Use refcount_t rather than atomic_t 2024-01-05 15:13:30 +01:00
security.c fs: make helpers idmap mount aware 2021-01-24 14:27:20 +01:00
server_list.c afs: Fix afs_server_list to be cleaned up with RCU 2023-12-03 07:31:21 +01:00
server.c afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*() 2024-02-23 08:54:39 +01:00
super.c afs: Fix file locking on R/O volumes to operate in local mode 2023-12-03 07:31:22 +01:00
vl_alias.c afs: Add tracing for cell refcount and active user count 2020-10-16 14:39:21 +01:00
vl_list.c afs: Use refcount_t rather than atomic_t 2024-01-05 15:13:30 +01:00
vl_probe.c afs: Fix vlserver probe RTT handling 2023-06-21 15:59:18 +02:00
vl_rotate.c afs: Return ENOENT if no cell DNS record can be found 2023-12-03 07:31:22 +01:00
vlclient.c afs: Fix fall-through warnings for Clang 2021-05-25 07:30:34 -10:00
volume.c afs: Increase buffer size in afs_update_volume_status() 2024-03-01 13:21:59 +01:00
write.c afs: Adjust ACK interpretation to try and cope with NAT 2022-06-09 10:22:40 +02:00
xattr.c afs: Stop listxattr() from listing "afs.*" attributes 2021-03-15 17:09:54 +00:00
xdr_fs.h afs: Fix directory entry size calculation 2021-01-04 12:25:19 +00:00
yfsclient.c afs: Use the operation issue time instead of the reply time for callbacks 2022-09-15 11:30:05 +02:00