Commit 3c9883e7 authored by Yu Kuai's avatar Yu Kuai Committed by Song Liu
Browse files

md/md-bitmap: merge bitmap_unplug() into bitmap_operations



So that the implementation won't be exposed, and it'll be possible
to invent a new bitmap by replacing bitmap_operations.

Signed-off-by: default avatarYu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/20240826074452.1490072-33-yukuai1@huaweicloud.com


Signed-off-by: default avatarSong Liu <song@kernel.org>
parent 48eb9581
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1087,7 +1087,7 @@ static void bitmap_unplug_async(struct bitmap *bitmap)
	wait_for_completion(&done);
}

void md_bitmap_unplug(struct mddev *mddev, bool sync)
static void bitmap_unplug(struct mddev *mddev, bool sync)
{
	struct bitmap *bitmap = mddev->bitmap;

@@ -1099,7 +1099,6 @@ void md_bitmap_unplug(struct mddev *mddev, bool sync)
	else
		bitmap_unplug_async(bitmap);
}
EXPORT_SYMBOL_GPL(md_bitmap_unplug);

static void md_bitmap_set_memory_bits(struct bitmap *bitmap, sector_t offset, int needed);

@@ -2754,6 +2753,7 @@ static struct bitmap_operations bitmap_ops = {
	.flush			= bitmap_flush,
	.write_all		= bitmap_write_all,
	.dirty_bits		= bitmap_dirty_bits,
	.unplug			= bitmap_unplug,

	.startwrite		= bitmap_startwrite,
	.endwrite		= bitmap_endwrite,
+1 −1
Original line number Diff line number Diff line
@@ -254,6 +254,7 @@ struct bitmap_operations {
	void (*write_all)(struct mddev *mddev);
	void (*dirty_bits)(struct mddev *mddev, unsigned long s,
			   unsigned long e);
	void (*unplug)(struct mddev *mddev, bool sync);

	int (*startwrite)(struct mddev *mddev, sector_t offset,
			  unsigned long sectors, bool behind);
@@ -277,7 +278,6 @@ struct bitmap_operations {
void mddev_set_bitmap_ops(struct mddev *mddev);

/* these are exported */
void md_bitmap_unplug(struct mddev *mddev, bool sync);
void md_bitmap_daemon_work(struct mddev *mddev);

int md_bitmap_resize(struct bitmap *bitmap, sector_t blocks,
+1 −1
Original line number Diff line number Diff line
@@ -4715,7 +4715,7 @@ bitmap_store(struct mddev *mddev, const char *buf, size_t len)
		mddev->bitmap_ops->dirty_bits(mddev, chunk, end_chunk);
		buf = skip_spaces(end);
	}
	md_bitmap_unplug(mddev, true); /* flush the bits to disk */
	mddev->bitmap_ops->unplug(mddev, true); /* flush the bits to disk */
out:
	mddev_unlock(mddev);
	return len;
+1 −1
Original line number Diff line number Diff line
@@ -168,7 +168,7 @@ static inline bool raid1_add_bio_to_plug(struct mddev *mddev, struct bio *bio,
 */
static inline void raid1_prepare_flush_writes(struct mddev *mddev)
{
	md_bitmap_unplug(mddev, current->bio_list == NULL);
	mddev->bitmap_ops->unplug(mddev, current->bio_list == NULL);
}

/*
+1 −1
Original line number Diff line number Diff line
@@ -6768,7 +6768,7 @@ static void raid5d(struct md_thread *thread)
			/* Now is a good time to flush some bitmap updates */
			conf->seq_flush++;
			spin_unlock_irq(&conf->device_lock);
			md_bitmap_unplug(mddev, true);
			mddev->bitmap_ops->unplug(mddev, true);
			spin_lock_irq(&conf->device_lock);
			conf->seq_write = conf->seq_flush;
			activate_bit_delay(conf, conf->temp_inactive_list);