Re: [PATCH v1 2/5] s390/uv: convert gmap_make_secure() to work on folios

From: Matthew Wilcox
Date: Thu Apr 04 2024 - 23:30:20 EST


On Thu, Apr 04, 2024 at 06:36:39PM +0200, David Hildenbrand wrote:
> + /* We might get PTE-mapped large folios; split them first. */
> + if (folio_test_large(folio)) {
> + rc = -E2BIG;

We agree to this point. I just turned this into -EINVAL.

>
> + if (rc == -E2BIG) {
> + /*
> + * Splitting might fail with -EBUSY due to unexpected folio
> + * references, just like make_folio_secure(). So handle it
> + * ahead of time without the PTL being held.
> + */
> + folio_lock(folio);
> + rc = split_folio(folio);
> + folio_unlock(folio);
> + folio_put(folio);
> + }

Ummm ... if split_folio() succeeds, aren't we going to return 0 from
this function, which will be interpreted as make_folio_secure() having
succeeded?