diff options
Diffstat (limited to 'fs/xfs/xfs_buf.h')
-rw-r--r-- | fs/xfs/xfs_buf.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/fs/xfs/xfs_buf.h b/fs/xfs/xfs_buf.h index 433a12ed7b17..e65683361017 100644 --- a/fs/xfs/xfs_buf.h +++ b/fs/xfs/xfs_buf.h | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/fs.h> | 25 | #include <linux/fs.h> |
26 | #include <linux/buffer_head.h> | 26 | #include <linux/buffer_head.h> |
27 | #include <linux/uio.h> | 27 | #include <linux/uio.h> |
28 | #include <linux/list_lru.h> | ||
28 | 29 | ||
29 | /* | 30 | /* |
30 | * Base types | 31 | * Base types |
@@ -59,7 +60,6 @@ typedef enum { | |||
59 | #define _XBF_KMEM (1 << 21)/* backed by heap memory */ | 60 | #define _XBF_KMEM (1 << 21)/* backed by heap memory */ |
60 | #define _XBF_DELWRI_Q (1 << 22)/* buffer on a delwri queue */ | 61 | #define _XBF_DELWRI_Q (1 << 22)/* buffer on a delwri queue */ |
61 | #define _XBF_COMPOUND (1 << 23)/* compound buffer */ | 62 | #define _XBF_COMPOUND (1 << 23)/* compound buffer */ |
62 | #define _XBF_LRU_DISPOSE (1 << 24)/* buffer being discarded */ | ||
63 | 63 | ||
64 | typedef unsigned int xfs_buf_flags_t; | 64 | typedef unsigned int xfs_buf_flags_t; |
65 | 65 | ||
@@ -78,8 +78,12 @@ typedef unsigned int xfs_buf_flags_t; | |||
78 | { _XBF_PAGES, "PAGES" }, \ | 78 | { _XBF_PAGES, "PAGES" }, \ |
79 | { _XBF_KMEM, "KMEM" }, \ | 79 | { _XBF_KMEM, "KMEM" }, \ |
80 | { _XBF_DELWRI_Q, "DELWRI_Q" }, \ | 80 | { _XBF_DELWRI_Q, "DELWRI_Q" }, \ |
81 | { _XBF_COMPOUND, "COMPOUND" }, \ | 81 | { _XBF_COMPOUND, "COMPOUND" } |
82 | { _XBF_LRU_DISPOSE, "LRU_DISPOSE" } | 82 | |
83 | /* | ||
84 | * Internal state flags. | ||
85 | */ | ||
86 | #define XFS_BSTATE_DISPOSE (1 << 0) /* buffer being discarded */ | ||
83 | 87 | ||
84 | typedef struct xfs_buftarg { | 88 | typedef struct xfs_buftarg { |
85 | dev_t bt_dev; | 89 | dev_t bt_dev; |
@@ -92,9 +96,7 @@ typedef struct xfs_buftarg { | |||
92 | 96 | ||
93 | /* LRU control structures */ | 97 | /* LRU control structures */ |
94 | struct shrinker bt_shrinker; | 98 | struct shrinker bt_shrinker; |
95 | struct list_head bt_lru; | 99 | struct list_lru bt_lru; |
96 | spinlock_t bt_lru_lock; | ||
97 | unsigned int bt_lru_nr; | ||
98 | } xfs_buftarg_t; | 100 | } xfs_buftarg_t; |
99 | 101 | ||
100 | struct xfs_buf; | 102 | struct xfs_buf; |
@@ -137,7 +139,8 @@ typedef struct xfs_buf { | |||
137 | * bt_lru_lock and not by b_sema | 139 | * bt_lru_lock and not by b_sema |
138 | */ | 140 | */ |
139 | struct list_head b_lru; /* lru list */ | 141 | struct list_head b_lru; /* lru list */ |
140 | xfs_buf_flags_t b_lru_flags; /* internal lru status flags */ | 142 | spinlock_t b_lock; /* internal state lock */ |
143 | unsigned int b_state; /* internal state flags */ | ||
141 | wait_queue_head_t b_waiters; /* unpin waiters */ | 144 | wait_queue_head_t b_waiters; /* unpin waiters */ |
142 | struct list_head b_list; | 145 | struct list_head b_list; |
143 | struct xfs_perag *b_pag; /* contains rbtree root */ | 146 | struct xfs_perag *b_pag; /* contains rbtree root */ |