Commit 4c2d5e33 authored by Taehee Yoo's avatar Taehee Yoo Committed by David S. Miller

hsr: rename debugfs file when interface name is changed

hsr interface has own debugfs file, which name is same with interface name.
So, interface name is changed, debugfs file name should be changed too.

Fixes: fc4ecaee ("net: hsr: add debugfs support for display node list")
Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c6c4ccd7
...@@ -65,6 +65,19 @@ hsr_node_table_open(struct inode *inode, struct file *filp) ...@@ -65,6 +65,19 @@ hsr_node_table_open(struct inode *inode, struct file *filp)
return single_open(filp, hsr_node_table_show, inode->i_private); return single_open(filp, hsr_node_table_show, inode->i_private);
} }
void hsr_debugfs_rename(struct net_device *dev)
{
struct hsr_priv *priv = netdev_priv(dev);
struct dentry *d;
d = debugfs_rename(hsr_debugfs_root_dir, priv->node_tbl_root,
hsr_debugfs_root_dir, dev->name);
if (IS_ERR(d))
netdev_warn(dev, "failed to rename\n");
else
priv->node_tbl_root = d;
}
static const struct file_operations hsr_fops = { static const struct file_operations hsr_fops = {
.open = hsr_node_table_open, .open = hsr_node_table_open,
.read = seq_read, .read = seq_read,
......
...@@ -45,6 +45,9 @@ static int hsr_netdev_notify(struct notifier_block *nb, unsigned long event, ...@@ -45,6 +45,9 @@ static int hsr_netdev_notify(struct notifier_block *nb, unsigned long event,
case NETDEV_CHANGE: /* Link (carrier) state changes */ case NETDEV_CHANGE: /* Link (carrier) state changes */
hsr_check_carrier_and_operstate(hsr); hsr_check_carrier_and_operstate(hsr);
break; break;
case NETDEV_CHANGENAME:
hsr_debugfs_rename(dev);
break;
case NETDEV_CHANGEADDR: case NETDEV_CHANGEADDR:
if (port->type == HSR_PT_MASTER) { if (port->type == HSR_PT_MASTER) {
/* This should not happen since there's no /* This should not happen since there's no
......
...@@ -184,11 +184,15 @@ static inline u16 hsr_get_skb_sequence_nr(struct sk_buff *skb) ...@@ -184,11 +184,15 @@ static inline u16 hsr_get_skb_sequence_nr(struct sk_buff *skb)
} }
#if IS_ENABLED(CONFIG_DEBUG_FS) #if IS_ENABLED(CONFIG_DEBUG_FS)
void hsr_debugfs_rename(struct net_device *dev);
void hsr_debugfs_init(struct hsr_priv *priv, struct net_device *hsr_dev); void hsr_debugfs_init(struct hsr_priv *priv, struct net_device *hsr_dev);
void hsr_debugfs_term(struct hsr_priv *priv); void hsr_debugfs_term(struct hsr_priv *priv);
void hsr_debugfs_create_root(void); void hsr_debugfs_create_root(void);
void hsr_debugfs_remove_root(void); void hsr_debugfs_remove_root(void);
#else #else
static inline void void hsr_debugfs_rename(struct net_device *dev)
{
}
static inline void hsr_debugfs_init(struct hsr_priv *priv, static inline void hsr_debugfs_init(struct hsr_priv *priv,
struct net_device *hsr_dev) struct net_device *hsr_dev)
{} {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment