diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-11 18:31:13 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-11 18:31:13 -0500 |
commit | 3126c136bc30225d7a43af741778aa50e95e467a (patch) | |
tree | 71e6f0de6e1f4cde200dd632da4d2f61180289bf /fs/ext4 | |
parent | f4d544ee5720d336a8c64f9fd33efb888c302309 (diff) | |
parent | 8e0eb4011bd73d5f91b215b532f74eef478ef795 (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (21 commits)
ext3: PTR_ERR return of wrong pointer in setup_new_group_blocks()
ext3: Fix data / filesystem corruption when write fails to copy data
ext4: Support for 64-bit quota format
ext3: Support for vfsv1 quota format
quota: Implement quota format with 64-bit space and inode limits
quota: Move definition of QFMT_OCFS2 to linux/quota.h
ext2: fix comment in ext2_find_entry about return values
ext3: Unify log messages in ext3
ext2: clear uptodate flag on super block I/O error
ext2: Unify log messages in ext2
ext3: make "norecovery" an alias for "noload"
ext3: Don't update the superblock in ext3_statfs()
ext3: journal all modifications in ext3_xattr_set_handle
ext2: Explicitly assign values to on-disk enum of filetypes
quota: Fix WARN_ON in lookup_one_len
const: struct quota_format_ops
ubifs: remove manual O_SYNC handling
afs: remove manual O_SYNC handling
kill wait_on_page_writeback_range
vfs: Implement proper O_SYNC semantics
...
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/super.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 8b58a144c31b..768c111a77ec 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -769,9 +769,22 @@ static inline void ext4_show_quota_options(struct seq_file *seq, | |||
769 | #if defined(CONFIG_QUOTA) | 769 | #if defined(CONFIG_QUOTA) |
770 | struct ext4_sb_info *sbi = EXT4_SB(sb); | 770 | struct ext4_sb_info *sbi = EXT4_SB(sb); |
771 | 771 | ||
772 | if (sbi->s_jquota_fmt) | 772 | if (sbi->s_jquota_fmt) { |
773 | seq_printf(seq, ",jqfmt=%s", | 773 | char *fmtname = ""; |
774 | (sbi->s_jquota_fmt == QFMT_VFS_OLD) ? "vfsold" : "vfsv0"); | 774 | |
775 | switch (sbi->s_jquota_fmt) { | ||
776 | case QFMT_VFS_OLD: | ||
777 | fmtname = "vfsold"; | ||
778 | break; | ||
779 | case QFMT_VFS_V0: | ||
780 | fmtname = "vfsv0"; | ||
781 | break; | ||
782 | case QFMT_VFS_V1: | ||
783 | fmtname = "vfsv1"; | ||
784 | break; | ||
785 | } | ||
786 | seq_printf(seq, ",jqfmt=%s", fmtname); | ||
787 | } | ||
775 | 788 | ||
776 | if (sbi->s_qf_names[USRQUOTA]) | 789 | if (sbi->s_qf_names[USRQUOTA]) |
777 | seq_printf(seq, ",usrjquota=%s", sbi->s_qf_names[USRQUOTA]); | 790 | seq_printf(seq, ",usrjquota=%s", sbi->s_qf_names[USRQUOTA]); |
@@ -1084,9 +1097,9 @@ enum { | |||
1084 | Opt_abort, Opt_data_journal, Opt_data_ordered, Opt_data_writeback, | 1097 | Opt_abort, Opt_data_journal, Opt_data_ordered, Opt_data_writeback, |
1085 | Opt_data_err_abort, Opt_data_err_ignore, | 1098 | Opt_data_err_abort, Opt_data_err_ignore, |
1086 | Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota, | 1099 | Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota, |
1087 | Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_quota, Opt_noquota, | 1100 | Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota, |
1088 | Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err, Opt_resize, | 1101 | Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err, |
1089 | Opt_usrquota, Opt_grpquota, Opt_i_version, | 1102 | Opt_resize, Opt_usrquota, Opt_grpquota, Opt_i_version, |
1090 | Opt_stripe, Opt_delalloc, Opt_nodelalloc, | 1103 | Opt_stripe, Opt_delalloc, Opt_nodelalloc, |
1091 | Opt_block_validity, Opt_noblock_validity, | 1104 | Opt_block_validity, Opt_noblock_validity, |
1092 | Opt_inode_readahead_blks, Opt_journal_ioprio, | 1105 | Opt_inode_readahead_blks, Opt_journal_ioprio, |
@@ -1137,6 +1150,7 @@ static const match_table_t tokens = { | |||
1137 | {Opt_grpjquota, "grpjquota=%s"}, | 1150 | {Opt_grpjquota, "grpjquota=%s"}, |
1138 | {Opt_jqfmt_vfsold, "jqfmt=vfsold"}, | 1151 | {Opt_jqfmt_vfsold, "jqfmt=vfsold"}, |
1139 | {Opt_jqfmt_vfsv0, "jqfmt=vfsv0"}, | 1152 | {Opt_jqfmt_vfsv0, "jqfmt=vfsv0"}, |
1153 | {Opt_jqfmt_vfsv1, "jqfmt=vfsv1"}, | ||
1140 | {Opt_grpquota, "grpquota"}, | 1154 | {Opt_grpquota, "grpquota"}, |
1141 | {Opt_noquota, "noquota"}, | 1155 | {Opt_noquota, "noquota"}, |
1142 | {Opt_quota, "quota"}, | 1156 | {Opt_quota, "quota"}, |
@@ -1439,6 +1453,9 @@ clear_qf_name: | |||
1439 | goto set_qf_format; | 1453 | goto set_qf_format; |
1440 | case Opt_jqfmt_vfsv0: | 1454 | case Opt_jqfmt_vfsv0: |
1441 | qfmt = QFMT_VFS_V0; | 1455 | qfmt = QFMT_VFS_V0; |
1456 | goto set_qf_format; | ||
1457 | case Opt_jqfmt_vfsv1: | ||
1458 | qfmt = QFMT_VFS_V1; | ||
1442 | set_qf_format: | 1459 | set_qf_format: |
1443 | if (sb_any_quota_loaded(sb) && | 1460 | if (sb_any_quota_loaded(sb) && |
1444 | sbi->s_jquota_fmt != qfmt) { | 1461 | sbi->s_jquota_fmt != qfmt) { |
@@ -1481,6 +1498,7 @@ set_qf_format: | |||
1481 | case Opt_offgrpjquota: | 1498 | case Opt_offgrpjquota: |
1482 | case Opt_jqfmt_vfsold: | 1499 | case Opt_jqfmt_vfsold: |
1483 | case Opt_jqfmt_vfsv0: | 1500 | case Opt_jqfmt_vfsv0: |
1501 | case Opt_jqfmt_vfsv1: | ||
1484 | ext4_msg(sb, KERN_ERR, | 1502 | ext4_msg(sb, KERN_ERR, |
1485 | "journaled quota options not supported"); | 1503 | "journaled quota options not supported"); |
1486 | break; | 1504 | break; |