Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
fa3c791d
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
153
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fa3c791d
编写于
1月 31, 2006
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge
git://oss.sgi.com:8090/oss/git/xfs-2.6
上级
bd3f8f2b
fad3aa1e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
39 addition
and
18 deletion
+39
-18
fs/xfs/linux-2.6/xfs_buf.c
fs/xfs/linux-2.6/xfs_buf.c
+7
-0
fs/xfs/linux-2.6/xfs_iops.c
fs/xfs/linux-2.6/xfs_iops.c
+32
-18
未找到文件。
fs/xfs/linux-2.6/xfs_buf.c
浏览文件 @
fa3c791d
...
...
@@ -822,6 +822,13 @@ xfs_buf_rele(
XB_TRACE
(
bp
,
"rele"
,
bp
->
b_relse
);
if
(
unlikely
(
!
hash
))
{
ASSERT
(
!
bp
->
b_relse
);
if
(
atomic_dec_and_test
(
&
bp
->
b_hold
))
xfs_buf_free
(
bp
);
return
;
}
if
(
atomic_dec_and_lock
(
&
bp
->
b_hold
,
&
hash
->
bh_lock
))
{
if
(
bp
->
b_relse
)
{
atomic_inc
(
&
bp
->
b_hold
);
...
...
fs/xfs/linux-2.6/xfs_iops.c
浏览文件 @
fa3c791d
...
...
@@ -262,6 +262,31 @@ has_fs_struct(struct task_struct *task)
return
(
task
->
fs
!=
init_task
.
fs
);
}
STATIC
inline
void
cleanup_inode
(
vnode_t
*
dvp
,
vnode_t
*
vp
,
struct
dentry
*
dentry
,
int
mode
)
{
struct
dentry
teardown
=
{};
int
err2
;
/* Oh, the horror.
* If we can't add the ACL or we fail in
* linvfs_init_security we must back out.
* ENOSPC can hit here, among other things.
*/
teardown
.
d_inode
=
LINVFS_GET_IP
(
vp
);
teardown
.
d_name
=
dentry
->
d_name
;
if
(
S_ISDIR
(
mode
))
VOP_RMDIR
(
dvp
,
&
teardown
,
NULL
,
err2
);
else
VOP_REMOVE
(
dvp
,
&
teardown
,
NULL
,
err2
);
VN_RELE
(
vp
);
}
STATIC
int
linvfs_mknod
(
struct
inode
*
dir
,
...
...
@@ -316,30 +341,19 @@ linvfs_mknod(
}
if
(
!
error
)
{
error
=
linvfs_init_security
(
vp
,
dir
);
if
(
error
)
cleanup_inode
(
dvp
,
vp
,
dentry
,
mode
);
}
if
(
default_acl
)
{
if
(
!
error
)
{
error
=
_ACL_INHERIT
(
vp
,
&
va
,
default_acl
);
if
(
!
error
)
{
if
(
!
error
)
VMODIFY
(
vp
);
}
else
{
struct
dentry
teardown
=
{};
int
err2
;
/* Oh, the horror.
* If we can't add the ACL we must back out.
* ENOSPC can hit here, among other things.
*/
teardown
.
d_inode
=
ip
=
LINVFS_GET_IP
(
vp
);
teardown
.
d_name
=
dentry
->
d_name
;
if
(
S_ISDIR
(
mode
))
VOP_RMDIR
(
dvp
,
&
teardown
,
NULL
,
err2
);
else
VOP_REMOVE
(
dvp
,
&
teardown
,
NULL
,
err2
);
VN_RELE
(
vp
);
}
else
cleanup_inode
(
dvp
,
vp
,
dentry
,
mode
);
}
_ACL_FREE
(
default_acl
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录