|
|
@@ -232,7 +232,6 @@ struct swap_info_struct {
|
|
|
unsigned long flags; /* SWP_USED etc: see above */
|
|
|
signed short prio; /* swap priority of this type */
|
|
|
struct plist_node list; /* entry in swap_active_head */
|
|
|
- struct plist_node avail_lists[MAX_NUMNODES];/* entry in swap_avail_heads */
|
|
|
signed char type; /* strange name for an index */
|
|
|
unsigned int max; /* extent of the swap_map */
|
|
|
unsigned char *swap_map; /* vmalloc'ed array of usage counts */
|
|
|
@@ -273,6 +272,16 @@ struct swap_info_struct {
|
|
|
*/
|
|
|
struct work_struct discard_work; /* discard worker */
|
|
|
struct swap_cluster_list discard_clusters; /* discard clusters list */
|
|
|
+ struct plist_node avail_lists[0]; /*
|
|
|
+ * entries in swap_avail_heads, one
|
|
|
+ * entry per node.
|
|
|
+ * Must be last as the number of the
|
|
|
+ * array is nr_node_ids, which is not
|
|
|
+ * a fixed value so have to allocate
|
|
|
+ * dynamically.
|
|
|
+ * And it has to be an array so that
|
|
|
+ * plist_for_each_* can work.
|
|
|
+ */
|
|
|
};
|
|
|
|
|
|
#ifdef CONFIG_64BIT
|