@@ -144,6 +144,7 @@ struct page {
144
144
atomic_t compound_pincount ;
145
145
#ifdef CONFIG_64BIT
146
146
unsigned int compound_nr ; /* 1 << compound_order */
147
+ unsigned long _private_1 ;
147
148
#endif
148
149
};
149
150
struct { /* Second tail page of compound page */
@@ -264,6 +265,7 @@ struct page {
264
265
* @_total_mapcount: Do not use directly, call folio_entire_mapcount().
265
266
* @_pincount: Do not use directly, call folio_maybe_dma_pinned().
266
267
* @_folio_nr_pages: Do not use directly, call folio_nr_pages().
268
+ * @_private_1: Do not use directly, call folio_get_private_1().
267
269
*
268
270
* A folio is a physically, virtually and logically contiguous set
269
271
* of bytes. It is a power-of-two in size, and it is aligned to that
@@ -311,6 +313,7 @@ struct folio {
311
313
#ifdef CONFIG_64BIT
312
314
unsigned int _folio_nr_pages ;
313
315
#endif
316
+ unsigned long _private_1 ;
314
317
};
315
318
316
319
#define FOLIO_MATCH (pg , fl ) \
@@ -338,6 +341,7 @@ FOLIO_MATCH(compound_mapcount, _total_mapcount);
338
341
FOLIO_MATCH (compound_pincount , _pincount );
339
342
#ifdef CONFIG_64BIT
340
343
FOLIO_MATCH (compound_nr , _folio_nr_pages );
344
+ FOLIO_MATCH (_private_1 , _private_1 );
341
345
#endif
342
346
#undef FOLIO_MATCH
343
347
@@ -383,6 +387,16 @@ static inline void *folio_get_private(struct folio *folio)
383
387
return folio -> private ;
384
388
}
385
389
390
+ static inline void folio_set_private_1 (struct folio * folio , unsigned long private )
391
+ {
392
+ folio -> _private_1 = private ;
393
+ }
394
+
395
+ static inline unsigned long folio_get_private_1 (struct folio * folio )
396
+ {
397
+ return folio -> _private_1 ;
398
+ }
399
+
386
400
struct page_frag_cache {
387
401
void * va ;
388
402
#if (PAGE_SIZE < PAGE_FRAG_CACHE_MAX_SIZE )
0 commit comments