Hello, I'm looking into how Ceph protects against races between page fault and hole punching (I'm unifying protection for this kind of races among filesystems) and AFAICT it does not. What I have in mind in particular is a race like: CPU1 CPU2 ceph_fallocate() ... ceph_zero_pagecache_range() ceph_filemap_fault() faults in page in the range being punched ceph_zero_objects() And now we have a page in punched range with invalid data. If ceph_page_mkwrite() manages to squeeze in at the right moment, we might even associate invalid metadata with the page I'd assume (but I'm not sure whether this would be harmful). Am I missing something? Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR