mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
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:
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user