On Tue 02-05-23 13:13:34, Peter Zijlstra wrote:
On Tue, May 02, 2023 at 12:11:49AM +0100, Lorenzo Stoakes wrote:
quoted
+
+ /*
+ * Neither anonymous nor shmem-backed folios require
+ * dirty tracking.
+ */
+ ret = folio_test_anon(folio) ||
+ (mapping && shmem_mapping(mapping));
+ } else {
+ /* If the mapping is unstable, fallback to the slow path. */
+ ret = false;
+ }
+
+ unlock_rcu();
+
+ return ret;
then becomes:
if (folio_test_anon(folio))
return true;
/*
* Having IRQs disabled (as per GUP-fast) also inhibits RCU
* grace periods from making progress, IOW. they imply
* rcu_read_lock().
*/
lockdep_assert_irqs_disabled();
/*
* Inodes and thus address_space are RCU freed and thus safe to
* access at this point.
*/
mapping = folio_mapping(folio);
if (mapping && shmem_mapping(mapping))
return true;
return false;
Yeah, that's even better.
Honza
--
Jan Kara [off-list ref]
SUSE Labs, CR