Commit b96ef16d authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

ipmr: convert /proc handlers to rcu_read_lock()



We can use standard rcu_read_lock(), to get rid
of last read_lock(&mrt_lock) call points.

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 194366b2
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -2895,7 +2895,7 @@ static int ipmr_rtm_dumplink(struct sk_buff *skb, struct netlink_callback *cb)
 */

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);
@@ -2907,14 +2907,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
Original line number Diff line number Diff line
@@ -404,7 +404,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);
@@ -416,14 +416,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)