mm, swap: introduce SWP_SYNCHRONOUS_IO
[sfrench/cifs-2.6.git] / include / linux / swap.h
index 8a807292037f9ff956980260ba61c0c4c22dd07f..933d7c0c35421687179d21b6e810c750c9b89117 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _LINUX_SWAP_H
 #define _LINUX_SWAP_H
 
@@ -170,8 +171,9 @@ enum {
        SWP_AREA_DISCARD = (1 << 8),    /* single-time swap area discards */
        SWP_PAGE_DISCARD = (1 << 9),    /* freed swap page-cluster discards */
        SWP_STABLE_WRITES = (1 << 10),  /* no overwrite PG_writeback pages */
+       SWP_SYNCHRONOUS_IO = (1 << 11), /* synchronous IO is efficient */
                                        /* add others here before... */
-       SWP_SCANNING    = (1 << 11),    /* refcount in scan_swap_map */
+       SWP_SCANNING    = (1 << 12),    /* refcount in scan_swap_map */
 };
 
 #define SWAP_CLUSTER_MAX 32UL
@@ -265,6 +267,10 @@ struct swap_info_struct {
                                         * both locks need hold, hold swap_lock
                                         * first.
                                         */
+       spinlock_t cont_lock;           /*
+                                        * protect swap count continuation page
+                                        * list.
+                                        */
        struct work_struct discard_work; /* discard worker */
        struct swap_cluster_list discard_clusters; /* discard clusters list */
 };