Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
88a78a91
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
88a78a91
编写于
2月 03, 2014
作者:
T
Trond Myklebust
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'acl_fixes' into linux-next
上级
20b9a902
789b663a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
24 addition
and
28 deletion
+24
-28
fs/nfs/nfs3acl.c
fs/nfs/nfs3acl.c
+12
-22
fs/posix_acl.c
fs/posix_acl.c
+12
-6
未找到文件。
fs/nfs/nfs3acl.c
浏览文件 @
88a78a91
...
...
@@ -80,7 +80,7 @@ struct posix_acl *nfs3_get_acl(struct inode *inode, int type)
}
if
(
res
.
acl_access
!=
NULL
)
{
if
(
posix_acl_equiv_mode
(
res
.
acl_access
,
NULL
)
||
if
(
(
posix_acl_equiv_mode
(
res
.
acl_access
,
NULL
)
==
0
)
||
res
.
acl_access
->
a_count
==
0
)
{
posix_acl_release
(
res
.
acl_access
);
res
.
acl_access
=
NULL
;
...
...
@@ -113,7 +113,7 @@ struct posix_acl *nfs3_get_acl(struct inode *inode, int type)
return
ERR_PTR
(
status
);
}
int
nfs3_proc_setacls
(
struct
inode
*
inode
,
struct
posix_acl
*
acl
,
static
int
__
nfs3_proc_setacls
(
struct
inode
*
inode
,
struct
posix_acl
*
acl
,
struct
posix_acl
*
dfacl
)
{
struct
nfs_server
*
server
=
NFS_SERVER
(
inode
);
...
...
@@ -198,6 +198,15 @@ int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
return
status
;
}
int
nfs3_proc_setacls
(
struct
inode
*
inode
,
struct
posix_acl
*
acl
,
struct
posix_acl
*
dfacl
)
{
int
ret
;
ret
=
__nfs3_proc_setacls
(
inode
,
acl
,
dfacl
);
return
(
ret
==
-
EOPNOTSUPP
)
?
0
:
ret
;
}
int
nfs3_set_acl
(
struct
inode
*
inode
,
struct
posix_acl
*
acl
,
int
type
)
{
struct
posix_acl
*
alloc
=
NULL
,
*
dfacl
=
NULL
;
...
...
@@ -225,7 +234,7 @@ int nfs3_set_acl(struct inode *inode, struct posix_acl *acl, int type)
if
(
IS_ERR
(
alloc
))
goto
fail
;
}
status
=
nfs3_proc_setacls
(
inode
,
acl
,
dfacl
);
status
=
__
nfs3_proc_setacls
(
inode
,
acl
,
dfacl
);
posix_acl_release
(
alloc
);
return
status
;
...
...
@@ -233,25 +242,6 @@ int nfs3_set_acl(struct inode *inode, struct posix_acl *acl, int type)
return
PTR_ERR
(
alloc
);
}
int
nfs3_proc_set_default_acl
(
struct
inode
*
dir
,
struct
inode
*
inode
,
umode_t
mode
)
{
struct
posix_acl
*
default_acl
,
*
acl
;
int
error
;
error
=
posix_acl_create
(
dir
,
&
mode
,
&
default_acl
,
&
acl
);
if
(
error
)
return
(
error
==
-
EOPNOTSUPP
)
?
0
:
error
;
error
=
nfs3_proc_setacls
(
inode
,
acl
,
default_acl
);
if
(
acl
)
posix_acl_release
(
acl
);
if
(
default_acl
)
posix_acl_release
(
default_acl
);
return
error
;
}
const
struct
xattr_handler
*
nfs3_xattr_handlers
[]
=
{
&
posix_acl_access_xattr_handler
,
&
posix_acl_default_xattr_handler
,
...
...
fs/posix_acl.c
浏览文件 @
88a78a91
...
...
@@ -521,8 +521,11 @@ posix_acl_chmod(struct inode *inode, umode_t mode)
return
-
EOPNOTSUPP
;
acl
=
get_acl
(
inode
,
ACL_TYPE_ACCESS
);
if
(
IS_ERR_OR_NULL
(
acl
))
if
(
IS_ERR_OR_NULL
(
acl
))
{
if
(
acl
==
ERR_PTR
(
-
EOPNOTSUPP
))
return
0
;
return
PTR_ERR
(
acl
);
}
ret
=
__posix_acl_chmod
(
&
acl
,
GFP_KERNEL
,
mode
);
if
(
ret
)
...
...
@@ -544,14 +547,15 @@ posix_acl_create(struct inode *dir, umode_t *mode,
goto
no_acl
;
p
=
get_acl
(
dir
,
ACL_TYPE_DEFAULT
);
if
(
IS_ERR
(
p
))
if
(
IS_ERR
(
p
))
{
if
(
p
==
ERR_PTR
(
-
EOPNOTSUPP
))
goto
apply_umask
;
return
PTR_ERR
(
p
);
if
(
!
p
)
{
*
mode
&=
~
current_umask
();
goto
no_acl
;
}
if
(
!
p
)
goto
apply_umask
;
*
acl
=
posix_acl_clone
(
p
,
GFP_NOFS
);
if
(
!*
acl
)
return
-
ENOMEM
;
...
...
@@ -575,6 +579,8 @@ posix_acl_create(struct inode *dir, umode_t *mode,
}
return
0
;
apply_umask:
*
mode
&=
~
current_umask
();
no_acl:
*
default_acl
=
NULL
;
*
acl
=
NULL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录