diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2010-07-22 01:19:42 +0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-08-10 00:47:55 +0400 |
commit | addacc7d6f0f0bcce12adf9fe9e6455e1dfd74da (patch) | |
tree | 8743c3586ebc9691fe45b2783e13500ad33b584d /fs/ext2/inode.c | |
parent | 3889717d2851bf38015c0b291026c07c02264623 (diff) | |
download | linux-addacc7d6f0f0bcce12adf9fe9e6455e1dfd74da.tar.xz |
Take dirtying the inode to callers of ext2_free_blocks()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ext2/inode.c')
-rw-r--r-- | fs/ext2/inode.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index 069620b30d4d..e8af26dd6715 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c @@ -423,6 +423,8 @@ static int ext2_alloc_blocks(struct inode *inode, failed_out: for (i = 0; i <index; i++) ext2_free_blocks(inode, new_blocks[i], 1); + if (index) + mark_inode_dirty(inode); return ret; } @@ -993,8 +995,8 @@ static inline void ext2_free_data(struct inode *inode, __le32 *p, __le32 *q) else if (block_to_free == nr - count) count++; else { - mark_inode_dirty(inode); ext2_free_blocks (inode, block_to_free, count); + mark_inode_dirty(inode); free_this: block_to_free = nr; count = 1; @@ -1002,8 +1004,8 @@ static inline void ext2_free_data(struct inode *inode, __le32 *p, __le32 *q) } } if (count > 0) { - mark_inode_dirty(inode); ext2_free_blocks (inode, block_to_free, count); + mark_inode_dirty(inode); } } |