diff options
Diffstat (limited to 'fs/ocfs2/suballoc.c')
-rw-r--r-- | fs/ocfs2/suballoc.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c index b93d7e72175a..e7edda8c6a11 100644 --- a/fs/ocfs2/suballoc.c +++ b/fs/ocfs2/suballoc.c | |||
@@ -1719,7 +1719,6 @@ static int ocfs2_search_chain(struct ocfs2_alloc_context *ac, | |||
1719 | { | 1719 | { |
1720 | int status; | 1720 | int status; |
1721 | u16 chain; | 1721 | u16 chain; |
1722 | u32 tmp_used; | ||
1723 | u64 next_group; | 1722 | u64 next_group; |
1724 | struct inode *alloc_inode = ac->ac_inode; | 1723 | struct inode *alloc_inode = ac->ac_inode; |
1725 | struct buffer_head *group_bh = NULL; | 1724 | struct buffer_head *group_bh = NULL; |
@@ -1807,22 +1806,14 @@ static int ocfs2_search_chain(struct ocfs2_alloc_context *ac, | |||
1807 | } | 1806 | } |
1808 | } | 1807 | } |
1809 | 1808 | ||
1810 | /* Ok, claim our bits now: set the info on dinode, chainlist | 1809 | status = ocfs2_alloc_dinode_update_counts(alloc_inode, handle, |
1811 | * and then the group */ | 1810 | ac->ac_bh, res->sr_bits, |
1812 | status = ocfs2_journal_access_di(handle, | 1811 | chain); |
1813 | INODE_CACHE(alloc_inode), | 1812 | if (status) { |
1814 | ac->ac_bh, | ||
1815 | OCFS2_JOURNAL_ACCESS_WRITE); | ||
1816 | if (status < 0) { | ||
1817 | mlog_errno(status); | 1813 | mlog_errno(status); |
1818 | goto bail; | 1814 | goto bail; |
1819 | } | 1815 | } |
1820 | 1816 | ||
1821 | tmp_used = le32_to_cpu(fe->id1.bitmap1.i_used); | ||
1822 | fe->id1.bitmap1.i_used = cpu_to_le32(res->sr_bits + tmp_used); | ||
1823 | le32_add_cpu(&cl->cl_recs[chain].c_free, -res->sr_bits); | ||
1824 | ocfs2_journal_dirty(handle, ac->ac_bh); | ||
1825 | |||
1826 | status = ocfs2_block_group_set_bits(handle, | 1817 | status = ocfs2_block_group_set_bits(handle, |
1827 | alloc_inode, | 1818 | alloc_inode, |
1828 | bg, | 1819 | bg, |