quota: drop remount argument to ->quota_on and ->quota_off
Remount handling has fully moved into the filesystem, so all this is superflous now. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
e0ccfd959c
commit
307ae18a56
|
@ -750,7 +750,7 @@ static int ext3_release_dquot(struct dquot *dquot);
|
||||||
static int ext3_mark_dquot_dirty(struct dquot *dquot);
|
static int ext3_mark_dquot_dirty(struct dquot *dquot);
|
||||||
static int ext3_write_info(struct super_block *sb, int type);
|
static int ext3_write_info(struct super_block *sb, int type);
|
||||||
static int ext3_quota_on(struct super_block *sb, int type, int format_id,
|
static int ext3_quota_on(struct super_block *sb, int type, int format_id,
|
||||||
char *path, int remount);
|
char *path);
|
||||||
static int ext3_quota_on_mount(struct super_block *sb, int type);
|
static int ext3_quota_on_mount(struct super_block *sb, int type);
|
||||||
static ssize_t ext3_quota_read(struct super_block *sb, int type, char *data,
|
static ssize_t ext3_quota_read(struct super_block *sb, int type, char *data,
|
||||||
size_t len, loff_t off);
|
size_t len, loff_t off);
|
||||||
|
@ -1529,7 +1529,7 @@ static void ext3_orphan_cleanup (struct super_block * sb,
|
||||||
/* Turn quotas off */
|
/* Turn quotas off */
|
||||||
for (i = 0; i < MAXQUOTAS; i++) {
|
for (i = 0; i < MAXQUOTAS; i++) {
|
||||||
if (sb_dqopt(sb)->files[i])
|
if (sb_dqopt(sb)->files[i])
|
||||||
vfs_quota_off(sb, i, 0);
|
vfs_quota_off(sb, i);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
sb->s_flags = s_flags; /* Restore MS_RDONLY status */
|
sb->s_flags = s_flags; /* Restore MS_RDONLY status */
|
||||||
|
@ -2870,16 +2870,13 @@ static int ext3_quota_on_mount(struct super_block *sb, int type)
|
||||||
* Standard function to be called on quota_on
|
* Standard function to be called on quota_on
|
||||||
*/
|
*/
|
||||||
static int ext3_quota_on(struct super_block *sb, int type, int format_id,
|
static int ext3_quota_on(struct super_block *sb, int type, int format_id,
|
||||||
char *name, int remount)
|
char *name)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
struct path path;
|
struct path path;
|
||||||
|
|
||||||
if (!test_opt(sb, QUOTA))
|
if (!test_opt(sb, QUOTA))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
/* When remounting, no checks are needed and in fact, name is NULL */
|
|
||||||
if (remount)
|
|
||||||
return vfs_quota_on(sb, type, format_id, name, remount);
|
|
||||||
|
|
||||||
err = kern_path(name, LOOKUP_FOLLOW, &path);
|
err = kern_path(name, LOOKUP_FOLLOW, &path);
|
||||||
if (err)
|
if (err)
|
||||||
|
|
|
@ -1061,7 +1061,7 @@ static int ext4_release_dquot(struct dquot *dquot);
|
||||||
static int ext4_mark_dquot_dirty(struct dquot *dquot);
|
static int ext4_mark_dquot_dirty(struct dquot *dquot);
|
||||||
static int ext4_write_info(struct super_block *sb, int type);
|
static int ext4_write_info(struct super_block *sb, int type);
|
||||||
static int ext4_quota_on(struct super_block *sb, int type, int format_id,
|
static int ext4_quota_on(struct super_block *sb, int type, int format_id,
|
||||||
char *path, int remount);
|
char *path);
|
||||||
static int ext4_quota_on_mount(struct super_block *sb, int type);
|
static int ext4_quota_on_mount(struct super_block *sb, int type);
|
||||||
static ssize_t ext4_quota_read(struct super_block *sb, int type, char *data,
|
static ssize_t ext4_quota_read(struct super_block *sb, int type, char *data,
|
||||||
size_t len, loff_t off);
|
size_t len, loff_t off);
|
||||||
|
@ -2053,7 +2053,7 @@ static void ext4_orphan_cleanup(struct super_block *sb,
|
||||||
/* Turn quotas off */
|
/* Turn quotas off */
|
||||||
for (i = 0; i < MAXQUOTAS; i++) {
|
for (i = 0; i < MAXQUOTAS; i++) {
|
||||||
if (sb_dqopt(sb)->files[i])
|
if (sb_dqopt(sb)->files[i])
|
||||||
vfs_quota_off(sb, i, 0);
|
vfs_quota_off(sb, i);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
sb->s_flags = s_flags; /* Restore MS_RDONLY status */
|
sb->s_flags = s_flags; /* Restore MS_RDONLY status */
|
||||||
|
@ -3924,16 +3924,13 @@ static int ext4_quota_on_mount(struct super_block *sb, int type)
|
||||||
* Standard function to be called on quota_on
|
* Standard function to be called on quota_on
|
||||||
*/
|
*/
|
||||||
static int ext4_quota_on(struct super_block *sb, int type, int format_id,
|
static int ext4_quota_on(struct super_block *sb, int type, int format_id,
|
||||||
char *name, int remount)
|
char *name)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
struct path path;
|
struct path path;
|
||||||
|
|
||||||
if (!test_opt(sb, QUOTA))
|
if (!test_opt(sb, QUOTA))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
/* When remounting, no checks are needed and in fact, name is NULL */
|
|
||||||
if (remount)
|
|
||||||
return vfs_quota_on(sb, type, format_id, name, remount);
|
|
||||||
|
|
||||||
err = kern_path(name, LOOKUP_FOLLOW, &path);
|
err = kern_path(name, LOOKUP_FOLLOW, &path);
|
||||||
if (err)
|
if (err)
|
||||||
|
|
|
@ -964,7 +964,7 @@ static void ocfs2_disable_quotas(struct ocfs2_super *osb)
|
||||||
|
|
||||||
/* Handle quota on quotactl */
|
/* Handle quota on quotactl */
|
||||||
static int ocfs2_quota_on(struct super_block *sb, int type, int format_id,
|
static int ocfs2_quota_on(struct super_block *sb, int type, int format_id,
|
||||||
char *path, int remount)
|
char *path)
|
||||||
{
|
{
|
||||||
unsigned int feature[MAXQUOTAS] = { OCFS2_FEATURE_RO_COMPAT_USRQUOTA,
|
unsigned int feature[MAXQUOTAS] = { OCFS2_FEATURE_RO_COMPAT_USRQUOTA,
|
||||||
OCFS2_FEATURE_RO_COMPAT_GRPQUOTA};
|
OCFS2_FEATURE_RO_COMPAT_GRPQUOTA};
|
||||||
|
@ -972,19 +972,13 @@ static int ocfs2_quota_on(struct super_block *sb, int type, int format_id,
|
||||||
if (!OCFS2_HAS_RO_COMPAT_FEATURE(sb, feature[type]))
|
if (!OCFS2_HAS_RO_COMPAT_FEATURE(sb, feature[type]))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (remount)
|
|
||||||
return 0; /* Just ignore it has been handled in
|
|
||||||
* ocfs2_remount() */
|
|
||||||
return vfs_quota_enable(sb_dqopt(sb)->files[type], type,
|
return vfs_quota_enable(sb_dqopt(sb)->files[type], type,
|
||||||
format_id, DQUOT_LIMITS_ENABLED);
|
format_id, DQUOT_LIMITS_ENABLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle quota off quotactl */
|
/* Handle quota off quotactl */
|
||||||
static int ocfs2_quota_off(struct super_block *sb, int type, int remount)
|
static int ocfs2_quota_off(struct super_block *sb, int type)
|
||||||
{
|
{
|
||||||
if (remount)
|
|
||||||
return 0; /* Ignore now and handle later in
|
|
||||||
* ocfs2_remount() */
|
|
||||||
return dquot_disable(sb, type, DQUOT_LIMITS_ENABLED);
|
return dquot_disable(sb, type, DQUOT_LIMITS_ENABLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1997,9 +1997,8 @@ put_inodes:
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(dquot_disable);
|
EXPORT_SYMBOL(dquot_disable);
|
||||||
|
|
||||||
int vfs_quota_off(struct super_block *sb, int type, int remount)
|
int vfs_quota_off(struct super_block *sb, int type)
|
||||||
{
|
{
|
||||||
BUG_ON(remount);
|
|
||||||
return dquot_disable(sb, type,
|
return dquot_disable(sb, type,
|
||||||
DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED);
|
DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED);
|
||||||
}
|
}
|
||||||
|
@ -2175,14 +2174,11 @@ int vfs_quota_on_path(struct super_block *sb, int type, int format_id,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(vfs_quota_on_path);
|
EXPORT_SYMBOL(vfs_quota_on_path);
|
||||||
|
|
||||||
int vfs_quota_on(struct super_block *sb, int type, int format_id, char *name,
|
int vfs_quota_on(struct super_block *sb, int type, int format_id, char *name)
|
||||||
int remount)
|
|
||||||
{
|
{
|
||||||
struct path path;
|
struct path path;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
BUG_ON(remount);
|
|
||||||
|
|
||||||
error = kern_path(name, LOOKUP_FOLLOW, &path);
|
error = kern_path(name, LOOKUP_FOLLOW, &path);
|
||||||
if (!error) {
|
if (!error) {
|
||||||
error = vfs_quota_on_path(sb, type, format_id, &path);
|
error = vfs_quota_on_path(sb, type, format_id, &path);
|
||||||
|
|
|
@ -73,7 +73,7 @@ static int quota_quotaon(struct super_block *sb, int type, int cmd, qid_t id,
|
||||||
if (IS_ERR(pathname))
|
if (IS_ERR(pathname))
|
||||||
return PTR_ERR(pathname);
|
return PTR_ERR(pathname);
|
||||||
if (sb->s_qcop->quota_on)
|
if (sb->s_qcop->quota_on)
|
||||||
ret = sb->s_qcop->quota_on(sb, type, id, pathname, 0);
|
ret = sb->s_qcop->quota_on(sb, type, id, pathname);
|
||||||
putname(pathname);
|
putname(pathname);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -260,7 +260,7 @@ static int do_quotactl(struct super_block *sb, int type, int cmd, qid_t id,
|
||||||
case Q_QUOTAOFF:
|
case Q_QUOTAOFF:
|
||||||
if (!sb->s_qcop->quota_off)
|
if (!sb->s_qcop->quota_off)
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
return sb->s_qcop->quota_off(sb, type, 0);
|
return sb->s_qcop->quota_off(sb, type);
|
||||||
case Q_GETFMT:
|
case Q_GETFMT:
|
||||||
return quota_getfmt(sb, type, addr);
|
return quota_getfmt(sb, type, addr);
|
||||||
case Q_GETINFO:
|
case Q_GETINFO:
|
||||||
|
|
|
@ -305,7 +305,7 @@ static int finish_unfinished(struct super_block *s)
|
||||||
/* Turn quotas off */
|
/* Turn quotas off */
|
||||||
for (i = 0; i < MAXQUOTAS; i++) {
|
for (i = 0; i < MAXQUOTAS; i++) {
|
||||||
if (sb_dqopt(s)->files[i])
|
if (sb_dqopt(s)->files[i])
|
||||||
vfs_quota_off(s, i, 0);
|
vfs_quota_off(s, i);
|
||||||
}
|
}
|
||||||
if (ms_active_set)
|
if (ms_active_set)
|
||||||
/* Restore the flag back */
|
/* Restore the flag back */
|
||||||
|
@ -622,7 +622,7 @@ static int reiserfs_acquire_dquot(struct dquot *);
|
||||||
static int reiserfs_release_dquot(struct dquot *);
|
static int reiserfs_release_dquot(struct dquot *);
|
||||||
static int reiserfs_mark_dquot_dirty(struct dquot *);
|
static int reiserfs_mark_dquot_dirty(struct dquot *);
|
||||||
static int reiserfs_write_info(struct super_block *, int);
|
static int reiserfs_write_info(struct super_block *, int);
|
||||||
static int reiserfs_quota_on(struct super_block *, int, int, char *, int);
|
static int reiserfs_quota_on(struct super_block *, int, int, char *);
|
||||||
|
|
||||||
static const struct dquot_operations reiserfs_quota_operations = {
|
static const struct dquot_operations reiserfs_quota_operations = {
|
||||||
.write_dquot = reiserfs_write_dquot,
|
.write_dquot = reiserfs_write_dquot,
|
||||||
|
@ -2038,7 +2038,7 @@ static int reiserfs_quota_on_mount(struct super_block *sb, int type)
|
||||||
* Standard function to be called on quota_on
|
* Standard function to be called on quota_on
|
||||||
*/
|
*/
|
||||||
static int reiserfs_quota_on(struct super_block *sb, int type, int format_id,
|
static int reiserfs_quota_on(struct super_block *sb, int type, int format_id,
|
||||||
char *name, int remount)
|
char *name)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
struct path path;
|
struct path path;
|
||||||
|
@ -2047,9 +2047,7 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id,
|
||||||
|
|
||||||
if (!(REISERFS_SB(sb)->s_mount_opt & (1 << REISERFS_QUOTA)))
|
if (!(REISERFS_SB(sb)->s_mount_opt & (1 << REISERFS_QUOTA)))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
/* No more checks needed? Path and format_id are bogus anyway... */
|
|
||||||
if (remount)
|
|
||||||
return vfs_quota_on(sb, type, format_id, name, 1);
|
|
||||||
err = kern_path(name, LOOKUP_FOLLOW, &path);
|
err = kern_path(name, LOOKUP_FOLLOW, &path);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
|
@ -332,8 +332,8 @@ struct dquot_operations {
|
||||||
|
|
||||||
/* Operations handling requests from userspace */
|
/* Operations handling requests from userspace */
|
||||||
struct quotactl_ops {
|
struct quotactl_ops {
|
||||||
int (*quota_on)(struct super_block *, int, int, char *, int);
|
int (*quota_on)(struct super_block *, int, int, char *);
|
||||||
int (*quota_off)(struct super_block *, int, int);
|
int (*quota_off)(struct super_block *, int);
|
||||||
int (*quota_sync)(struct super_block *, int, int);
|
int (*quota_sync)(struct super_block *, int, int);
|
||||||
int (*get_info)(struct super_block *, int, struct if_dqinfo *);
|
int (*get_info)(struct super_block *, int, struct if_dqinfo *);
|
||||||
int (*set_info)(struct super_block *, int, struct if_dqinfo *);
|
int (*set_info)(struct super_block *, int, struct if_dqinfo *);
|
||||||
|
|
|
@ -67,14 +67,14 @@ int dquot_mark_dquot_dirty(struct dquot *dquot);
|
||||||
int dquot_file_open(struct inode *inode, struct file *file);
|
int dquot_file_open(struct inode *inode, struct file *file);
|
||||||
|
|
||||||
int vfs_quota_on(struct super_block *sb, int type, int format_id,
|
int vfs_quota_on(struct super_block *sb, int type, int format_id,
|
||||||
char *path, int remount);
|
char *path);
|
||||||
int vfs_quota_enable(struct inode *inode, int type, int format_id,
|
int vfs_quota_enable(struct inode *inode, int type, int format_id,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
int vfs_quota_on_path(struct super_block *sb, int type, int format_id,
|
int vfs_quota_on_path(struct super_block *sb, int type, int format_id,
|
||||||
struct path *path);
|
struct path *path);
|
||||||
int vfs_quota_on_mount(struct super_block *sb, char *qf_name,
|
int vfs_quota_on_mount(struct super_block *sb, char *qf_name,
|
||||||
int format_id, int type);
|
int format_id, int type);
|
||||||
int vfs_quota_off(struct super_block *sb, int type, int remount);
|
int vfs_quota_off(struct super_block *sb, int type);
|
||||||
int vfs_quota_sync(struct super_block *sb, int type, int wait);
|
int vfs_quota_sync(struct super_block *sb, int type, int wait);
|
||||||
int vfs_get_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
|
int vfs_get_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
|
||||||
int vfs_set_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
|
int vfs_set_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
|
||||||
|
|
Loading…
Reference in New Issue