| From 748a33b76443dfa5f72d1aee7899043d795ad1b5 Mon Sep 17 00:00:00 2001 |
| From: David Howells <dhowells@redhat.com> |
| Date: Wed, 11 Dec 2019 08:06:08 +0000 |
| Subject: [PATCH] afs: Fix missing cell comparison in afs_test_super() |
| |
| commit 106bc79843c3c6f4f00753d1f46e54e815f99377 upstream. |
| |
| Fix missing cell comparison in afs_test_super(). Without this, any pair |
| volumes that have the same volume ID will share a superblock, no matter the |
| cell, unless they're in different network namespaces. |
| |
| Normally, most users will only deal with a single cell and so they won't |
| see this. Even if they do look into a second cell, they won't see a |
| problem unless they happen to hit a volume with the same ID as one they've |
| already got mounted. |
| |
| Before the patch: |
| |
| # ls /afs/grand.central.org/archive |
| linuxdev/ mailman/ moin/ mysql/ pipermail/ stage/ twiki/ |
| # ls /afs/kth.se/ |
| linuxdev/ mailman/ moin/ mysql/ pipermail/ stage/ twiki/ |
| # cat /proc/mounts | grep afs |
| none /afs afs rw,relatime,dyn,autocell 0 0 |
| #grand.central.org:root.cell /afs/grand.central.org afs ro,relatime 0 0 |
| #grand.central.org:root.archive /afs/grand.central.org/archive afs ro,relatime 0 0 |
| #grand.central.org:root.archive /afs/kth.se afs ro,relatime 0 0 |
| |
| After the patch: |
| |
| # ls /afs/grand.central.org/archive |
| linuxdev/ mailman/ moin/ mysql/ pipermail/ stage/ twiki/ |
| # ls /afs/kth.se/ |
| admin/ common/ install/ OldFiles/ service/ system/ |
| bakrestores/ home/ misc/ pkg/ src/ wsadmin/ |
| # cat /proc/mounts | grep afs |
| none /afs afs rw,relatime,dyn,autocell 0 0 |
| #grand.central.org:root.cell /afs/grand.central.org afs ro,relatime 0 0 |
| #grand.central.org:root.archive /afs/grand.central.org/archive afs ro,relatime 0 0 |
| #kth.se:root.cell /afs/kth.se afs ro,relatime 0 0 |
| |
| Fixes: ^1da177e4c3f4 ("Linux-2.6.12-rc2") |
| Reported-by: Carsten Jacobi <jacobi@de.ibm.com> |
| Signed-off-by: David Howells <dhowells@redhat.com> |
| Reviewed-by: Marc Dionne <marc.dionne@auristor.com> |
| Tested-by: Jonathan Billings <jsbillings@jsbillings.org> |
| cc: Todd DeSantis <atd@us.ibm.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/fs/afs/super.c b/fs/afs/super.c |
| index 7129fc868d68..ce61340b5de6 100644 |
| --- a/fs/afs/super.c |
| +++ b/fs/afs/super.c |
| @@ -404,6 +404,7 @@ static int afs_test_super(struct super_block *sb, struct fs_context *fc) |
| return (as->net_ns == fc->net_ns && |
| as->volume && |
| as->volume->vid == ctx->volume->vid && |
| + as->cell == ctx->cell && |
| !as->dyn_root); |
| } |
| |
| -- |
| 2.7.4 |
| |