Dear Shin Hong, > I have a question of inode's i_size. I found that it is hard to find > any consistent synchronization mechanism that protects inode's i_size > field. > Is there any lock or synchronization mechanism that consistently > protects i_size fields of inode objects to avoid data race? > In inode's definition in /include/linux/fs.h, there is comment that > i_lock protects i_size but it is not clear. As Ted said, i_size changes use i_mutex to guard them (actually, the comment you are probably refering to speaks about i_mutex - i_lock is something different). Reading i_size is a different matter - see i_size_read function. We use seqlock for that - essentially we use an atomic counter which is incremented on every change of i_size and check that it's value before we started reading i_size and after we have finished reading it has not changed. I hope this helps. Honza -- Jan Kara <jack@xxxxxxx> SuSE CR Labs -- 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