On 5/24/2024 12:17 PM, David Howells wrote:
Hi Christian,
Can you pick this up, please?
Thanks, David
From: Marc Dionnemarc.dionne@auristor.com
afs: Don't cross .backup mountpoint from backup volume
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 Sylvesterjan.henrik.sylvester@uni-hamburg.de Link:http://lists.infradead.org/pipermail/linux-afs/2024-May/008454.html Reported-by: Markus Suvantomarkus.suvanto@gmail.com Link:http://lists.infradead.org/pipermail/linux-afs/2024-February/008074.html Signed-off-by: Marc Dionnemarc.dionne@auristor.com Signed-off-by: David Howellsdhowells@redhat.com Reviewed-by: Jeffrey Altmanjaltman@auristor.com cc:linux-afs@lists.infradead.org
fs/afs/mntpt.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c index 97f50e9fd9eb..297487ee8323 100644 --- a/fs/afs/mntpt.c +++ b/fs/afs/mntpt.c @@ -140,6 +140,11 @@ static int afs_mntpt_set_params(struct fs_context *fc, struct dentry *mntpt) put_page(page); if (ret < 0) return ret;
/* Don't cross a backup volume mountpoint from a backup volume */
if (src_as->volume && src_as->volume->type == AFSVL_BACKVOL &&
ctx->type == AFSVL_BACKVOL)
}return -ENODEV;
return 0;
Please add
cc: stable@vger.kernel.org
when it is applied to vfs-fixes.
Thank you.
Jeffrey Altman
linux-stable-mirror@lists.linaro.org