ANDROID: dm: android-verity: Allow android-verity to be compiled as an independent module

Exports the device mapper callbacks of linear and dm-verity-target
methods.

Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: I0358be0615c431dce3cc78575aaac4ccfe3aacd7
This commit is contained in:
Badhri Jagan Sridharan 2016-08-23 11:32:37 -07:00 committed by Dmitry Shmidt
parent 1c6df5fdcb
commit 8a58605e46
4 changed files with 16 additions and 5 deletions

View file

@ -501,7 +501,7 @@ config DM_LOG_WRITES
If unsure, say N. If unsure, say N.
config DM_ANDROID_VERITY config DM_ANDROID_VERITY
bool "Android verity target support" tristate "Android verity target support"
depends on DM_VERITY depends on DM_VERITY
depends on X509_CERTIFICATE_PARSER depends on X509_CERTIFICATE_PARSER
depends on SYSTEM_TRUSTED_KEYRING depends on SYSTEM_TRUSTED_KEYRING
@ -509,6 +509,7 @@ config DM_ANDROID_VERITY
depends on KEYS depends on KEYS
depends on ASYMMETRIC_KEY_TYPE depends on ASYMMETRIC_KEY_TYPE
depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE
depends on MD_LINEAR
---help--- ---help---
This device-mapper target is virtually a VERITY target. This This device-mapper target is virtually a VERITY target. This
target is setup by reading the metadata contents piggybacked target is setup by reading the metadata contents piggybacked

View file

@ -60,6 +60,7 @@ obj-$(CONFIG_DM_CACHE_SMQ) += dm-cache-smq.o
obj-$(CONFIG_DM_CACHE_CLEANER) += dm-cache-cleaner.o obj-$(CONFIG_DM_CACHE_CLEANER) += dm-cache-cleaner.o
obj-$(CONFIG_DM_ERA) += dm-era.o obj-$(CONFIG_DM_ERA) += dm-era.o
obj-$(CONFIG_DM_LOG_WRITES) += dm-log-writes.o obj-$(CONFIG_DM_LOG_WRITES) += dm-log-writes.o
obj-$(CONFIG_DM_ANDROID_VERITY) += dm-android-verity.o
ifeq ($(CONFIG_DM_UEVENT),y) ifeq ($(CONFIG_DM_UEVENT),y)
dm-mod-objs += dm-uevent.o dm-mod-objs += dm-uevent.o
@ -68,7 +69,3 @@ endif
ifeq ($(CONFIG_DM_VERITY_FEC),y) ifeq ($(CONFIG_DM_VERITY_FEC),y)
dm-verity-objs += dm-verity-fec.o dm-verity-objs += dm-verity-fec.o
endif endif
ifeq ($(CONFIG_DM_ANDROID_VERITY),y)
dm-verity-objs += dm-android-verity.o
endif

View file

@ -66,6 +66,7 @@ int dm_linear_ctr(struct dm_target *ti, unsigned int argc, char **argv)
kfree(lc); kfree(lc);
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(dm_linear_ctr);
void dm_linear_dtr(struct dm_target *ti) void dm_linear_dtr(struct dm_target *ti)
{ {
@ -74,6 +75,7 @@ void dm_linear_dtr(struct dm_target *ti)
dm_put_device(ti, lc->dev); dm_put_device(ti, lc->dev);
kfree(lc); kfree(lc);
} }
EXPORT_SYMBOL_GPL(dm_linear_dtr);
static sector_t linear_map_sector(struct dm_target *ti, sector_t bi_sector) static sector_t linear_map_sector(struct dm_target *ti, sector_t bi_sector)
{ {
@ -98,6 +100,7 @@ int dm_linear_map(struct dm_target *ti, struct bio *bio)
return DM_MAPIO_REMAPPED; return DM_MAPIO_REMAPPED;
} }
EXPORT_SYMBOL_GPL(dm_linear_map);
void dm_linear_status(struct dm_target *ti, status_type_t type, void dm_linear_status(struct dm_target *ti, status_type_t type,
unsigned status_flags, char *result, unsigned maxlen) unsigned status_flags, char *result, unsigned maxlen)
@ -115,6 +118,7 @@ void dm_linear_status(struct dm_target *ti, status_type_t type,
break; break;
} }
} }
EXPORT_SYMBOL_GPL(dm_linear_status);
int dm_linear_prepare_ioctl(struct dm_target *ti, int dm_linear_prepare_ioctl(struct dm_target *ti,
struct block_device **bdev, fmode_t *mode) struct block_device **bdev, fmode_t *mode)
@ -132,6 +136,7 @@ int dm_linear_prepare_ioctl(struct dm_target *ti,
return 1; return 1;
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(dm_linear_prepare_ioctl);
int dm_linear_iterate_devices(struct dm_target *ti, int dm_linear_iterate_devices(struct dm_target *ti,
iterate_devices_callout_fn fn, void *data) iterate_devices_callout_fn fn, void *data)
@ -140,6 +145,7 @@ int dm_linear_iterate_devices(struct dm_target *ti,
return fn(ti, lc->dev, lc->start, ti->len, data); return fn(ti, lc->dev, lc->start, ti->len, data);
} }
EXPORT_SYMBOL_GPL(dm_linear_iterate_devices);
static struct target_type linear_target = { static struct target_type linear_target = {
.name = "linear", .name = "linear",

View file

@ -592,6 +592,7 @@ int verity_map(struct dm_target *ti, struct bio *bio)
return DM_MAPIO_SUBMITTED; return DM_MAPIO_SUBMITTED;
} }
EXPORT_SYMBOL_GPL(verity_map);
/* /*
* Status: V (valid) or C (corruption found) * Status: V (valid) or C (corruption found)
@ -655,6 +656,7 @@ void verity_status(struct dm_target *ti, status_type_t type,
break; break;
} }
} }
EXPORT_SYMBOL_GPL(verity_status);
int verity_prepare_ioctl(struct dm_target *ti, int verity_prepare_ioctl(struct dm_target *ti,
struct block_device **bdev, fmode_t *mode) struct block_device **bdev, fmode_t *mode)
@ -668,6 +670,7 @@ int verity_prepare_ioctl(struct dm_target *ti,
return 1; return 1;
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(verity_prepare_ioctl);
int verity_iterate_devices(struct dm_target *ti, int verity_iterate_devices(struct dm_target *ti,
iterate_devices_callout_fn fn, void *data) iterate_devices_callout_fn fn, void *data)
@ -676,6 +679,7 @@ int verity_iterate_devices(struct dm_target *ti,
return fn(ti, v->data_dev, v->data_start, ti->len, data); return fn(ti, v->data_dev, v->data_start, ti->len, data);
} }
EXPORT_SYMBOL_GPL(verity_iterate_devices);
void verity_io_hints(struct dm_target *ti, struct queue_limits *limits) void verity_io_hints(struct dm_target *ti, struct queue_limits *limits)
{ {
@ -689,6 +693,7 @@ void verity_io_hints(struct dm_target *ti, struct queue_limits *limits)
blk_limits_io_min(limits, limits->logical_block_size); blk_limits_io_min(limits, limits->logical_block_size);
} }
EXPORT_SYMBOL_GPL(verity_io_hints);
void verity_dtr(struct dm_target *ti) void verity_dtr(struct dm_target *ti)
{ {
@ -719,6 +724,7 @@ void verity_dtr(struct dm_target *ti)
kfree(v); kfree(v);
} }
EXPORT_SYMBOL_GPL(verity_dtr);
static int verity_alloc_zero_digest(struct dm_verity *v) static int verity_alloc_zero_digest(struct dm_verity *v)
{ {
@ -1053,6 +1059,7 @@ bad:
return r; return r;
} }
EXPORT_SYMBOL_GPL(verity_ctr);
static struct target_type verity_target = { static struct target_type verity_target = {
.name = "verity", .name = "verity",