.. | .. |
---|
36 | 36 | #include <linux/io.h> |
---|
37 | 37 | #include <linux/rbtree.h> |
---|
38 | 38 | #include <asm/setup.h> |
---|
39 | | -#include <asm/pgalloc.h> |
---|
40 | 39 | #include <asm/hypervisor.h> |
---|
41 | 40 | #include <xen/grant_table.h> |
---|
42 | 41 | #include <xen/page.h> |
---|
.. | .. |
---|
227 | 226 | sector_t size; |
---|
228 | 227 | unsigned int flush_support:1; |
---|
229 | 228 | unsigned int discard_secure:1; |
---|
| 229 | + /* Connect-time cached feature_persistent parameter value */ |
---|
| 230 | + unsigned int feature_gnt_persistent_parm:1; |
---|
| 231 | + /* Persistent grants feature negotiation result */ |
---|
230 | 232 | unsigned int feature_gnt_persistent:1; |
---|
231 | 233 | unsigned int overflow_max_grants:1; |
---|
232 | 234 | }; |
---|
.. | .. |
---|
289 | 291 | struct work_struct persistent_purge_work; |
---|
290 | 292 | |
---|
291 | 293 | /* Buffer of free pages to map grant refs. */ |
---|
292 | | - spinlock_t free_pages_lock; |
---|
293 | | - int free_pages_num; |
---|
294 | | - struct list_head free_pages; |
---|
| 294 | + struct gnttab_page_cache free_pages; |
---|
295 | 295 | |
---|
296 | 296 | struct work_struct free_work; |
---|
297 | 297 | /* Thread shutdown wait queue. */ |
---|
.. | .. |
---|
316 | 316 | |
---|
317 | 317 | struct work_struct free_work; |
---|
318 | 318 | unsigned int nr_ring_pages; |
---|
| 319 | + bool multi_ref; |
---|
319 | 320 | /* All rings for this device. */ |
---|
320 | 321 | struct xen_blkif_ring *rings; |
---|
321 | 322 | unsigned int nr_rings; |
---|
| 323 | + unsigned long buffer_squeeze_end; |
---|
322 | 324 | }; |
---|
323 | 325 | |
---|
324 | 326 | struct seg_buf { |
---|
.. | .. |
---|
375 | 377 | struct block_device *bdev; |
---|
376 | 378 | blkif_sector_t sector_number; |
---|
377 | 379 | }; |
---|
| 380 | + |
---|
378 | 381 | int xen_blkif_interface_init(void); |
---|
| 382 | +void xen_blkif_interface_fini(void); |
---|
379 | 383 | |
---|
380 | 384 | int xen_blkif_xenbus_init(void); |
---|
| 385 | +void xen_blkif_xenbus_fini(void); |
---|
381 | 386 | |
---|
382 | 387 | irqreturn_t xen_blkif_be_int(int irq, void *dev_id); |
---|
383 | 388 | int xen_blkif_schedule(void *arg); |
---|