summaryrefslogtreecommitdiffstats
path: root/fs/afs
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2024-01-17 16:49:26 +0100
committerDavid Howells <dhowells@redhat.com>2024-01-22 23:30:38 +0100
commitb90493505347a4ca4d900f317e2b330e0e43ae2f (patch)
tree8ba13e144f0090ab12ab7993a60c2e441055dae9 /fs/afs
parentafs: Remove afs_dynroot_d_revalidate() as it is redundant (diff)
downloadlinux-b90493505347a4ca4d900f317e2b330e0e43ae2f.tar.xz
linux-b90493505347a4ca4d900f317e2b330e0e43ae2f.zip
afs: Fix missing/incorrect unlocking of RCU read lock
In afs_proc_addr_prefs_show(), we need to unlock the RCU read lock in both places before returning (and not lock it again). Fixes: f94f70d39cc2 ("afs: Provide a way to configure address priorities") Reported-by: kernel test robot <oliver.sang@intel.com> Closes: https://lore.kernel.org/oe-lkp/202401172243.cd53d5f6-oliver.sang@intel.com Signed-off-by: David Howells <dhowells@redhat.com> cc: linux-afs@lists.infradead.org cc: linux-fsdevel@vger.kernel.org
Diffstat (limited to 'fs/afs')
-rw-r--r--fs/afs/proc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/afs/proc.c b/fs/afs/proc.c
index 3bd02571f30d..15eab053af6d 100644
--- a/fs/afs/proc.c
+++ b/fs/afs/proc.c
@@ -166,7 +166,7 @@ static int afs_proc_addr_prefs_show(struct seq_file *m, void *v)
if (!preflist) {
seq_puts(m, "NO PREFS\n");
- return 0;
+ goto out;
}
seq_printf(m, "PROT SUBNET PRIOR (v=%u n=%u/%u/%u)\n",
@@ -191,7 +191,8 @@ static int afs_proc_addr_prefs_show(struct seq_file *m, void *v)
}
}
- rcu_read_lock();
+out:
+ rcu_read_unlock();
return 0;
}