-static inline unsigned long dax_folio_share_put(struct folio *folio) +static inline unsigned long dax_folio_put(struct folio *folio) { - return --folio->page.share; + unsigned long ref; + int order, i; + + if (!dax_folio_is_shared(folio)) + ref = 0; + else + ref = --folio->share; +
It would still be good to learn how this non-atomic update here is safe (@Dan?), but that's independent of this series.
Staring at it, I would have thought we have to us an atomic_t here. Acked-by: David Hildenbrand <david@xxxxxxxxxx> -- Cheers, David / dhildenb