mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-07-08 18:13:59 +02:00
ipmr: convert /proc handlers to rcu_read_lock()
[ Upstream commitb96ef16d2f] We can use standard rcu_read_lock(), to get rid of last read_lock(&mrt_lock) call points. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net> Stable-dep-of:fc9c273d6d("ipmr: fix tables suspicious RCU usage") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a9615376a9
commit
e5dffbd159
+4
-4
@@ -2896,7 +2896,7 @@ out:
|
||||
*/
|
||||
|
||||
static void *ipmr_vif_seq_start(struct seq_file *seq, loff_t *pos)
|
||||
__acquires(mrt_lock)
|
||||
__acquires(RCU)
|
||||
{
|
||||
struct mr_vif_iter *iter = seq->private;
|
||||
struct net *net = seq_file_net(seq);
|
||||
@@ -2908,14 +2908,14 @@ static void *ipmr_vif_seq_start(struct seq_file *seq, loff_t *pos)
|
||||
|
||||
iter->mrt = mrt;
|
||||
|
||||
read_lock(&mrt_lock);
|
||||
rcu_read_lock();
|
||||
return mr_vif_seq_start(seq, pos);
|
||||
}
|
||||
|
||||
static void ipmr_vif_seq_stop(struct seq_file *seq, void *v)
|
||||
__releases(mrt_lock)
|
||||
__releases(RCU)
|
||||
{
|
||||
read_unlock(&mrt_lock);
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
static int ipmr_vif_seq_show(struct seq_file *seq, void *v)
|
||||
|
||||
+4
-4
@@ -405,7 +405,7 @@ static void ip6mr_free_table(struct mr_table *mrt)
|
||||
*/
|
||||
|
||||
static void *ip6mr_vif_seq_start(struct seq_file *seq, loff_t *pos)
|
||||
__acquires(mrt_lock)
|
||||
__acquires(RCU)
|
||||
{
|
||||
struct mr_vif_iter *iter = seq->private;
|
||||
struct net *net = seq_file_net(seq);
|
||||
@@ -417,14 +417,14 @@ static void *ip6mr_vif_seq_start(struct seq_file *seq, loff_t *pos)
|
||||
|
||||
iter->mrt = mrt;
|
||||
|
||||
read_lock(&mrt_lock);
|
||||
rcu_read_lock();
|
||||
return mr_vif_seq_start(seq, pos);
|
||||
}
|
||||
|
||||
static void ip6mr_vif_seq_stop(struct seq_file *seq, void *v)
|
||||
__releases(mrt_lock)
|
||||
__releases(RCU)
|
||||
{
|
||||
read_unlock(&mrt_lock);
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
static int ip6mr_vif_seq_show(struct seq_file *seq, void *v)
|
||||
|
||||
Reference in New Issue
Block a user