diff options
| -rw-r--r-- | fs/ext4/ialloc.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 4facdd29a350..3a100e7a62a8 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c | |||
| @@ -725,6 +725,10 @@ repeat_in_this_group: | |||
| 725 | "inode=%lu", ino + 1); | 725 | "inode=%lu", ino + 1); |
| 726 | continue; | 726 | continue; |
| 727 | } | 727 | } |
| 728 | BUFFER_TRACE(inode_bitmap_bh, "get_write_access"); | ||
| 729 | err = ext4_journal_get_write_access(handle, inode_bitmap_bh); | ||
| 730 | if (err) | ||
| 731 | goto fail; | ||
| 728 | ext4_lock_group(sb, group); | 732 | ext4_lock_group(sb, group); |
| 729 | ret2 = ext4_test_and_set_bit(ino, inode_bitmap_bh->b_data); | 733 | ret2 = ext4_test_and_set_bit(ino, inode_bitmap_bh->b_data); |
| 730 | ext4_unlock_group(sb, group); | 734 | ext4_unlock_group(sb, group); |
| @@ -738,6 +742,11 @@ repeat_in_this_group: | |||
| 738 | goto out; | 742 | goto out; |
| 739 | 743 | ||
| 740 | got: | 744 | got: |
| 745 | BUFFER_TRACE(inode_bitmap_bh, "call ext4_handle_dirty_metadata"); | ||
| 746 | err = ext4_handle_dirty_metadata(handle, NULL, inode_bitmap_bh); | ||
| 747 | if (err) | ||
| 748 | goto fail; | ||
| 749 | |||
| 741 | /* We may have to initialize the block bitmap if it isn't already */ | 750 | /* We may have to initialize the block bitmap if it isn't already */ |
| 742 | if (ext4_has_group_desc_csum(sb) && | 751 | if (ext4_has_group_desc_csum(sb) && |
| 743 | gdp->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) { | 752 | gdp->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) { |
| @@ -771,11 +780,6 @@ got: | |||
| 771 | goto fail; | 780 | goto fail; |
| 772 | } | 781 | } |
| 773 | 782 | ||
| 774 | BUFFER_TRACE(inode_bitmap_bh, "get_write_access"); | ||
| 775 | err = ext4_journal_get_write_access(handle, inode_bitmap_bh); | ||
| 776 | if (err) | ||
| 777 | goto fail; | ||
| 778 | |||
| 779 | BUFFER_TRACE(group_desc_bh, "get_write_access"); | 783 | BUFFER_TRACE(group_desc_bh, "get_write_access"); |
| 780 | err = ext4_journal_get_write_access(handle, group_desc_bh); | 784 | err = ext4_journal_get_write_access(handle, group_desc_bh); |
| 781 | if (err) | 785 | if (err) |
| @@ -823,11 +827,6 @@ got: | |||
| 823 | } | 827 | } |
| 824 | ext4_unlock_group(sb, group); | 828 | ext4_unlock_group(sb, group); |
| 825 | 829 | ||
| 826 | BUFFER_TRACE(inode_bitmap_bh, "call ext4_handle_dirty_metadata"); | ||
| 827 | err = ext4_handle_dirty_metadata(handle, NULL, inode_bitmap_bh); | ||
| 828 | if (err) | ||
| 829 | goto fail; | ||
| 830 | |||
| 831 | BUFFER_TRACE(group_desc_bh, "call ext4_handle_dirty_metadata"); | 830 | BUFFER_TRACE(group_desc_bh, "call ext4_handle_dirty_metadata"); |
| 832 | err = ext4_handle_dirty_metadata(handle, NULL, group_desc_bh); | 831 | err = ext4_handle_dirty_metadata(handle, NULL, group_desc_bh); |
| 833 | if (err) | 832 | if (err) |
