Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
1cf97d0d
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
1cf97d0d
编写于
1月 29, 2015
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
configfs: fold create_dir() into its only caller
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
c88b1e70
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
34 deletion
+29
-34
fs/configfs/dir.c
fs/configfs/dir.c
+29
-34
未找到文件。
fs/configfs/dir.c
浏览文件 @
1cf97d0d
...
...
@@ -260,37 +260,6 @@ static void init_symlink(struct inode * inode)
inode
->
i_op
=
&
configfs_symlink_inode_operations
;
}
static
int
create_dir
(
struct
config_item
*
k
,
struct
dentry
*
d
)
{
int
error
;
umode_t
mode
=
S_IFDIR
|
S_IRWXU
|
S_IRUGO
|
S_IXUGO
;
struct
dentry
*
p
=
d
->
d_parent
;
BUG_ON
(
!
k
);
error
=
configfs_dirent_exists
(
p
->
d_fsdata
,
d
->
d_name
.
name
);
if
(
!
error
)
error
=
configfs_make_dirent
(
p
->
d_fsdata
,
d
,
k
,
mode
,
CONFIGFS_DIR
|
CONFIGFS_USET_CREATING
);
if
(
!
error
)
{
configfs_set_dir_dirent_depth
(
p
->
d_fsdata
,
d
->
d_fsdata
);
error
=
configfs_create
(
d
,
mode
,
init_dir
);
if
(
!
error
)
{
inc_nlink
(
p
->
d_inode
);
}
else
{
struct
configfs_dirent
*
sd
=
d
->
d_fsdata
;
if
(
sd
)
{
spin_lock
(
&
configfs_dirent_lock
);
list_del_init
(
&
sd
->
s_sibling
);
spin_unlock
(
&
configfs_dirent_lock
);
configfs_put
(
sd
);
}
}
}
return
error
;
}
/**
* configfs_create_dir - create a directory for an config_item.
* @item: config_itemwe're creating directory for.
...
...
@@ -300,11 +269,37 @@ static int create_dir(struct config_item *k, struct dentry *d)
* until it is validated by configfs_dir_set_ready()
*/
static
int
configfs_create_dir
(
struct
config_item
*
item
,
struct
dentry
*
dentry
)
static
int
configfs_create_dir
(
struct
config_item
*
item
,
struct
dentry
*
dentry
)
{
int
error
=
create_dir
(
item
,
dentry
);
if
(
!
error
)
int
error
;
umode_t
mode
=
S_IFDIR
|
S_IRWXU
|
S_IRUGO
|
S_IXUGO
;
struct
dentry
*
p
=
dentry
->
d_parent
;
BUG_ON
(
!
item
);
error
=
configfs_dirent_exists
(
p
->
d_fsdata
,
dentry
->
d_name
.
name
);
if
(
unlikely
(
error
))
return
error
;
error
=
configfs_make_dirent
(
p
->
d_fsdata
,
dentry
,
item
,
mode
,
CONFIGFS_DIR
|
CONFIGFS_USET_CREATING
);
if
(
unlikely
(
error
))
return
error
;
configfs_set_dir_dirent_depth
(
p
->
d_fsdata
,
dentry
->
d_fsdata
);
error
=
configfs_create
(
dentry
,
mode
,
init_dir
);
if
(
!
error
)
{
inc_nlink
(
p
->
d_inode
);
item
->
ci_dentry
=
dentry
;
}
else
{
struct
configfs_dirent
*
sd
=
dentry
->
d_fsdata
;
if
(
sd
)
{
spin_lock
(
&
configfs_dirent_lock
);
list_del_init
(
&
sd
->
s_sibling
);
spin_unlock
(
&
configfs_dirent_lock
);
configfs_put
(
sd
);
}
}
return
error
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录