On Wed 29-08-12 14:52:22, Ashish Sangwan wrote: > I have a query about orphan list and truncate. > Currently these steps are performed in ext4_ext_truncate(): > a) Start journal handle. > b) add inode to orphan list. > c) i_disksize is updated and inode is mark dirty. > d) actual truncate happen. > e) remove inode from orphan list. > f) handle stop. > > If system crash during step d) will i_disksize is actually updated on disk? > AFAIK i_disksize might be updated on the journal but not on its > original location because the transaction is not commited yet. Yes, that can happen. > If this is the case than what is the use of re-starting truncate > operation while processing orphan inode list? Because it can be on disk (noone guarantees when a transaction commits) and in that case we have to perform the truncate because some of the blocks might have been already freed by a transaction which is also committed. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html