| Date | Tue, 13 Jan 2015 16:39:03 -0500 | From | Matthew Wilcox <> | Subject | Re: [PATCH v12 07/20] dax,ext2: Replace ext2_clear_xip_target with dax_clear_blocks |
| |
On Mon, Jan 12, 2015 at 03:09:47PM -0800, Andrew Morton wrote: > > +int dax_clear_blocks(struct inode *inode, sector_t block, long size) > > +{ ... > > + if (pgsz < PAGE_SIZE) > > + memset(addr, 0, pgsz); > > + else > > + clear_page(addr); > > Are there any cache issues in all this code? flush_dcache_page(addr)?
Here, no. This is only called to initialise a newly allocated block.
Elsewhere, maybe. When i was originally working on this, I think I had code that forced mmaps of DAX files to be aligned to SHMLBA, because I remember noticing a bug in sparc64's remap_file_range(). Unfortunately, in the various rewrites, that got lost. So it needs to be put back in.
flush_dcache_page() in particular won't work because it needs a struct page.
|