dm-pcache: allow built-in build and rename flush helper

CONFIG_BCACHE is tristate, so dm-pcache can also be built-in.
Switch the Makefile to use obj-$(CONFIG_DM_PCACHE) so the target can be
linked into vmlinux instead of always being a loadable module.

Also rename cache_flush() to pcache_cache_flush() to avoid a global
symbol clash with sunrpc/cache.c's cache_flush().

Signed-off-by: Li Chen <chenl311@chinatelecom.cn>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
This commit is contained in:
Li Chen
2025-11-11 20:13:34 +08:00
committed by Mikulas Patocka
parent 6a23ae0a96
commit 341d14bd69
4 changed files with 6 additions and 6 deletions

View File

@@ -1,3 +1,3 @@
dm-pcache-y := dm_pcache.o cache_dev.o segment.o backing_dev.o cache.o cache_gc.o cache_writeback.o cache_segment.o cache_key.o cache_req.o dm-pcache-y := dm_pcache.o cache_dev.o segment.o backing_dev.o cache.o cache_gc.o cache_writeback.o cache_segment.o cache_key.o cache_req.o
obj-m += dm-pcache.o obj-$(CONFIG_DM_PCACHE) += dm-pcache.o

View File

@@ -411,7 +411,7 @@ void pcache_cache_stop(struct dm_pcache *pcache)
{ {
struct pcache_cache *cache = &pcache->cache; struct pcache_cache *cache = &pcache->cache;
cache_flush(cache); pcache_cache_flush(cache);
cancel_delayed_work_sync(&cache->gc_work); cancel_delayed_work_sync(&cache->gc_work);
flush_work(&cache->clean_work); flush_work(&cache->clean_work);

View File

@@ -339,7 +339,7 @@ void cache_seg_put(struct pcache_cache_segment *cache_seg);
void cache_seg_set_next_seg(struct pcache_cache_segment *cache_seg, u32 seg_id); void cache_seg_set_next_seg(struct pcache_cache_segment *cache_seg, u32 seg_id);
/* cache request*/ /* cache request*/
int cache_flush(struct pcache_cache *cache); int pcache_cache_flush(struct pcache_cache *cache);
void miss_read_end_work_fn(struct work_struct *work); void miss_read_end_work_fn(struct work_struct *work);
int pcache_cache_handle_req(struct pcache_cache *cache, struct pcache_request *pcache_req); int pcache_cache_handle_req(struct pcache_cache *cache, struct pcache_request *pcache_req);

View File

@@ -790,7 +790,7 @@ err:
} }
/** /**
* cache_flush - Flush all ksets to persist any pending cache data * pcache_cache_flush - Flush all ksets to persist any pending cache data
* @cache: Pointer to the cache structure * @cache: Pointer to the cache structure
* *
* This function iterates through all ksets associated with the provided `cache` * This function iterates through all ksets associated with the provided `cache`
@@ -802,7 +802,7 @@ err:
* the respective error code, preventing the flush operation from proceeding to * the respective error code, preventing the flush operation from proceeding to
* subsequent ksets. * subsequent ksets.
*/ */
int cache_flush(struct pcache_cache *cache) int pcache_cache_flush(struct pcache_cache *cache)
{ {
struct pcache_cache_kset *kset; struct pcache_cache_kset *kset;
int ret; int ret;
@@ -827,7 +827,7 @@ int pcache_cache_handle_req(struct pcache_cache *cache, struct pcache_request *p
struct bio *bio = pcache_req->bio; struct bio *bio = pcache_req->bio;
if (unlikely(bio->bi_opf & REQ_PREFLUSH)) if (unlikely(bio->bi_opf & REQ_PREFLUSH))
return cache_flush(cache); return pcache_cache_flush(cache);
if (bio_data_dir(bio) == READ) if (bio_data_dir(bio) == READ)
return cache_read(cache, pcache_req); return cache_read(cache, pcache_req);