Re: [PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-12 Thread Christoph Hellwig
On Sun, Mar 11, 2018 at 12:16:25PM -0700, Dan Williams wrote: > I did the rename, and am housing these in fs/dax.c, I assume that's > what you wanted. libfs.c would seem ok to, but we're into micro-management land now :)

Re: [PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-12 Thread Christoph Hellwig
On Sun, Mar 11, 2018 at 12:16:25PM -0700, Dan Williams wrote: > I did the rename, and am housing these in fs/dax.c, I assume that's > what you wanted. libfs.c would seem ok to, but we're into micro-management land now :)

Re: [PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-11 Thread Dan Williams
On Sat, Mar 10, 2018 at 9:40 AM, Dan Williams wrote: > On Sat, Mar 10, 2018 at 1:46 AM, Christoph Hellwig wrote: >>> +int dax_set_page_dirty(struct page *page) >>> +{ >>> + /* >>> + * Unlike __set_page_dirty_no_writeback that handles dirty page >>>

Re: [PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-11 Thread Dan Williams
On Sat, Mar 10, 2018 at 9:40 AM, Dan Williams wrote: > On Sat, Mar 10, 2018 at 1:46 AM, Christoph Hellwig wrote: >>> +int dax_set_page_dirty(struct page *page) >>> +{ >>> + /* >>> + * Unlike __set_page_dirty_no_writeback that handles dirty page >>> + * tracking in the page object,

Re: [PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-10 Thread Dan Williams
On Sat, Mar 10, 2018 at 1:46 AM, Christoph Hellwig wrote: >> +int dax_set_page_dirty(struct page *page) >> +{ >> + /* >> + * Unlike __set_page_dirty_no_writeback that handles dirty page >> + * tracking in the page object, dax does all dirty tracking in >> + * the

Re: [PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-10 Thread Dan Williams
On Sat, Mar 10, 2018 at 1:46 AM, Christoph Hellwig wrote: >> +int dax_set_page_dirty(struct page *page) >> +{ >> + /* >> + * Unlike __set_page_dirty_no_writeback that handles dirty page >> + * tracking in the page object, dax does all dirty tracking in >> + * the inode

Re: [PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-10 Thread Christoph Hellwig
> +int dax_set_page_dirty(struct page *page) > +{ > + /* > + * Unlike __set_page_dirty_no_writeback that handles dirty page > + * tracking in the page object, dax does all dirty tracking in > + * the inode address_space in response to mkwrite faults. In the > + * dax case

Re: [PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-10 Thread Christoph Hellwig
> +int dax_set_page_dirty(struct page *page) > +{ > + /* > + * Unlike __set_page_dirty_no_writeback that handles dirty page > + * tracking in the page object, dax does all dirty tracking in > + * the inode address_space in response to mkwrite faults. In the > + * dax case

[PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-09 Thread Dan Williams
In preparation for the dax implementation to start associating dax pages to inodes via page->mapping, we need to provide a 'struct address_space_operations' instance for dax. Otherwise, direct-I/O triggers incorrect page cache assumptions and warnings like the following: WARNING: CPU: 27 PID:

[PATCH v5 02/11] xfs, dax: introduce xfs_dax_aops

2018-03-09 Thread Dan Williams
In preparation for the dax implementation to start associating dax pages to inodes via page->mapping, we need to provide a 'struct address_space_operations' instance for dax. Otherwise, direct-I/O triggers incorrect page cache assumptions and warnings like the following: WARNING: CPU: 27 PID: