Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
8264613d
Commit
8264613d
authored
Aug 02, 2008
by
Al Viro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] switch quota_on-related stuff to kern_path()
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
0a0d8a46
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
37 deletions
+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
No files found.
fs/dquot.c
View file @
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
View file @
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
View file @
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
View file @
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
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment