Use scnprintf() instead of snprintf(). See http://linux.bkbits.net:8080/linux-2.5/cset@1.1557.1.43 for more details. --- diff/drivers/md/dm-mpath.c 2004-03-01 11:42:38.000000000 +0000 +++ source/drivers/md/dm-mpath.c 2004-03-01 11:49:48.000000000 +0000 @@ -613,7 +613,7 @@ static int multipath_status(struct dm_ta char buffer[32]; #define EMIT(x...) sz += ((sz >= maxlen) ? \ - 0 : snprintf(result + sz, maxlen - sz, x)) + 0 : scnprintf(result + sz, maxlen - sz, x)) switch (type) { case STATUSTYPE_INFO: --- diff/drivers/md/dm-raid1.c 2004-02-23 14:06:58.000000000 +0000 +++ source/drivers/md/dm-raid1.c 2004-03-01 11:49:48.000000000 +0000 @@ -1192,28 +1192,28 @@ static int mirror_status(struct dm_targe switch (type) { case STATUSTYPE_INFO: - sz += snprintf(result + sz, maxlen - sz, "%d ", ms->nr_mirrors); + sz += scnprintf(result + sz, maxlen - sz, "%d ", ms->nr_mirrors); for (m = 0; m < ms->nr_mirrors; m++) { format_dev_t(buffer, ms->mirror[m].dev->bdev->bd_dev); - sz += snprintf(result + sz, maxlen - sz, "%s ", buffer); + sz += scnprintf(result + sz, maxlen - sz, "%s ", buffer); } - sz += snprintf(result + sz, maxlen - sz, + sz += scnprintf(result + sz, maxlen - sz, SECTOR_FORMAT "/" SECTOR_FORMAT, ms->rh.log->type->get_sync_count(ms->rh.log), ms->nr_regions); break; case STATUSTYPE_TABLE: - sz += snprintf(result + sz, maxlen - sz, + sz += scnprintf(result + sz, maxlen - sz, "%s 1 " SECTOR_FORMAT " %d ", ms->rh.log->type->name, ms->rh.region_size, ms->nr_mirrors); for (m = 0; m < ms->nr_mirrors; m++) { format_dev_t(buffer, ms->mirror[m].dev->bdev->bd_dev); - sz += snprintf(result + sz, maxlen - sz, + sz += scnprintf(result + sz, maxlen - sz, "%s " SECTOR_FORMAT " ", buffer, ms->mirror[m].offset); }