通过debugfs_rename 修改已经存在的debugfs的目录的name
2017-08-04 16:25
363 查看
一般我们通过下面的code来创建一个名为bongding的debugfs的入口
void bond_create_debugfs(void)
{
bonding_debug_root = debugfs_create_dir("bonding", NULL);
if (!bonding_debug_root) {
pr_warn("Warning: Cannot create bonding directory in debugfs\n");
}
}
得到bonding_debug_root 后,可以通过debugfs_create_dir 在bonding 目录下再新建一级目录。然后通过debugfs_create_file 在这个第二级目录下新建一个rlb_hash_table的文件,这个文件的权限0400。关联的操作的是bond_debug_rlb_hash_fops
void bond_debug_register(struct bonding *bond)
{
if (!bonding_debug_root)
return;
bond->debug_dir =
debugfs_create_dir(bond->dev->name, bonding_debug_root);
if (!bond->debug_dir) {
netdev_warn(bond->dev, "failed to register to debugfs\n");
return;
}
debugfs_create_file("rlb_hash_table", 0400, bond->debug_dir,
bond, &bond_debug_rlb_hash_fops);
}
这个时候加入我想修改bond->debug_dir,就可以调用debugfs_rename函数,这个函数会返回一个dentry,然后将返回的dentry保存在需要改变的bond->debug_dir 中就行了.
static inline struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry, struct dentry *new_dir, char *new_name)
void bond_debug_reregister(struct bonding *bond)
{
struct dentry *d;
if (!bonding_debug_root)
return;
d = debugfs_rename(bonding_debug_root, bond->debug_dir,
bonding_debug_root, bond->dev->name);
if (d) {
bond->debug_dir = d;
} else {
netdev_warn(bond->dev, "failed to reregister, so just unregister old one\n");
bond_debug_unregister(bond);
}
}
最终看到的结果就是bond->debug_dir 这个目录的名字被改为bond->dev->name
void bond_create_debugfs(void)
{
bonding_debug_root = debugfs_create_dir("bonding", NULL);
if (!bonding_debug_root) {
pr_warn("Warning: Cannot create bonding directory in debugfs\n");
}
}
得到bonding_debug_root 后,可以通过debugfs_create_dir 在bonding 目录下再新建一级目录。然后通过debugfs_create_file 在这个第二级目录下新建一个rlb_hash_table的文件,这个文件的权限0400。关联的操作的是bond_debug_rlb_hash_fops
void bond_debug_register(struct bonding *bond)
{
if (!bonding_debug_root)
return;
bond->debug_dir =
debugfs_create_dir(bond->dev->name, bonding_debug_root);
if (!bond->debug_dir) {
netdev_warn(bond->dev, "failed to register to debugfs\n");
return;
}
debugfs_create_file("rlb_hash_table", 0400, bond->debug_dir,
bond, &bond_debug_rlb_hash_fops);
}
这个时候加入我想修改bond->debug_dir,就可以调用debugfs_rename函数,这个函数会返回一个dentry,然后将返回的dentry保存在需要改变的bond->debug_dir 中就行了.
static inline struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry, struct dentry *new_dir, char *new_name)
void bond_debug_reregister(struct bonding *bond)
{
struct dentry *d;
if (!bonding_debug_root)
return;
d = debugfs_rename(bonding_debug_root, bond->debug_dir,
bonding_debug_root, bond->dev->name);
if (d) {
bond->debug_dir = d;
} else {
netdev_warn(bond->dev, "failed to reregister, so just unregister old one\n");
bond_debug_unregister(bond);
}
}
最终看到的结果就是bond->debug_dir 这个目录的名字被改为bond->dev->name
相关文章推荐
- 不要修改dtsi,修改自己板子的dts,通过 &label 语句修改子文件里已经存在的节点
- 不要修改dtsi,修改自己板子的dts,通过 &label 语句修改子文件里已经存在的节点
- HOWTO:如何通过ServiceAddService修改已经存在的服务启动参数
- linux c fopen修改已经存在的文件
- 如何为文档库里面已经存在的文件修改后缀名
- gradle进行工程环境配置(通过修改Asset目录下的文件)
- Python--通过Python查询出某个目录下修改时间最新的文件
- 修改 C:\Users\[account name] 目录名称
- yii 验证用户名是否存在 array("name","unique",'message'=>'用户名已经存在'),
- alter修改已经存在的表的结构
- useradd:警告:此主目录已经存在。
- web项目Log4j日志输出路径配置问题 问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文
- [DB2]在本地数据库目录或系统数据库目录中已经存在数据库别名""的解决办法
- 对于已经存在的项目,如何在不改变原来目录结构的情况下,使用maven
- git下修改已经提交N次代码的user.name和user.email
- nginx中修改server_name无效,修改为www.wecharttest.com无法访问,通过localhost可以访问
- 如何rename datafile name中存在乱码的数据文件
- 把已经存在的用户修改id,并添加到新的组中
- 在本地数据库目录或系统数据库目录中已经存在数据库别名""的解决办法
- 通过修改CATALOG记录的方式实现备份集目录变更