update to rc6, and verified pass fsx/dbench
[ext4-patch-queue.git] / ext4_no_version.patch
blobaa2a51de0739e4038e38d16d80278e7aa0cb4e2e
1 Add a "noversion" mount option to disable inode version updates.
3 Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
4 Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
6 Index: linux-2.6.21/fs/ext4/super.c
7 ===================================================================
8 --- linux-2.6.21.orig/fs/ext4/super.c
9 +++ linux-2.6.21/fs/ext4/super.c
10 @@ -725,7 +725,7 @@ enum {
11 Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
12 Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_quota, Opt_noquota,
13 Opt_ignore, Opt_barrier, Opt_err, Opt_resize, Opt_usrquota,
14 - Opt_grpquota, Opt_extents, Opt_noextents,
15 + Opt_grpquota, Opt_extents, Opt_noextents, Opt_noversion,
18 static match_table_t tokens = {
19 @@ -777,6 +777,7 @@ static match_table_t tokens = {
20 {Opt_barrier, "barrier=%u"},
21 {Opt_extents, "extents"},
22 {Opt_noextents, "noextents"},
23 + {Opt_noversion, "noversion"},
24 {Opt_err, NULL},
25 {Opt_resize, "resize"},
27 @@ -1115,6 +1116,9 @@ clear_qf_name:
28 case Opt_noextents:
29 clear_opt (sbi->s_mount_opt, EXTENTS);
30 break;
31 + case Opt_noversion:
32 + set_opt(sbi->s_mount_opt, NOVERSION);
33 + break;
34 default:
35 printk (KERN_ERR
36 "EXT4-fs: Unrecognized mount option \"%s\" "
37 Index: linux-2.6.21/include/linux/ext4_fs.h
38 ===================================================================
39 --- linux-2.6.21.orig/include/linux/ext4_fs.h
40 +++ linux-2.6.21/include/linux/ext4_fs.h
41 @@ -473,6 +473,7 @@ do { \
42 #define EXT4_MOUNT_USRQUOTA 0x100000 /* "old" user quota */
43 #define EXT4_MOUNT_GRPQUOTA 0x200000 /* "old" group quota */
44 #define EXT4_MOUNT_EXTENTS 0x400000 /* Extents support */
45 +#define EXT4_MOUNT_NOVERSION 0x800000 /* No inode version updates */
47 /* Compatibility, for having both ext2_fs.h and ext4_fs.h included at once */
48 #ifndef _LINUX_EXT2_FS_H
49 Index: linux-2.6.21/fs/ext4/inode.c
50 ===================================================================
51 --- linux-2.6.21.orig/fs/ext4/inode.c
52 +++ linux-2.6.21/fs/ext4/inode.c
53 @@ -3082,7 +3082,9 @@ int ext4_mark_iloc_dirty(handle_t *handl
55 int err = 0;
57 - inode->i_version++;
58 + if (!test_opt(inode->i_sb, NOVERSION))
59 + inode->i_version++;
61 /* the do_update_inode consumes one bh->b_count */
62 get_bh(iloc->bh);