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
vserver 1.9.5.x5
[linux-2.6.git]
/
drivers
/
md
/
dm-stripe.c
diff --git
a/drivers/md/dm-stripe.c
b/drivers/md/dm-stripe.c
index
b5bacd7
..
16acecc
100644
(file)
--- a/
drivers/md/dm-stripe.c
+++ b/
drivers/md/dm-stripe.c
@@
-21,7
+21,7
@@
struct stripe_c {
uint32_t stripes;
/* The size of this target / num. stripes */
uint32_t stripes;
/* The size of this target / num. stripes */
-
uint32
_t stripe_width;
+
sector
_t stripe_width;
/* stripe chunk size */
uint32_t chunk_shift;
/* stripe chunk size */
uint32_t chunk_shift;
@@
-173,9
+173,8
@@
static int stripe_map(struct dm_target *ti, struct bio *bio,
struct stripe_c *sc = (struct stripe_c *) ti->private;
sector_t offset = bio->bi_sector - ti->begin;
struct stripe_c *sc = (struct stripe_c *) ti->private;
sector_t offset = bio->bi_sector - ti->begin;
- uint32_t chunk = (uint32_t) (offset >> sc->chunk_shift);
- uint32_t stripe = chunk % sc->stripes; /* 32bit modulus */
- chunk = chunk / sc->stripes;
+ sector_t chunk = offset >> sc->chunk_shift;
+ uint32_t stripe = sector_div(chunk, sc->stripes);
bio->bi_bdev = sc->stripe[stripe].dev->bdev;
bio->bi_sector = sc->stripe[stripe].physical_start +
bio->bi_bdev = sc->stripe[stripe].dev->bdev;
bio->bi_sector = sc->stripe[stripe].physical_start +
@@
-191,20
+190,17
@@
static int stripe_status(struct dm_target *ti,
unsigned int i;
char buffer[32];
unsigned int i;
char buffer[32];
-#define EMIT(x...) sz += ((sz >= maxlen) ? \
- 0 : scnprintf(result + sz, maxlen - sz, x))
-
switch (type) {
case STATUSTYPE_INFO:
result[0] = '\0';
break;
case STATUSTYPE_TABLE:
switch (type) {
case STATUSTYPE_INFO:
result[0] = '\0';
break;
case STATUSTYPE_TABLE:
- EMIT("%d " SECTOR_FORMAT, sc->stripes, sc->chunk_mask + 1);
+
DM
EMIT("%d " SECTOR_FORMAT, sc->stripes, sc->chunk_mask + 1);
for (i = 0; i < sc->stripes; i++) {
format_dev_t(buffer, sc->stripe[i].dev->bdev->bd_dev);
for (i = 0; i < sc->stripes; i++) {
format_dev_t(buffer, sc->stripe[i].dev->bdev->bd_dev);
- EMIT(" %s " SECTOR_FORMAT, buffer,
- sc->stripe[i].physical_start);
+
DM
EMIT(" %s " SECTOR_FORMAT, buffer,
+
sc->stripe[i].physical_start);
}
break;
}
}
break;
}
@@
-213,7
+209,7
@@
static int stripe_status(struct dm_target *ti,
static struct target_type stripe_target = {
.name = "striped",
static struct target_type stripe_target = {
.name = "striped",
- .version= {1, 0,
1
},
+ .version= {1, 0,
2
},
.module = THIS_MODULE,
.ctr = stripe_ctr,
.dtr = stripe_dtr,
.module = THIS_MODULE,
.ctr = stripe_ctr,
.dtr = stripe_dtr,