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:
Ben Hutchings 2013-03-21 14:38:35 +00:00
parent 69cf3c5922
commit b76d3d1c75
3 changed files with 268 additions and 0 deletions

View File

@ -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:

View File

@ -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);

View File

@ -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