mirror of https://github.com/OpenIPC/firmware.git
108 lines
3.2 KiB
Diff
108 lines
3.2 KiB
Diff
diff -drupN a/drivers/md/dm-linear.c b/drivers/md/dm-linear.c
|
|
--- a/drivers/md/dm-linear.c 2018-08-06 17:23:04.000000000 +0300
|
|
+++ b/drivers/md/dm-linear.c 2022-06-12 05:28:14.000000000 +0300
|
|
@@ -25,7 +25,7 @@ struct linear_c {
|
|
/*
|
|
* Construct a linear mapping: <dev_path> <offset>
|
|
*/
|
|
-static int linear_ctr(struct dm_target *ti, unsigned int argc, char **argv)
|
|
+int dm_linear_ctr(struct dm_target *ti, unsigned int argc, char **argv)
|
|
{
|
|
struct linear_c *lc;
|
|
unsigned long long tmp;
|
|
@@ -66,14 +66,16 @@ static int linear_ctr(struct dm_target *
|
|
kfree(lc);
|
|
return ret;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(dm_linear_ctr);
|
|
|
|
-static void linear_dtr(struct dm_target *ti)
|
|
+void dm_linear_dtr(struct dm_target *ti)
|
|
{
|
|
struct linear_c *lc = (struct linear_c *) ti->private;
|
|
|
|
dm_put_device(ti, lc->dev);
|
|
kfree(lc);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(dm_linear_dtr);
|
|
|
|
static sector_t linear_map_sector(struct dm_target *ti, sector_t bi_sector)
|
|
{
|
|
@@ -92,14 +94,15 @@ static void linear_map_bio(struct dm_tar
|
|
linear_map_sector(ti, bio->bi_iter.bi_sector);
|
|
}
|
|
|
|
-static int linear_map(struct dm_target *ti, struct bio *bio)
|
|
+int dm_linear_map(struct dm_target *ti, struct bio *bio)
|
|
{
|
|
linear_map_bio(ti, bio);
|
|
|
|
return DM_MAPIO_REMAPPED;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(dm_linear_map);
|
|
|
|
-static void 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)
|
|
{
|
|
struct linear_c *lc = (struct linear_c *) ti->private;
|
|
@@ -115,8 +118,9 @@ static void linear_status(struct dm_targ
|
|
break;
|
|
}
|
|
}
|
|
+EXPORT_SYMBOL_GPL(dm_linear_status);
|
|
|
|
-static int linear_prepare_ioctl(struct dm_target *ti,
|
|
+int dm_linear_prepare_ioctl(struct dm_target *ti,
|
|
struct block_device **bdev, fmode_t *mode)
|
|
{
|
|
struct linear_c *lc = (struct linear_c *) ti->private;
|
|
@@ -132,16 +136,18 @@ static int linear_prepare_ioctl(struct d
|
|
return 1;
|
|
return 0;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(dm_linear_prepare_ioctl);
|
|
|
|
-static int linear_iterate_devices(struct dm_target *ti,
|
|
+int dm_linear_iterate_devices(struct dm_target *ti,
|
|
iterate_devices_callout_fn fn, void *data)
|
|
{
|
|
struct linear_c *lc = ti->private;
|
|
|
|
return fn(ti, lc->dev, lc->start, ti->len, data);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(dm_linear_iterate_devices);
|
|
|
|
-static long linear_direct_access(struct dm_target *ti, sector_t sector,
|
|
+long dm_linear_direct_access(struct dm_target *ti, sector_t sector,
|
|
void **kaddr, pfn_t *pfn, long size)
|
|
{
|
|
struct linear_c *lc = ti->private;
|
|
@@ -158,18 +164,19 @@ static long linear_direct_access(struct
|
|
|
|
return ret;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(dm_linear_direct_access);
|
|
|
|
static struct target_type linear_target = {
|
|
.name = "linear",
|
|
.version = {1, 3, 0},
|
|
.module = THIS_MODULE,
|
|
- .ctr = linear_ctr,
|
|
- .dtr = linear_dtr,
|
|
- .map = linear_map,
|
|
- .status = linear_status,
|
|
- .prepare_ioctl = linear_prepare_ioctl,
|
|
- .iterate_devices = linear_iterate_devices,
|
|
- .direct_access = linear_direct_access,
|
|
+ .ctr = dm_linear_ctr,
|
|
+ .dtr = dm_linear_dtr,
|
|
+ .map = dm_linear_map,
|
|
+ .status = dm_linear_status,
|
|
+ .prepare_ioctl = dm_linear_prepare_ioctl,
|
|
+ .iterate_devices = dm_linear_iterate_devices,
|
|
+ .direct_access = dm_linear_direct_access,
|
|
};
|
|
|
|
int __init dm_linear_init(void)
|