Commit 2cd05cc39347ddd8994b7f63ab5cb886f042477f

Authored by Theodore Ts'o
1 parent 2846e82004

ext4: remove unneeded ext4_journal_get_undo_access

The block allocation code used to use jbd2_journal_get_undo_access as
a way to make changes that wouldn't show up until the commit took
place.  The new multi-block allocation code has a its own way of
preventing newly freed blocks from getting reused until the commit
takes place (it avoids updating the buddy bitmaps until the commit is
done), so we don't need to use jbd2_journal_get_undo_access(), which
has extra overhead compared to jbd2_journal_get_write_access().

There was one last vestigal use of ext4_journal_get_undo_access() in
ext4_add_groupblocks(); change it to use ext4_journal_get_write_access()
and then remove the ext4_journal_get_undo_access() support.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

Showing 3 changed files with 4 additions and 27 deletions Side-by-side Diff

... ... @@ -6,20 +6,6 @@
6 6  
7 7 #include <trace/events/ext4.h>
8 8  
9   -int __ext4_journal_get_undo_access(const char *where, unsigned int line,
10   - handle_t *handle, struct buffer_head *bh)
11   -{
12   - int err = 0;
13   -
14   - if (ext4_handle_valid(handle)) {
15   - err = jbd2_journal_get_undo_access(handle, bh);
16   - if (err)
17   - ext4_journal_abort_handle(where, line, __func__, bh,
18   - handle, err);
19   - }
20   - return err;
21   -}
22   -
23 9 int __ext4_journal_get_write_access(const char *where, unsigned int line,
24 10 handle_t *handle, struct buffer_head *bh)
25 11 {
... ... @@ -126,9 +126,6 @@
126 126 const char *err_fn,
127 127 struct buffer_head *bh, handle_t *handle, int err);
128 128  
129   -int __ext4_journal_get_undo_access(const char *where, unsigned int line,
130   - handle_t *handle, struct buffer_head *bh);
131   -
132 129 int __ext4_journal_get_write_access(const char *where, unsigned int line,
133 130 handle_t *handle, struct buffer_head *bh);
134 131  
... ... @@ -146,8 +143,6 @@
146 143 int __ext4_handle_dirty_super(const char *where, unsigned int line,
147 144 handle_t *handle, struct super_block *sb);
148 145  
149   -#define ext4_journal_get_undo_access(handle, bh) \
150   - __ext4_journal_get_undo_access(__func__, __LINE__, (handle), (bh))
151 146 #define ext4_journal_get_write_access(handle, bh) \
152 147 __ext4_journal_get_write_access(__func__, __LINE__, (handle), (bh))
153 148 #define ext4_forget(handle, is_metadata, inode, bh, block_nr) \
... ... @@ -4732,9 +4732,9 @@
4732 4732 * Check to see if we are freeing blocks across a group
4733 4733 * boundary.
4734 4734 */
4735   - if (bit + count > EXT4_BLOCKS_PER_GROUP(sb)) {
  4735 + if (bit + count > EXT4_BLOCKS_PER_GROUP(sb))
4736 4736 goto error_return;
4737   - }
  4737 +
4738 4738 bitmap_bh = ext4_read_block_bitmap(sb, block_group);
4739 4739 if (!bitmap_bh)
4740 4740 goto error_return;
... ... @@ -4753,12 +4753,8 @@
4753 4753 goto error_return;
4754 4754 }
4755 4755  
4756   - /*
4757   - * We are about to add blocks to the bitmap,
4758   - * so we need undo access.
4759   - */
4760   - BUFFER_TRACE(bitmap_bh, "getting undo access");
4761   - err = ext4_journal_get_undo_access(handle, bitmap_bh);
  4756 + BUFFER_TRACE(bitmap_bh, "getting write access");
  4757 + err = ext4_journal_get_write_access(handle, bitmap_bh);
4762 4758 if (err)
4763 4759 goto error_return;
4764 4760