On Sun, Aug 29, 2021 at 08:25:13PM +0800, Shiyang Ruan wrote: > We replace the existing entry to the newly allocated one in case of CoW. > Also, we mark the entry as PAGECACHE_TAG_TOWRITE so writeback marks this > entry as writeprotected. This helps us snapshots so new write > pagefaults after snapshots trigger a CoW. Nit: s/We r/R/ above. > + * MAP_SYNC on a dax mapping guarantees dirty metadata is > + * flushed on write-faults (non-cow), but not read-faults. > + */ > +static bool dax_fault_is_synchronous(const struct iomap_iter *iter, > + struct vm_area_struct *vma) > +{ > + return (iter->flags & IOMAP_WRITE) && (vma->vm_flags & VM_SYNC) > + && (iter->iomap.flags & IOMAP_F_DIRTY); > +} > + > +static bool dax_fault_is_cow(const struct iomap_iter *iter) > +{ > + return (iter->flags & IOMAP_WRITE) > + && (iter->iomap.flags & IOMAP_F_SHARED); > +} The && goes last on the first line, not at the beginning of the second.