On Tue, 14 Jan 2014, Dave Hansen wrote: > diff -puN include/linux/mm_types.h~make-slab-use-page-lru-vs-list-consistently include/linux/mm_types.h > --- a/include/linux/mm_types.h~make-slab-use-page-lru-vs-list-consistently 2014-01-14 09:57:56.099621967 -0800 > +++ b/include/linux/mm_types.h 2014-01-14 09:57:56.106622281 -0800 > @@ -124,6 +124,8 @@ struct page { > union { > struct list_head lru; /* Pageout list, eg. active_list > * protected by zone->lru_lock ! > + * Can be used as a generic list > + * by the page owner. > */ > struct { /* slub per cpu partial pages */ > struct page *next; /* Next partial slab */ > @@ -136,7 +138,6 @@ struct page { > #endif > }; > > - struct list_head list; /* slobs list of pages */ > struct slab *slab_page; /* slab fields */ > struct rcu_head rcu_head; /* Used by SLAB > * when destroying via RCU Did you try with a CONFIG_BLOCK config? block/blk-mq.c: In function ‘blk_mq_free_rq_map’: block/blk-mq.c:1094:10: error: ‘struct page’ has no member named ‘list’ block/blk-mq.c:1094:10: warning: initialization from incompatible pointer type [enabled by default] block/blk-mq.c:1094:10: error: ‘struct page’ has no member named ‘list’ block/blk-mq.c:1095:22: error: ‘struct page’ has no member named ‘list’ block/blk-mq.c: In function ‘blk_mq_init_rq_map’: block/blk-mq.c:1159:22: error: ‘struct page’ has no member named ‘list’