hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
kernel/drivers/block/xen-blkback/common.h
....@@ -36,7 +36,6 @@
3636 #include <linux/io.h>
3737 #include <linux/rbtree.h>
3838 #include <asm/setup.h>
39
-#include <asm/pgalloc.h>
4039 #include <asm/hypervisor.h>
4140 #include <xen/grant_table.h>
4241 #include <xen/page.h>
....@@ -227,6 +226,9 @@
227226 sector_t size;
228227 unsigned int flush_support:1;
229228 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 */
230232 unsigned int feature_gnt_persistent:1;
231233 unsigned int overflow_max_grants:1;
232234 };
....@@ -289,9 +291,7 @@
289291 struct work_struct persistent_purge_work;
290292
291293 /* 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;
295295
296296 struct work_struct free_work;
297297 /* Thread shutdown wait queue. */
....@@ -316,9 +316,11 @@
316316
317317 struct work_struct free_work;
318318 unsigned int nr_ring_pages;
319
+ bool multi_ref;
319320 /* All rings for this device. */
320321 struct xen_blkif_ring *rings;
321322 unsigned int nr_rings;
323
+ unsigned long buffer_squeeze_end;
322324 };
323325
324326 struct seg_buf {
....@@ -375,9 +377,12 @@
375377 struct block_device *bdev;
376378 blkif_sector_t sector_number;
377379 };
380
+
378381 int xen_blkif_interface_init(void);
382
+void xen_blkif_interface_fini(void);
379383
380384 int xen_blkif_xenbus_init(void);
385
+void xen_blkif_xenbus_fini(void);
381386
382387 irqreturn_t xen_blkif_be_int(int irq, void *dev_id);
383388 int xen_blkif_schedule(void *arg);