git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
md
/
dm-stripe.c
diff --git
a/drivers/md/dm-stripe.c
b/drivers/md/dm-stripe.c
index
697aaca
..
51f5e07
100644
(file)
--- a/
drivers/md/dm-stripe.c
+++ b/
drivers/md/dm-stripe.c
@@
-12,6
+12,8
@@
#include <linux/bio.h>
#include <linux/slab.h>
#include <linux/bio.h>
#include <linux/slab.h>
+#define DM_MSG_PREFIX "striped"
+
struct stripe {
struct dm_dev *dev;
sector_t physical_start;
struct stripe {
struct dm_dev *dev;
sector_t physical_start;
@@
-49,9
+51,9
@@
static inline struct stripe_c *alloc_context(unsigned int stripes)
static int get_stripe(struct dm_target *ti, struct stripe_c *sc,
unsigned int stripe, char **argv)
{
static int get_stripe(struct dm_target *ti, struct stripe_c *sc,
unsigned int stripe, char **argv)
{
-
sector_t
start;
+
unsigned long long
start;
- if (sscanf(argv[1],
SECTOR_FORMAT
, &start) != 1)
+ if (sscanf(argv[1],
"%llu"
, &start) != 1)
return -EINVAL;
if (dm_get_device(ti, argv[0], start, sc->stripe_width,
return -EINVAL;
if (dm_get_device(ti, argv[0], start, sc->stripe_width,
@@
-78,19
+80,19
@@
static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
unsigned int i;
if (argc < 2) {
unsigned int i;
if (argc < 2) {
- ti->error = "
dm-stripe:
Not enough arguments";
+ ti->error = "Not enough arguments";
return -EINVAL;
}
stripes = simple_strtoul(argv[0], &end, 10);
if (*end) {
return -EINVAL;
}
stripes = simple_strtoul(argv[0], &end, 10);
if (*end) {
- ti->error = "
dm-stripe:
Invalid stripe count";
+ ti->error = "Invalid stripe count";
return -EINVAL;
}
chunk_size = simple_strtoul(argv[1], &end, 10);
if (*end) {
return -EINVAL;
}
chunk_size = simple_strtoul(argv[1], &end, 10);
if (*end) {
- ti->error = "
dm-stripe:
Invalid chunk_size";
+ ti->error = "Invalid chunk_size";
return -EINVAL;
}
return -EINVAL;
}
@@
-99,19
+101,19
@@
static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
*/
if (!chunk_size || (chunk_size & (chunk_size - 1)) ||
(chunk_size < (PAGE_SIZE >> SECTOR_SHIFT))) {
*/
if (!chunk_size || (chunk_size & (chunk_size - 1)) ||
(chunk_size < (PAGE_SIZE >> SECTOR_SHIFT))) {
- ti->error = "
dm-stripe:
Invalid chunk size";
+ ti->error = "Invalid chunk size";
return -EINVAL;
}
return -EINVAL;
}
- if (
((uint32_t)ti->len)
& (chunk_size - 1)) {
- ti->error = "
dm-stripe:
Target length not divisible by "
+ if (
ti->len
& (chunk_size - 1)) {
+ ti->error = "Target length not divisible by "
"chunk size";
return -EINVAL;
}
width = ti->len;
if (sector_div(width, stripes)) {
"chunk size";
return -EINVAL;
}
width = ti->len;
if (sector_div(width, stripes)) {
- ti->error = "
dm-stripe:
Target length not divisible by "
+ ti->error = "Target length not divisible by "
"number of stripes";
return -EINVAL;
}
"number of stripes";
return -EINVAL;
}
@@
-120,14
+122,14
@@
static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
* Do we have enough arguments for that many stripes ?
*/
if (argc != (2 + 2 * stripes)) {
* Do we have enough arguments for that many stripes ?
*/
if (argc != (2 + 2 * stripes)) {
- ti->error = "
dm-stripe:
Not enough destinations "
+ ti->error = "Not enough destinations "
"specified";
return -EINVAL;
}
sc = alloc_context(stripes);
if (!sc) {
"specified";
return -EINVAL;
}
sc = alloc_context(stripes);
if (!sc) {
- ti->error = "
dm-stripe:
Memory allocation for striped context "
+ ti->error = "Memory allocation for striped context "
"failed";
return -ENOMEM;
}
"failed";
return -ENOMEM;
}
@@
-149,8
+151,7
@@
static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
r = get_stripe(ti, sc, i, argv);
if (r < 0) {
r = get_stripe(ti, sc, i, argv);
if (r < 0) {
- ti->error = "dm-stripe: Couldn't parse stripe "
- "destination";
+ ti->error = "Couldn't parse stripe destination";
while (i--)
dm_put_device(ti, sc->stripe[i].dev);
kfree(sc);
while (i--)
dm_put_device(ti, sc->stripe[i].dev);
kfree(sc);
@@
-185,7
+186,7
@@
static int stripe_map(struct dm_target *ti, struct bio *bio,
bio->bi_bdev = sc->stripe[stripe].dev->bdev;
bio->bi_sector = sc->stripe[stripe].physical_start +
(chunk << sc->chunk_shift) + (offset & sc->chunk_mask);
bio->bi_bdev = sc->stripe[stripe].dev->bdev;
bio->bi_sector = sc->stripe[stripe].physical_start +
(chunk << sc->chunk_shift) + (offset & sc->chunk_mask);
- return
1
;
+ return
DM_MAPIO_REMAPPED
;
}
static int stripe_status(struct dm_target *ti,
}
static int stripe_status(struct dm_target *ti,
@@
-201,10
+202,11
@@
static int stripe_status(struct dm_target *ti,
break;
case STATUSTYPE_TABLE:
break;
case STATUSTYPE_TABLE:
- DMEMIT("%d " SECTOR_FORMAT, sc->stripes, sc->chunk_mask + 1);
+ DMEMIT("%d %llu", sc->stripes,
+ (unsigned long long)sc->chunk_mask + 1);
for (i = 0; i < sc->stripes; i++)
for (i = 0; i < sc->stripes; i++)
- DMEMIT(" %s
" SECTOR_FORMAT
, sc->stripe[i].dev->name,
-
sc->stripe[i].physical_start);
+ DMEMIT(" %s
%llu"
, sc->stripe[i].dev->name,
+
(unsigned long long)
sc->stripe[i].physical_start);
break;
}
return 0;
break;
}
return 0;
@@
-226,7
+228,7
@@
int __init dm_stripe_init(void)
r = dm_register_target(&stripe_target);
if (r < 0)
r = dm_register_target(&stripe_target);
if (r < 0)
- DMWARN("
striped
target registration failed");
+ DMWARN("target registration failed");
return r;
}
return r;
}
@@
-234,7
+236,7
@@
int __init dm_stripe_init(void)
void dm_stripe_exit(void)
{
if (dm_unregister_target(&stripe_target))
void dm_stripe_exit(void)
{
if (dm_unregister_target(&stripe_target))
- DMWARN("
striped
target unregistration failed");
+ DMWARN("target unregistration failed");
return;
}
return;
}