[PATCH] hfs: don't dirty unchanged inode

If inode size hasn't changed, don't do anything further in truncate, which
also prevents a dirty inode, what might upset some readonly devices quite
badly.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Roman Zippel and committed by Linus Torvalds f76d28d2 0072b138

+5 -2
+2 -1
fs/hfs/extent.c
··· 482 482 page_cache_release(page); 483 483 mark_inode_dirty(inode); 484 484 return; 485 - } 485 + } else if (inode->i_size == HFS_I(inode)->phys_size) 486 + return; 486 487 size = inode->i_size + HFS_SB(sb)->alloc_blksz - 1; 487 488 blk_cnt = size / HFS_SB(sb)->alloc_blksz; 488 489 alloc_cnt = HFS_I(inode)->alloc_blocks;
+3 -1
fs/hfsplus/extents.c
··· 461 461 page_cache_release(page); 462 462 mark_inode_dirty(inode); 463 463 return; 464 - } 464 + } else if (inode->i_size == HFSPLUS_I(inode).phys_size) 465 + return; 466 + 465 467 blk_cnt = (inode->i_size + HFSPLUS_SB(sb).alloc_blksz - 1) >> HFSPLUS_SB(sb).alloc_blksz_shift; 466 468 alloc_cnt = HFSPLUS_I(inode).alloc_blocks; 467 469 if (blk_cnt == alloc_cnt)