Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1260467
| From | Wei Fang <fangwei1@huawei.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH] bfs: fix i_blocks accounting |
| Date | 2015-11-02 10:10 +0100 |
| Message-ID | <qqjhL-3tg-9@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
Update inode->i_blocks if succeed to get block, otherwise we'll get wrong number of blocks. Signed-off-by: Wei Fang <fangwei1@huawei.com> --- fs/bfs/file.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/fs/bfs/file.c b/fs/bfs/file.c index 97f1b51..f89abdb 100644 --- a/fs/bfs/file.c +++ b/fs/bfs/file.c @@ -108,6 +108,7 @@ static int bfs_get_block(struct inode *inode, sector_t block, map_bh(bh_result, sb, phys); info->si_freeb -= phys - bi->i_eblock; info->si_lf_eblk = bi->i_eblock = phys; + inode->i_blocks = block + 1; mark_inode_dirty(inode); err = 0; goto out; @@ -141,7 +142,8 @@ static int bfs_get_block(struct inode *inode, sector_t block, * This assumes nothing can write the inode back while we are here * and thus update inode->i_blocks! (XXX) */ - info->si_freeb -= bi->i_eblock - bi->i_sblock + 1 - inode->i_blocks; + info->si_freeb -= block + 1 - inode->i_blocks; + inode->i_blocks = block + 1; mark_inode_dirty(inode); map_bh(bh_result, sb, phys); out: -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[PATCH] bfs: fix i_blocks accounting Wei Fang <fangwei1@huawei.com> - 2015-11-02 10:10 +0100
csiph-web