Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
8264613d
cloud-kernel
项目概览
openanolis
/
cloud-kernel
12 个月 前同步成功
通知
152
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,发现更多精彩内容 >>
提交
8264613d
编写于
8月 02, 2008
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[PATCH] switch quota_on-related stuff to kern_path()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
0a0d8a46
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
37 addition
and
37 deletion
+37
-37
fs/dquot.c
fs/dquot.c
+5
-5
fs/ext3/super.c
fs/ext3/super.c
+11
-11
fs/ext4/super.c
fs/ext4/super.c
+12
-12
fs/reiserfs/super.c
fs/reiserfs/super.c
+9
-9
未找到文件。
fs/dquot.c
浏览文件 @
8264613d
...
...
@@ -1805,19 +1805,19 @@ int vfs_quota_on_path(struct super_block *sb, int type, int format_id,
}
/* Actual function called from quotactl() */
int
vfs_quota_on
(
struct
super_block
*
sb
,
int
type
,
int
format_id
,
char
*
path
,
int
vfs_quota_on
(
struct
super_block
*
sb
,
int
type
,
int
format_id
,
char
*
name
,
int
remount
)
{
struct
nameidata
nd
;
struct
path
path
;
int
error
;
if
(
remount
)
return
vfs_quota_on_remount
(
sb
,
type
);
error
=
path_lookup
(
path
,
LOOKUP_FOLLOW
,
&
nd
);
error
=
kern_path
(
name
,
LOOKUP_FOLLOW
,
&
path
);
if
(
!
error
)
{
error
=
vfs_quota_on_path
(
sb
,
type
,
format_id
,
&
nd
.
path
);
path_put
(
&
nd
.
path
);
error
=
vfs_quota_on_path
(
sb
,
type
,
format_id
,
&
path
);
path_put
(
&
path
);
}
return
error
;
}
...
...
fs/ext3/super.c
浏览文件 @
8264613d
...
...
@@ -2783,30 +2783,30 @@ static int ext3_quota_on_mount(struct super_block *sb, int type)
* Standard function to be called on quota_on
*/
static
int
ext3_quota_on
(
struct
super_block
*
sb
,
int
type
,
int
format_id
,
char
*
path
,
int
remount
)
char
*
name
,
int
remount
)
{
int
err
;
struct
nameidata
nd
;
struct
path
path
;
if
(
!
test_opt
(
sb
,
QUOTA
))
return
-
EINVAL
;
/* When remounting, no checks are needed and in fact,
path
is NULL */
/* When remounting, no checks are needed and in fact,
name
is NULL */
if
(
remount
)
return
vfs_quota_on
(
sb
,
type
,
format_id
,
path
,
remount
);
return
vfs_quota_on
(
sb
,
type
,
format_id
,
name
,
remount
);
err
=
path_lookup
(
path
,
LOOKUP_FOLLOW
,
&
nd
);
err
=
kern_path
(
name
,
LOOKUP_FOLLOW
,
&
path
);
if
(
err
)
return
err
;
/* Quotafile not on the same filesystem? */
if
(
nd
.
path
.
mnt
->
mnt_sb
!=
sb
)
{
path_put
(
&
nd
.
path
);
if
(
path
.
mnt
->
mnt_sb
!=
sb
)
{
path_put
(
&
path
);
return
-
EXDEV
;
}
/* Journaling quota? */
if
(
EXT3_SB
(
sb
)
->
s_qf_names
[
type
])
{
/* Quotafile not of fs root? */
if
(
nd
.
path
.
dentry
->
d_parent
->
d_inode
!=
sb
->
s_root
->
d_inode
)
if
(
path
.
dentry
->
d_parent
!=
sb
->
s_root
)
printk
(
KERN_WARNING
"EXT3-fs: Quota file not on filesystem root. "
"Journaled quota will not work.
\n
"
);
...
...
@@ -2816,7 +2816,7 @@ static int ext3_quota_on(struct super_block *sb, int type, int format_id,
* When we journal data on quota file, we have to flush journal to see
* all updates to the file when we bypass pagecache...
*/
if
(
ext3_should_journal_data
(
nd
.
path
.
dentry
->
d_inode
))
{
if
(
ext3_should_journal_data
(
path
.
dentry
->
d_inode
))
{
/*
* We don't need to lock updates but journal_flush() could
* otherwise be livelocked...
...
...
@@ -2826,8 +2826,8 @@ static int ext3_quota_on(struct super_block *sb, int type, int format_id,
journal_unlock_updates
(
EXT3_SB
(
sb
)
->
s_journal
);
}
err
=
vfs_quota_on_path
(
sb
,
type
,
format_id
,
&
nd
.
path
);
path_put
(
&
nd
.
path
);
err
=
vfs_quota_on_path
(
sb
,
type
,
format_id
,
&
path
);
path_put
(
&
path
);
return
err
;
}
...
...
fs/ext4/super.c
浏览文件 @
8264613d
...
...
@@ -3328,30 +3328,30 @@ static int ext4_quota_on_mount(struct super_block *sb, int type)
* Standard function to be called on quota_on
*/
static
int
ext4_quota_on
(
struct
super_block
*
sb
,
int
type
,
int
format_id
,
char
*
path
,
int
remount
)
char
*
name
,
int
remount
)
{
int
err
;
struct
nameidata
nd
;
struct
path
path
;
if
(
!
test_opt
(
sb
,
QUOTA
))
return
-
EINVAL
;
/* When remounting, no checks are needed and in fact,
path
is NULL */
/* When remounting, no checks are needed and in fact,
name
is NULL */
if
(
remount
)
return
vfs_quota_on
(
sb
,
type
,
format_id
,
path
,
remount
);
return
vfs_quota_on
(
sb
,
type
,
format_id
,
name
,
remount
);
err
=
path_lookup
(
path
,
LOOKUP_FOLLOW
,
&
nd
);
err
=
kern_path
(
name
,
LOOKUP_FOLLOW
,
&
path
);
if
(
err
)
return
err
;
/* Quotafile not on the same filesystem? */
if
(
nd
.
path
.
mnt
->
mnt_sb
!=
sb
)
{
path_put
(
&
nd
.
path
);
if
(
path
.
mnt
->
mnt_sb
!=
sb
)
{
path_put
(
&
path
);
return
-
EXDEV
;
}
/* Journaling quota? */
if
(
EXT4_SB
(
sb
)
->
s_qf_names
[
type
])
{
/* Quotafile not in fs root? */
if
(
nd
.
path
.
dentry
->
d_parent
->
d_inode
!=
sb
->
s_root
->
d_inode
)
if
(
path
.
dentry
->
d_parent
!=
sb
->
s_root
)
printk
(
KERN_WARNING
"EXT4-fs: Quota file not on filesystem root. "
"Journaled quota will not work.
\n
"
);
...
...
@@ -3361,7 +3361,7 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id,
* When we journal data on quota file, we have to flush journal to see
* all updates to the file when we bypass pagecache...
*/
if
(
ext4_should_journal_data
(
nd
.
path
.
dentry
->
d_inode
))
{
if
(
ext4_should_journal_data
(
path
.
dentry
->
d_inode
))
{
/*
* We don't need to lock updates but journal_flush() could
* otherwise be livelocked...
...
...
@@ -3370,13 +3370,13 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id,
err
=
jbd2_journal_flush
(
EXT4_SB
(
sb
)
->
s_journal
);
jbd2_journal_unlock_updates
(
EXT4_SB
(
sb
)
->
s_journal
);
if
(
err
)
{
path_put
(
&
nd
.
path
);
path_put
(
&
path
);
return
err
;
}
}
err
=
vfs_quota_on_path
(
sb
,
type
,
format_id
,
&
nd
.
path
);
path_put
(
&
nd
.
path
);
err
=
vfs_quota_on_path
(
sb
,
type
,
format_id
,
&
path
);
path_put
(
&
path
);
return
err
;
}
...
...
fs/reiserfs/super.c
浏览文件 @
8264613d
...
...
@@ -2058,10 +2058,10 @@ static int reiserfs_quota_on_mount(struct super_block *sb, int type)
* Standard function to be called on quota_on
*/
static
int
reiserfs_quota_on
(
struct
super_block
*
sb
,
int
type
,
int
format_id
,
char
*
path
,
int
remount
)
char
*
name
,
int
remount
)
{
int
err
;
struct
nameidata
nd
;
struct
path
path
;
struct
inode
*
inode
;
struct
reiserfs_transaction_handle
th
;
...
...
@@ -2069,16 +2069,16 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id,
return
-
EINVAL
;
/* No more checks needed? Path and format_id are bogus anyway... */
if
(
remount
)
return
vfs_quota_on
(
sb
,
type
,
format_id
,
path
,
1
);
err
=
path_lookup
(
path
,
LOOKUP_FOLLOW
,
&
nd
);
return
vfs_quota_on
(
sb
,
type
,
format_id
,
name
,
1
);
err
=
kern_path
(
name
,
LOOKUP_FOLLOW
,
&
path
);
if
(
err
)
return
err
;
/* Quotafile not on the same filesystem? */
if
(
nd
.
path
.
mnt
->
mnt_sb
!=
sb
)
{
if
(
path
.
mnt
->
mnt_sb
!=
sb
)
{
err
=
-
EXDEV
;
goto
out
;
}
inode
=
nd
.
path
.
dentry
->
d_inode
;
inode
=
path
.
dentry
->
d_inode
;
/* We must not pack tails for quota files on reiserfs for quota IO to work */
if
(
!
(
REISERFS_I
(
inode
)
->
i_flags
&
i_nopack_mask
))
{
err
=
reiserfs_unpack
(
inode
,
NULL
);
...
...
@@ -2094,7 +2094,7 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id,
/* Journaling quota? */
if
(
REISERFS_SB
(
sb
)
->
s_qf_names
[
type
])
{
/* Quotafile not of fs root? */
if
(
nd
.
path
.
dentry
->
d_parent
->
d_inode
!=
sb
->
s_root
->
d_inode
)
if
(
path
.
dentry
->
d_parent
!=
sb
->
s_root
)
reiserfs_warning
(
sb
,
"reiserfs: Quota file not on filesystem root. "
"Journalled quota will not work."
);
...
...
@@ -2113,9 +2113,9 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id,
if
(
err
)
goto
out
;
}
err
=
vfs_quota_on_path
(
sb
,
type
,
format_id
,
&
nd
.
path
);
err
=
vfs_quota_on_path
(
sb
,
type
,
format_id
,
&
path
);
out:
path_put
(
&
nd
.
path
);
path_put
(
&
path
);
return
err
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录