Resolves: RHEL-87288 RHEL-72801 RHEL-88792 RHEL-88790 RHEL-63402 RHEL-72756 Signed-off-by: Xiao Ni <xni@redhat.com>
201 lines
6.5 KiB
Diff
201 lines
6.5 KiB
Diff
From eb9876f58658a107705a689852110903723e4d3b Mon Sep 17 00:00:00 2001
|
|
From: Mariusz Tkaczyk <mtkaczyk@kernel.org>
|
|
Date: Mon, 3 Feb 2025 11:36:01 +0100
|
|
Subject: [PATCH 20/39] bitmap.h - clear __KERNEL__ based headers
|
|
|
|
It is unused for years. Clear it.
|
|
|
|
Signed-off-by: Mariusz Tkaczyk <mtkaczyk@kernel.org>
|
|
---
|
|
bitmap.h | 169 -------------------------------------------------------
|
|
1 file changed, 169 deletions(-)
|
|
|
|
diff --git a/bitmap.h b/bitmap.h
|
|
index 7b1f80f2..2614a14e 100644
|
|
--- a/bitmap.h
|
|
+++ b/bitmap.h
|
|
@@ -78,63 +78,6 @@
|
|
*
|
|
*/
|
|
|
|
-#ifdef __KERNEL__
|
|
-
|
|
-#define PAGE_BITS (PAGE_SIZE << 3)
|
|
-#define PAGE_BIT_SHIFT (PAGE_SHIFT + 3)
|
|
-
|
|
-typedef __u16 bitmap_counter_t;
|
|
-#define COUNTER_BITS 16
|
|
-#define COUNTER_BIT_SHIFT 4
|
|
-#define COUNTER_BYTE_RATIO (COUNTER_BITS / 8)
|
|
-#define COUNTER_BYTE_SHIFT (COUNTER_BIT_SHIFT - 3)
|
|
-
|
|
-#define NEEDED_MASK ((bitmap_counter_t) (1 << (COUNTER_BITS - 1)))
|
|
-#define RESYNC_MASK ((bitmap_counter_t) (1 << (COUNTER_BITS - 2)))
|
|
-#define COUNTER_MAX ((bitmap_counter_t) RESYNC_MASK - 1)
|
|
-#define NEEDED(x) (((bitmap_counter_t) x) & NEEDED_MASK)
|
|
-#define RESYNC(x) (((bitmap_counter_t) x) & RESYNC_MASK)
|
|
-#define COUNTER(x) (((bitmap_counter_t) x) & COUNTER_MAX)
|
|
-
|
|
-/* how many counters per page? */
|
|
-#define PAGE_COUNTER_RATIO (PAGE_BITS / COUNTER_BITS)
|
|
-/* same, except a shift value for more efficient bitops */
|
|
-#define PAGE_COUNTER_SHIFT (PAGE_BIT_SHIFT - COUNTER_BIT_SHIFT)
|
|
-/* same, except a mask value for more efficient bitops */
|
|
-#define PAGE_COUNTER_MASK (PAGE_COUNTER_RATIO - 1)
|
|
-
|
|
-#define BITMAP_BLOCK_SIZE 512
|
|
-#define BITMAP_BLOCK_SHIFT 9
|
|
-
|
|
-/* how many blocks per chunk? (this is variable) */
|
|
-#define CHUNK_BLOCK_RATIO(bitmap) ((bitmap)->chunksize >> BITMAP_BLOCK_SHIFT)
|
|
-#define CHUNK_BLOCK_SHIFT(bitmap) ((bitmap)->chunkshift - BITMAP_BLOCK_SHIFT)
|
|
-#define CHUNK_BLOCK_MASK(bitmap) (CHUNK_BLOCK_RATIO(bitmap) - 1)
|
|
-
|
|
-/* when hijacked, the counters and bits represent even larger "chunks" */
|
|
-/* there will be 1024 chunks represented by each counter in the page pointers */
|
|
-#define PAGEPTR_BLOCK_RATIO(bitmap) \
|
|
- (CHUNK_BLOCK_RATIO(bitmap) << PAGE_COUNTER_SHIFT >> 1)
|
|
-#define PAGEPTR_BLOCK_SHIFT(bitmap) \
|
|
- (CHUNK_BLOCK_SHIFT(bitmap) + PAGE_COUNTER_SHIFT - 1)
|
|
-#define PAGEPTR_BLOCK_MASK(bitmap) (PAGEPTR_BLOCK_RATIO(bitmap) - 1)
|
|
-
|
|
-/*
|
|
- * on-disk bitmap:
|
|
- *
|
|
- * Use one bit per "chunk" (block set). We do the disk I/O on the bitmap
|
|
- * file a page at a time. There's a superblock at the start of the file.
|
|
- */
|
|
-
|
|
-/* map chunks (bits) to file pages - offset by the size of the superblock */
|
|
-#define CHUNK_BIT_OFFSET(chunk) ((chunk) + (sizeof(bitmap_super_t) << 3))
|
|
-
|
|
-#endif
|
|
-
|
|
-/*
|
|
- * bitmap structures:
|
|
- */
|
|
-
|
|
#define BITMAP_MAGIC 0x6d746962
|
|
|
|
/* use these for bitmap->flags and bitmap->sb->state bit-fields */
|
|
@@ -176,116 +119,4 @@ typedef struct bitmap_super_s {
|
|
* devices. For raid10 it is the size of the array.
|
|
*/
|
|
|
|
-#ifdef __KERNEL__
|
|
-
|
|
-/* the in-memory bitmap is represented by bitmap_pages */
|
|
-struct bitmap_page {
|
|
- /*
|
|
- * map points to the actual memory page
|
|
- */
|
|
- char *map;
|
|
- /*
|
|
- * in emergencies (when map cannot be allocated), hijack the map
|
|
- * pointer and use it as two counters itself
|
|
- */
|
|
- unsigned int hijacked;
|
|
- /*
|
|
- * count of dirty bits on the page
|
|
- */
|
|
- int count;
|
|
-};
|
|
-
|
|
-/* keep track of bitmap file pages that have pending writes on them */
|
|
-struct page_list {
|
|
- struct list_head list;
|
|
- struct page *page;
|
|
-};
|
|
-
|
|
-/* the main bitmap structure - one per mddev */
|
|
-struct bitmap {
|
|
- struct bitmap_page *bp;
|
|
- unsigned long pages; /* total number of pages in the bitmap */
|
|
- unsigned long missing_pages; /* number of pages not yet allocated */
|
|
-
|
|
- mddev_t *mddev; /* the md device that the bitmap is for */
|
|
-
|
|
- int counter_bits; /* how many bits per block counter */
|
|
-
|
|
- /* bitmap chunksize -- how much data does each bit represent? */
|
|
- unsigned long chunksize;
|
|
- unsigned long chunkshift; /* chunksize = 2^chunkshift (for bitops) */
|
|
- unsigned long chunks; /* total number of data chunks for the array */
|
|
-
|
|
- /* We hold a count on the chunk currently being synced, and drop
|
|
- * it when the last block is started. If the resync is aborted
|
|
- * midway, we need to be able to drop that count, so we remember
|
|
- * the counted chunk..
|
|
- */
|
|
- unsigned long syncchunk;
|
|
-
|
|
- __u64 events_cleared;
|
|
-
|
|
- /* bitmap spinlock */
|
|
- spinlock_t lock;
|
|
-
|
|
- struct file *file; /* backing disk file */
|
|
- struct page *sb_page; /* cached copy of the bitmap file superblock */
|
|
- struct page **filemap; /* list of cache pages for the file */
|
|
- unsigned long *filemap_attr; /* attributes associated w/ filemap pages */
|
|
- unsigned long file_pages; /* number of pages in the file */
|
|
-
|
|
- unsigned long flags;
|
|
-
|
|
- /*
|
|
- * the bitmap daemon - periodically wakes up and sweeps the bitmap
|
|
- * file, cleaning up bits and flushing out pages to disk as necessary
|
|
- */
|
|
- mdk_thread_t *daemon;
|
|
- unsigned long daemon_sleep; /* how many seconds between updates? */
|
|
-
|
|
- /*
|
|
- * bitmap write daemon - this daemon performs writes to the bitmap file
|
|
- * this thread is only needed because of a limitation in ext3 (jbd)
|
|
- * that does not allow a task to have two journal transactions ongoing
|
|
- * simultaneously (even if the transactions are for two different
|
|
- * filesystems) -- in the case of bitmap, that would be the filesystem
|
|
- * that the bitmap file resides on and the filesystem that is mounted
|
|
- * on the md device -- see current->journal_info in jbd/transaction.c
|
|
- */
|
|
- mdk_thread_t *write_daemon;
|
|
- mdk_thread_t *writeback_daemon;
|
|
- spinlock_t write_lock;
|
|
- struct semaphore write_ready;
|
|
- struct semaphore write_done;
|
|
- unsigned long writes_pending;
|
|
- wait_queue_head_t write_wait;
|
|
- struct list_head write_pages;
|
|
- struct list_head complete_pages;
|
|
- mempool_t *write_pool;
|
|
-};
|
|
-
|
|
-/* the bitmap API */
|
|
-
|
|
-/* these are used only by md/bitmap */
|
|
-int bitmap_create(mddev_t *mddev);
|
|
-void bitmap_destroy(mddev_t *mddev);
|
|
-int bitmap_active(struct bitmap *bitmap);
|
|
-
|
|
-char *file_path(struct file *file, char *buf, int count);
|
|
-void bitmap_print_sb(struct bitmap *bitmap);
|
|
-int bitmap_update_sb(struct bitmap *bitmap);
|
|
-
|
|
-int bitmap_setallbits(struct bitmap *bitmap);
|
|
-
|
|
-/* these are exported */
|
|
-void bitmap_startwrite(struct bitmap *bitmap, sector_t offset, unsigned long sectors);
|
|
-void bitmap_endwrite(struct bitmap *bitmap, sector_t offset, unsigned long sectors,
|
|
- int success);
|
|
-int bitmap_start_sync(struct bitmap *bitmap, sector_t offset, int *blocks);
|
|
-void bitmap_end_sync(struct bitmap *bitmap, sector_t offset, int *blocks, int aborted);
|
|
-void bitmap_close_sync(struct bitmap *bitmap);
|
|
-
|
|
-int bitmap_unplug(struct bitmap *bitmap);
|
|
-#endif
|
|
-
|
|
#endif
|
|
--
|
|
2.41.0
|
|
|