]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/2.6.32.1/0026-ext4-quota-macros-cleanup.patch
drop queue-4.14/mips-make-sure-dt-memory-regions-are-valid.patch
[thirdparty/kernel/stable-queue.git] / releases / 2.6.32.1 / 0026-ext4-quota-macros-cleanup.patch
1 From 02fa03eb498b59853433cfa40cd152f0f5419729 Mon Sep 17 00:00:00 2001
2 From: Dmitry Monakhov <dmonakhov@openvz.org>
3 Date: Tue, 8 Dec 2009 22:42:15 -0500
4 Subject: [PATCH 26/30] ext4: quota macros cleanup
5
6 (cherry picked from commit 5aca07eb7d8f14d90c740834d15ca15277f4820c)
7
8 Currently all quota block reservation macros contains hard-coded "2"
9 aka MAXQUOTAS value. This is no good because in some places it is not
10 obvious to understand what does this digit represent. Let's introduce
11 new macro with self descriptive name.
12
13 Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
14 Acked-by: Mingming Cao <cmm@us.ibm.com>
15 Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 ---
18 fs/ext4/ext4_jbd2.h | 8 ++++++--
19 fs/ext4/extents.c | 2 +-
20 fs/ext4/inode.c | 2 +-
21 fs/ext4/migrate.c | 4 ++--
22 fs/ext4/namei.c | 8 ++++----
23 5 files changed, 14 insertions(+), 10 deletions(-)
24
25 --- a/fs/ext4/ext4_jbd2.h
26 +++ b/fs/ext4/ext4_jbd2.h
27 @@ -49,7 +49,7 @@
28
29 #define EXT4_DATA_TRANS_BLOCKS(sb) (EXT4_SINGLEDATA_TRANS_BLOCKS(sb) + \
30 EXT4_XATTR_TRANS_BLOCKS - 2 + \
31 - 2*EXT4_QUOTA_TRANS_BLOCKS(sb))
32 + EXT4_MAXQUOTAS_TRANS_BLOCKS(sb))
33
34 /*
35 * Define the number of metadata blocks we need to account to modify data.
36 @@ -57,7 +57,7 @@
37 * This include super block, inode block, quota blocks and xattr blocks
38 */
39 #define EXT4_META_TRANS_BLOCKS(sb) (EXT4_XATTR_TRANS_BLOCKS + \
40 - 2*EXT4_QUOTA_TRANS_BLOCKS(sb))
41 + EXT4_MAXQUOTAS_TRANS_BLOCKS(sb))
42
43 /* Delete operations potentially hit one directory's namespace plus an
44 * entire inode, plus arbitrary amounts of bitmap/indirection data. Be
45 @@ -92,6 +92,7 @@
46 * but inode, sb and group updates are done only once */
47 #define EXT4_QUOTA_INIT_BLOCKS(sb) (test_opt(sb, QUOTA) ? (DQUOT_INIT_ALLOC*\
48 (EXT4_SINGLEDATA_TRANS_BLOCKS(sb)-3)+3+DQUOT_INIT_REWRITE) : 0)
49 +
50 #define EXT4_QUOTA_DEL_BLOCKS(sb) (test_opt(sb, QUOTA) ? (DQUOT_DEL_ALLOC*\
51 (EXT4_SINGLEDATA_TRANS_BLOCKS(sb)-3)+3+DQUOT_DEL_REWRITE) : 0)
52 #else
53 @@ -99,6 +100,9 @@
54 #define EXT4_QUOTA_INIT_BLOCKS(sb) 0
55 #define EXT4_QUOTA_DEL_BLOCKS(sb) 0
56 #endif
57 +#define EXT4_MAXQUOTAS_TRANS_BLOCKS(sb) (MAXQUOTAS*EXT4_QUOTA_TRANS_BLOCKS(sb))
58 +#define EXT4_MAXQUOTAS_INIT_BLOCKS(sb) (MAXQUOTAS*EXT4_QUOTA_INIT_BLOCKS(sb))
59 +#define EXT4_MAXQUOTAS_DEL_BLOCKS(sb) (MAXQUOTAS*EXT4_QUOTA_DEL_BLOCKS(sb))
60
61 int
62 ext4_mark_iloc_dirty(handle_t *handle,
63 --- a/fs/ext4/extents.c
64 +++ b/fs/ext4/extents.c
65 @@ -2167,7 +2167,7 @@ ext4_ext_rm_leaf(handle_t *handle, struc
66 correct_index = 1;
67 credits += (ext_depth(inode)) + 1;
68 }
69 - credits += 2 * EXT4_QUOTA_TRANS_BLOCKS(inode->i_sb);
70 + credits += EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb);
71
72 err = ext4_ext_truncate_extend_restart(handle, inode, credits);
73 if (err)
74 --- a/fs/ext4/inode.c
75 +++ b/fs/ext4/inode.c
76 @@ -5231,7 +5231,7 @@ int ext4_setattr(struct dentry *dentry,
77
78 /* (user+group)*(old+new) structure, inode write (sb,
79 * inode block, ? - but truncate inode update has it) */
80 - handle = ext4_journal_start(inode, 2*(EXT4_QUOTA_INIT_BLOCKS(inode->i_sb)+
81 + handle = ext4_journal_start(inode, (EXT4_MAXQUOTAS_INIT_BLOCKS(inode->i_sb)+
82 EXT4_QUOTA_DEL_BLOCKS(inode->i_sb))+3);
83 if (IS_ERR(handle)) {
84 error = PTR_ERR(handle);
85 --- a/fs/ext4/migrate.c
86 +++ b/fs/ext4/migrate.c
87 @@ -238,7 +238,7 @@ static int extend_credit_for_blkdel(hand
88 * So allocate a credit of 3. We may update
89 * quota (user and group).
90 */
91 - needed = 3 + 2*EXT4_QUOTA_TRANS_BLOCKS(inode->i_sb);
92 + needed = 3 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb);
93
94 if (ext4_journal_extend(handle, needed) != 0)
95 retval = ext4_journal_restart(handle, needed);
96 @@ -477,7 +477,7 @@ int ext4_ext_migrate(struct inode *inode
97 handle = ext4_journal_start(inode,
98 EXT4_DATA_TRANS_BLOCKS(inode->i_sb) +
99 EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 +
100 - 2 * EXT4_QUOTA_INIT_BLOCKS(inode->i_sb)
101 + EXT4_MAXQUOTAS_INIT_BLOCKS(inode->i_sb)
102 + 1);
103 if (IS_ERR(handle)) {
104 retval = PTR_ERR(handle);
105 --- a/fs/ext4/namei.c
106 +++ b/fs/ext4/namei.c
107 @@ -1769,7 +1769,7 @@ static int ext4_create(struct inode *dir
108 retry:
109 handle = ext4_journal_start(dir, EXT4_DATA_TRANS_BLOCKS(dir->i_sb) +
110 EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 +
111 - 2*EXT4_QUOTA_INIT_BLOCKS(dir->i_sb));
112 + EXT4_MAXQUOTAS_INIT_BLOCKS(dir->i_sb));
113 if (IS_ERR(handle))
114 return PTR_ERR(handle);
115
116 @@ -1803,7 +1803,7 @@ static int ext4_mknod(struct inode *dir,
117 retry:
118 handle = ext4_journal_start(dir, EXT4_DATA_TRANS_BLOCKS(dir->i_sb) +
119 EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 +
120 - 2*EXT4_QUOTA_INIT_BLOCKS(dir->i_sb));
121 + EXT4_MAXQUOTAS_INIT_BLOCKS(dir->i_sb));
122 if (IS_ERR(handle))
123 return PTR_ERR(handle);
124
125 @@ -1840,7 +1840,7 @@ static int ext4_mkdir(struct inode *dir,
126 retry:
127 handle = ext4_journal_start(dir, EXT4_DATA_TRANS_BLOCKS(dir->i_sb) +
128 EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 +
129 - 2*EXT4_QUOTA_INIT_BLOCKS(dir->i_sb));
130 + EXT4_MAXQUOTAS_INIT_BLOCKS(dir->i_sb));
131 if (IS_ERR(handle))
132 return PTR_ERR(handle);
133
134 @@ -2253,7 +2253,7 @@ static int ext4_symlink(struct inode *di
135 retry:
136 handle = ext4_journal_start(dir, EXT4_DATA_TRANS_BLOCKS(dir->i_sb) +
137 EXT4_INDEX_EXTRA_TRANS_BLOCKS + 5 +
138 - 2*EXT4_QUOTA_INIT_BLOCKS(dir->i_sb));
139 + EXT4_MAXQUOTAS_INIT_BLOCKS(dir->i_sb));
140 if (IS_ERR(handle))
141 return PTR_ERR(handle);
142