Resolve ABI changes made by 3.2.41
Revert the change in return type of target_type::status. Ignore the change to {,un}register_efivars(). svn path=/dists/sid/linux/; revision=19933
This commit is contained in:
parent
69cf3c5922
commit
b76d3d1c75
|
@ -44,6 +44,9 @@ ignore-changes:
|
|||
# Should not be used from OOT
|
||||
kmsg_dump_register
|
||||
kmsg_dump_unregister
|
||||
# Only used by Google firmware module
|
||||
register_efivars
|
||||
unregister_efivars
|
||||
|
||||
[base]
|
||||
arches:
|
||||
|
|
|
@ -0,0 +1,264 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Subject: dm: Avoid ABI change in 3.2.41
|
||||
|
||||
Commit fd7c092e711e 'dm: fix truncated status strings', backported
|
||||
into 3.2.41, changed the return type of target_type::status from void
|
||||
to int. But we can just as easily leave it as int and ignore the
|
||||
returned value.
|
||||
|
||||
Also, genksyms is too stupid to understand that 'unsigned' is the
|
||||
same thing as 'unsigned int'.
|
||||
|
||||
--- a/drivers/md/dm-crypt.c
|
||||
+++ b/drivers/md/dm-crypt.c
|
||||
@@ -1725,7 +1725,7 @@ static int crypt_map(struct dm_target *t
|
||||
return DM_MAPIO_SUBMITTED;
|
||||
}
|
||||
|
||||
-static void crypt_status(struct dm_target *ti, status_type_t type,
|
||||
+static int crypt_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
struct crypt_config *cc = ti->private;
|
||||
@@ -1753,6 +1753,7 @@ static void crypt_status(struct dm_targe
|
||||
|
||||
break;
|
||||
}
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static void crypt_postsuspend(struct dm_target *ti)
|
||||
--- a/drivers/md/dm-delay.c
|
||||
+++ b/drivers/md/dm-delay.c
|
||||
@@ -293,7 +293,7 @@ static int delay_map(struct dm_target *t
|
||||
return delay_bio(dc, dc->read_delay, bio);
|
||||
}
|
||||
|
||||
-static void delay_status(struct dm_target *ti, status_type_t type,
|
||||
+static int delay_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
struct delay_c *dc = ti->private;
|
||||
@@ -314,6 +314,8 @@ static void delay_status(struct dm_targe
|
||||
dc->write_delay);
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int delay_iterate_devices(struct dm_target *ti,
|
||||
--- a/drivers/md/dm-flakey.c
|
||||
+++ b/drivers/md/dm-flakey.c
|
||||
@@ -331,7 +331,7 @@ static int flakey_end_io(struct dm_targe
|
||||
return error;
|
||||
}
|
||||
|
||||
-static void flakey_status(struct dm_target *ti, status_type_t type,
|
||||
+static int flakey_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
unsigned sz = 0;
|
||||
@@ -362,6 +362,7 @@ static void flakey_status(struct dm_targ
|
||||
|
||||
break;
|
||||
}
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int flakey_ioctl(struct dm_target *ti, unsigned int cmd, unsigned long arg)
|
||||
--- a/drivers/md/dm-linear.c
|
||||
+++ b/drivers/md/dm-linear.c
|
||||
@@ -94,7 +94,7 @@ static int linear_map(struct dm_target *
|
||||
return DM_MAPIO_REMAPPED;
|
||||
}
|
||||
|
||||
-static void linear_status(struct dm_target *ti, status_type_t type,
|
||||
+static int linear_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
struct linear_c *lc = (struct linear_c *) ti->private;
|
||||
@@ -109,6 +109,7 @@ static void linear_status(struct dm_targ
|
||||
(unsigned long long)lc->start);
|
||||
break;
|
||||
}
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int linear_ioctl(struct dm_target *ti, unsigned int cmd,
|
||||
--- a/drivers/md/dm-mpath.c
|
||||
+++ b/drivers/md/dm-mpath.c
|
||||
@@ -1323,7 +1323,7 @@ static void multipath_resume(struct dm_t
|
||||
* [priority selector-name num_ps_args [ps_args]*
|
||||
* num_paths num_selector_args [path_dev [selector_args]* ]+ ]+
|
||||
*/
|
||||
-static void multipath_status(struct dm_target *ti, status_type_t type,
|
||||
+static int multipath_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
int sz = 0;
|
||||
@@ -1427,6 +1427,8 @@ static void multipath_status(struct dm_t
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&m->lock, flags);
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int multipath_message(struct dm_target *ti, unsigned argc, char **argv)
|
||||
--- a/drivers/md/dm-raid.c
|
||||
+++ b/drivers/md/dm-raid.c
|
||||
@@ -1017,7 +1017,7 @@ static int raid_map(struct dm_target *ti
|
||||
return DM_MAPIO_SUBMITTED;
|
||||
}
|
||||
|
||||
-static void raid_status(struct dm_target *ti, status_type_t type,
|
||||
+static int raid_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
struct raid_set *rs = ti->private;
|
||||
@@ -1153,6 +1153,8 @@ static void raid_status(struct dm_target
|
||||
DMEMIT(" -");
|
||||
}
|
||||
}
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int raid_iterate_devices(struct dm_target *ti, iterate_devices_callout_fn fn, void *data)
|
||||
--- a/drivers/md/dm-raid1.c
|
||||
+++ b/drivers/md/dm-raid1.c
|
||||
@@ -1358,7 +1358,7 @@ static char device_status_char(struct mi
|
||||
}
|
||||
|
||||
|
||||
-static void mirror_status(struct dm_target *ti, status_type_t type,
|
||||
+static int mirror_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
unsigned int m, sz = 0;
|
||||
@@ -1394,6 +1394,8 @@ static void mirror_status(struct dm_targ
|
||||
if (ms->features & DM_RAID1_HANDLE_ERRORS)
|
||||
DMEMIT(" 1 handle_errors");
|
||||
}
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int mirror_iterate_devices(struct dm_target *ti,
|
||||
--- a/drivers/md/dm-snap.c
|
||||
+++ b/drivers/md/dm-snap.c
|
||||
@@ -1845,7 +1845,7 @@ static void snapshot_merge_resume(struct
|
||||
start_merge(s);
|
||||
}
|
||||
|
||||
-static void snapshot_status(struct dm_target *ti, status_type_t type,
|
||||
+static int snapshot_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
unsigned sz = 0;
|
||||
@@ -1892,6 +1892,8 @@ static void snapshot_status(struct dm_ta
|
||||
maxlen - sz);
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int snapshot_iterate_devices(struct dm_target *ti,
|
||||
@@ -2146,7 +2148,7 @@ static void origin_resume(struct dm_targ
|
||||
ti->split_io = get_origin_minimum_chunksize(dev->bdev);
|
||||
}
|
||||
|
||||
-static void origin_status(struct dm_target *ti, status_type_t type,
|
||||
+static int origin_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
struct dm_dev *dev = ti->private;
|
||||
@@ -2160,6 +2162,8 @@ static void origin_status(struct dm_targ
|
||||
snprintf(result, maxlen, "%s", dev->name);
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int origin_merge(struct dm_target *ti, struct bvec_merge_data *bvm,
|
||||
--- a/drivers/md/dm-stripe.c
|
||||
+++ b/drivers/md/dm-stripe.c
|
||||
@@ -301,7 +301,7 @@ static int stripe_map(struct dm_target *
|
||||
*
|
||||
*/
|
||||
|
||||
-static void stripe_status(struct dm_target *ti, status_type_t type,
|
||||
+static int stripe_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
struct stripe_c *sc = (struct stripe_c *) ti->private;
|
||||
@@ -329,6 +329,7 @@ static void stripe_status(struct dm_targ
|
||||
(unsigned long long)sc->stripe[i].physical_start);
|
||||
break;
|
||||
}
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int stripe_end_io(struct dm_target *ti, struct bio *bio,
|
||||
--- a/drivers/md/dm-thin.c
|
||||
+++ b/drivers/md/dm-thin.c
|
||||
@@ -2090,7 +2090,7 @@ static int pool_message(struct dm_target
|
||||
* <transaction id> <used metadata sectors>/<total metadata sectors>
|
||||
* <used data sectors>/<total data sectors> <held metadata root>
|
||||
*/
|
||||
-static void pool_status(struct dm_target *ti, status_type_t type,
|
||||
+static int pool_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
int r;
|
||||
@@ -2171,10 +2171,11 @@ static void pool_status(struct dm_target
|
||||
DMEMIT("skip_block_zeroing ");
|
||||
break;
|
||||
}
|
||||
- return;
|
||||
+ return 0;
|
||||
|
||||
err:
|
||||
DMEMIT("Error");
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int pool_iterate_devices(struct dm_target *ti,
|
||||
@@ -2350,7 +2351,7 @@ static void thin_postsuspend(struct dm_t
|
||||
/*
|
||||
* <nr mapped sectors> <highest mapped sector>
|
||||
*/
|
||||
-static void thin_status(struct dm_target *ti, status_type_t type,
|
||||
+static int thin_status(struct dm_target *ti, status_type_t type,
|
||||
char *result, unsigned maxlen)
|
||||
{
|
||||
int r;
|
||||
@@ -2392,10 +2393,11 @@ static void thin_status(struct dm_target
|
||||
}
|
||||
}
|
||||
|
||||
- return;
|
||||
+ return 0;
|
||||
|
||||
err:
|
||||
DMEMIT("Error");
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int thin_iterate_devices(struct dm_target *ti,
|
||||
--- a/include/linux/device-mapper.h
|
||||
+++ b/include/linux/device-mapper.h
|
||||
@@ -72,8 +72,8 @@ typedef void (*dm_postsuspend_fn) (struc
|
||||
typedef int (*dm_preresume_fn) (struct dm_target *ti);
|
||||
typedef void (*dm_resume_fn) (struct dm_target *ti);
|
||||
|
||||
-typedef void (*dm_status_fn) (struct dm_target *ti, status_type_t status_type,
|
||||
- char *result, unsigned maxlen);
|
||||
+typedef int (*dm_status_fn) (struct dm_target *ti, status_type_t status_type,
|
||||
+ char *result, unsigned int maxlen);
|
||||
|
||||
typedef int (*dm_message_fn) (struct dm_target *ti, unsigned argc, char **argv);
|
||||
|
|
@ -626,3 +626,4 @@ bugfix/powerpc/powerpc-fix-cputable-entry-for-970mp-rev-1.0.patch
|
|||
bugfix/all/vhost-net-fix-heads-usage-of-ubuf_info.patch
|
||||
bugfix/all/udf-avoid-info-leak-on-export.patch
|
||||
bugfix/all/isofs-avoid-info-leak-on-export.patch
|
||||
debian/dm-avoid-ABI-change-in-3.2.41.patch
|
||||
|
|
Loading…
Reference in New Issue