Re: [PATCH v9 00/61] XArray v9

From: Matthew Wilcox
Date: Mon Mar 26 2018 - 19:26:41 EST


On Mon, Mar 26, 2018 at 03:36:48PM -0700, Andrew Morton wrote:
> I looked at this from a for-4.17 POV and ran out of nerve at "[PATCH v9
> 09/61] xarray: Replace exceptional entries". It's awfully late.

I did post v7 five weeks ago ... it wasn't late at the time.

> "[PATCH v9 08/61] page cache: Use xa_lock" looks sufficiently
> mechanical to be if-it-compiles-it-works, although perhaps that
> shouldn't be in 4.17 either. Mainly because it commits us to merging
> the rest of XArray and there hasn't been a ton of review and test
> activity.

I think we should commit to that. The API has had a pretty thorough
review, and nobody's stepped up to say "Hey, no, I prefer the old API,
I don't want to see it change". Merging patch 8 would move us a good
chunk of the way towards getting the IDA in a position where it can
be converted. Patch 9 would get us even further, but I'm willing to
respin in order to build on just patch 8.

> It looks like btrfs has changed in -next:
>
> --- a/fs/btrfs/inode.c~page-cache-use-xa_lock-fix
> +++ a/fs/btrfs/inode.c
> @@ -7445,7 +7445,7 @@ out:
>
> bool btrfs_page_exists_in_range(struct inode *inode, loff_t start, loff_t end)
> {
> - struct radix_tree_root *root = &inode->i_mapping->page_tree;
> + struct radix_tree_root *root = &inode->i_mapping->i_pages;
> bool found = false;
> void **pagep = NULL;
> struct page *page = NULL;

btrfs_page_exists_in_range() has been deleted -- David Sterba merged the
patch v8-0006-btrfs-Use-filemap_range_has_page.patch ... which was dropped
from v9 of the patchset, so I'm not sure what you're actually looking at?