Skip to content
Navigation Menu
Toggle navigation
Sign in
In this repository
All GitHub Enterprise
↵
Jump to
↵
No suggested jump to results
In this repository
All GitHub Enterprise
↵
Jump to
↵
In this organization
All GitHub Enterprise
↵
Jump to
↵
In this repository
All GitHub Enterprise
↵
Jump to
↵
Sign in
Reseting focus
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
mariux64
/
linux
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
2
Pull requests
0
Actions
Projects
0
Wiki
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security
Insights
Files
532906a
Documentation
arch
block
crypto
drivers
accessibility
acpi
amba
ata
atm
auxdisplay
base
bcma
block
bluetooth
bus
cdrom
char
clk
clocksource
connector
cpufreq
cpuidle
crypto
dca
devfreq
dio
dma
edac
eisa
extcon
firewire
firmware
fmc
gpio
gpu
hid
hsi
hv
hwmon
hwspinlock
i2c
ide
idle
iio
infiniband
input
iommu
ipack
irqchip
isdn
leds
lguest
macintosh
mailbox
md
bcache
persistent-data
Kconfig
Makefile
bitmap.c
bitmap.h
dm-bio-prison.c
dm-bio-prison.h
dm-bio-record.h
dm-bufio.c
dm-bufio.h
dm-cache-block-types.h
dm-cache-metadata.c
dm-cache-metadata.h
dm-cache-policy-cleaner.c
dm-cache-policy-internal.h
dm-cache-policy-mq.c
dm-cache-policy.c
dm-cache-policy.h
dm-cache-target.c
dm-crypt.c
dm-delay.c
dm-exception-store.c
dm-exception-store.h
dm-flakey.c
dm-io.c
dm-ioctl.c
dm-kcopyd.c
dm-linear.c
dm-log-userspace-base.c
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log.c
dm-mpath.c
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-queue-length.c
dm-raid.c
dm-raid1.c
dm-region-hash.c
dm-round-robin.c
dm-service-time.c
dm-snap-persistent.c
dm-snap-transient.c
dm-snap.c
dm-stats.c
dm-stats.h
dm-stripe.c
dm-switch.c
dm-sysfs.c
dm-table.c
dm-target.c
dm-thin-metadata.c
dm-thin-metadata.h
dm-thin.c
dm-uevent.c
dm-uevent.h
dm-verity.c
dm-zero.c
dm.c
dm.h
faulty.c
linear.c
linear.h
md.c
md.h
multipath.c
multipath.h
raid0.c
raid0.h
raid1.c
raid1.h
raid10.c
raid10.h
raid5.c
raid5.h
media
memory
memstick
message
mfd
misc
mmc
mtd
net
nfc
ntb
nubus
of
oprofile
parisc
parport
pci
pcmcia
pinctrl
platform
pnp
power
pps
ps3
ptp
pwm
rapidio
regulator
remoteproc
reset
rpmsg
rtc
s390
sbus
scsi
sfi
sh
sn
spi
ssb
staging
target
tc
thermal
tty
uio
usb
uwb
vfio
vhost
video
virt
virtio
vlynq
vme
w1
watchdog
xen
zorro
Kconfig
Makefile
firmware
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
tools
usr
virt
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README
REPORTING-BUGS
Breadcrumbs
linux
/
drivers
/
md
/
dm-cache-policy-internal.h
Blame
Blame
Latest commit
History
History
131 lines (105 loc) · 3.58 KB
Breadcrumbs
linux
/
drivers
/
md
/
dm-cache-policy-internal.h
Top
File metadata and controls
Code
Blame
131 lines (105 loc) · 3.58 KB
Raw
/* * Copyright (C) 2012 Red Hat. All rights reserved. * * This file is released under the GPL. */ #ifndef DM_CACHE_POLICY_INTERNAL_H #define DM_CACHE_POLICY_INTERNAL_H #include "dm-cache-policy.h" /*----------------------------------------------------------------*/ /* * Little inline functions that simplify calling the policy methods. */ static inline int policy_map(struct dm_cache_policy *p, dm_oblock_t oblock, bool can_block, bool can_migrate, bool discarded_oblock, struct bio *bio, struct policy_result *result) { return p->map(p, oblock, can_block, can_migrate, discarded_oblock, bio, result); } static inline int policy_lookup(struct dm_cache_policy *p, dm_oblock_t oblock, dm_cblock_t *cblock) { BUG_ON(!p->lookup); return p->lookup(p, oblock, cblock); } static inline void policy_set_dirty(struct dm_cache_policy *p, dm_oblock_t oblock) { if (p->set_dirty) p->set_dirty(p, oblock); } static inline void policy_clear_dirty(struct dm_cache_policy *p, dm_oblock_t oblock) { if (p->clear_dirty) p->clear_dirty(p, oblock); } static inline int policy_load_mapping(struct dm_cache_policy *p, dm_oblock_t oblock, dm_cblock_t cblock, uint32_t hint, bool hint_valid) { return p->load_mapping(p, oblock, cblock, hint, hint_valid); } static inline int policy_walk_mappings(struct dm_cache_policy *p, policy_walk_fn fn, void *context) { return p->walk_mappings ? p->walk_mappings(p, fn, context) : 0; } static inline int policy_writeback_work(struct dm_cache_policy *p, dm_oblock_t *oblock, dm_cblock_t *cblock) { return p->writeback_work ? p->writeback_work(p, oblock, cblock) : -ENOENT; } static inline void policy_remove_mapping(struct dm_cache_policy *p, dm_oblock_t oblock) { p->remove_mapping(p, oblock); } static inline int policy_remove_cblock(struct dm_cache_policy *p, dm_cblock_t cblock) { return p->remove_cblock(p, cblock); } static inline void policy_force_mapping(struct dm_cache_policy *p, dm_oblock_t current_oblock, dm_oblock_t new_oblock) { return p->force_mapping(p, current_oblock, new_oblock); } static inline dm_cblock_t policy_residency(struct dm_cache_policy *p) { return p->residency(p); } static inline void policy_tick(struct dm_cache_policy *p) { if (p->tick) return p->tick(p); } static inline int policy_emit_config_values(struct dm_cache_policy *p, char *result, unsigned maxlen) { ssize_t sz = 0; if (p->emit_config_values) return p->emit_config_values(p, result, maxlen); DMEMIT("0"); return 0; } static inline int policy_set_config_value(struct dm_cache_policy *p, const char *key, const char *value) { return p->set_config_value ? p->set_config_value(p, key, value) : -EINVAL; } /*----------------------------------------------------------------*/ /* * Creates a new cache policy given a policy name, a cache size, an origin size and the block size. */ struct dm_cache_policy *dm_cache_policy_create(const char *name, dm_cblock_t cache_size, sector_t origin_size, sector_t block_size); /* * Destroys the policy. This drops references to the policy module as well * as calling it's destroy method. So always use this rather than calling * the policy->destroy method directly. */ void dm_cache_policy_destroy(struct dm_cache_policy *p); /* * In case we've forgotten. */ const char *dm_cache_policy_get_name(struct dm_cache_policy *p); const unsigned *dm_cache_policy_get_version(struct dm_cache_policy *p); size_t dm_cache_policy_get_hint_size(struct dm_cache_policy *p); /*----------------------------------------------------------------*/ #endif /* DM_CACHE_POLICY_INTERNAL_H */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
You can’t perform that action at this time.