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
nexedi
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