diff options
author | Jan Kara <jack@suse.cz> | 2009-11-30 16:22:41 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2009-12-10 09:02:54 -0500 |
commit | 1aeec43432d6bfb7a300bb0363f2723b8c4c706d (patch) | |
tree | 082a2dde06351428ba09b6de57e0178ab282e56d | |
parent | 498c60153ebb8889d8944591383c5c12af1127d4 (diff) |
ext3: Support for vfsv1 quota format
We just have to add proper mount options handling. The rest is handled by
the generic quota code.
CC: linux-ext4@vger.kernel.org
Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r-- | fs/ext3/super.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 46433b30e45f..7ad1e8c30bd0 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -539,9 +539,22 @@ static inline void ext3_show_quota_options(struct seq_file *seq, struct super_bl | |||
539 | #if defined(CONFIG_QUOTA) | 539 | #if defined(CONFIG_QUOTA) |
540 | struct ext3_sb_info *sbi = EXT3_SB(sb); | 540 | struct ext3_sb_info *sbi = EXT3_SB(sb); |
541 | 541 | ||
542 | if (sbi->s_jquota_fmt) | 542 | if (sbi->s_jquota_fmt) { |
543 | seq_printf(seq, ",jqfmt=%s", | 543 | char *fmtname = ""; |
544 | (sbi->s_jquota_fmt == QFMT_VFS_OLD) ? "vfsold": "vfsv0"); | 544 | |
545 | switch (sbi->s_jquota_fmt) { | ||
546 | case QFMT_VFS_OLD: | ||
547 | fmtname = "vfsold"; | ||
548 | break; | ||
549 | case QFMT_VFS_V0: | ||
550 | fmtname = "vfsv0"; | ||
551 | break; | ||
552 | case QFMT_VFS_V1: | ||
553 | fmtname = "vfsv1"; | ||
554 | break; | ||
555 | } | ||
556 | seq_printf(seq, ",jqfmt=%s", fmtname); | ||
557 | } | ||
545 | 558 | ||
546 | if (sbi->s_qf_names[USRQUOTA]) | 559 | if (sbi->s_qf_names[USRQUOTA]) |
547 | seq_printf(seq, ",usrjquota=%s", sbi->s_qf_names[USRQUOTA]); | 560 | seq_printf(seq, ",usrjquota=%s", sbi->s_qf_names[USRQUOTA]); |
@@ -802,9 +815,9 @@ enum { | |||
802 | Opt_abort, Opt_data_journal, Opt_data_ordered, Opt_data_writeback, | 815 | Opt_abort, Opt_data_journal, Opt_data_ordered, Opt_data_writeback, |
803 | Opt_data_err_abort, Opt_data_err_ignore, | 816 | Opt_data_err_abort, Opt_data_err_ignore, |
804 | Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota, | 817 | Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota, |
805 | Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_quota, Opt_noquota, | 818 | Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota, |
806 | Opt_ignore, Opt_barrier, Opt_err, Opt_resize, Opt_usrquota, | 819 | Opt_noquota, Opt_ignore, Opt_barrier, Opt_err, Opt_resize, |
807 | Opt_grpquota | 820 | Opt_usrquota, Opt_grpquota |
808 | }; | 821 | }; |
809 | 822 | ||
810 | static const match_table_t tokens = { | 823 | static const match_table_t tokens = { |
@@ -852,6 +865,7 @@ static const match_table_t tokens = { | |||
852 | {Opt_grpjquota, "grpjquota=%s"}, | 865 | {Opt_grpjquota, "grpjquota=%s"}, |
853 | {Opt_jqfmt_vfsold, "jqfmt=vfsold"}, | 866 | {Opt_jqfmt_vfsold, "jqfmt=vfsold"}, |
854 | {Opt_jqfmt_vfsv0, "jqfmt=vfsv0"}, | 867 | {Opt_jqfmt_vfsv0, "jqfmt=vfsv0"}, |
868 | {Opt_jqfmt_vfsv1, "jqfmt=vfsv1"}, | ||
855 | {Opt_grpquota, "grpquota"}, | 869 | {Opt_grpquota, "grpquota"}, |
856 | {Opt_noquota, "noquota"}, | 870 | {Opt_noquota, "noquota"}, |
857 | {Opt_quota, "quota"}, | 871 | {Opt_quota, "quota"}, |
@@ -1138,6 +1152,9 @@ clear_qf_name: | |||
1138 | goto set_qf_format; | 1152 | goto set_qf_format; |
1139 | case Opt_jqfmt_vfsv0: | 1153 | case Opt_jqfmt_vfsv0: |
1140 | qfmt = QFMT_VFS_V0; | 1154 | qfmt = QFMT_VFS_V0; |
1155 | goto set_qf_format; | ||
1156 | case Opt_jqfmt_vfsv1: | ||
1157 | qfmt = QFMT_VFS_V1; | ||
1141 | set_qf_format: | 1158 | set_qf_format: |
1142 | if (sb_any_quota_loaded(sb) && | 1159 | if (sb_any_quota_loaded(sb) && |
1143 | sbi->s_jquota_fmt != qfmt) { | 1160 | sbi->s_jquota_fmt != qfmt) { |
@@ -1180,6 +1197,7 @@ set_qf_format: | |||
1180 | case Opt_offgrpjquota: | 1197 | case Opt_offgrpjquota: |
1181 | case Opt_jqfmt_vfsold: | 1198 | case Opt_jqfmt_vfsold: |
1182 | case Opt_jqfmt_vfsv0: | 1199 | case Opt_jqfmt_vfsv0: |
1200 | case Opt_jqfmt_vfsv1: | ||
1183 | ext3_msg(sb, KERN_ERR, | 1201 | ext3_msg(sb, KERN_ERR, |
1184 | "error: journaled quota options not " | 1202 | "error: journaled quota options not " |
1185 | "supported."); | 1203 | "supported."); |