Skip to content

Commit

Permalink
ore: Remove check for ios->kern_buff in _prepare_for_striping to later
Browse files Browse the repository at this point in the history
Move the check and preparation of the ios->kern_buff case to
later inside _write_mirror().

Since read was never used with ios->kern_buff its support is removed
instead of fixed.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
  • Loading branch information
Boaz Harrosh committed Oct 14, 2011
1 parent 9826075 commit 6851a5e
Showing 1 changed file with 13 additions and 23 deletions.
36 changes: 13 additions & 23 deletions fs/exofs/ore.c
Original file line number Diff line number Diff line change
Expand Up @@ -427,17 +427,6 @@ static int _prepare_for_striping(struct ore_io_state *ios)
int ret = 0;

if (!ios->pages) {
if (ios->kern_buff) {
struct ore_per_dev_state *per_dev = &ios->per_dev[0];

per_dev->offset = si->obj_offset;
per_dev->dev = si->dev;

/* no cross device without page array */
BUG_ON((ios->layout->group_width > 1) &&
(si->unit_off + ios->length >
ios->layout->stripe_unit));
}
ios->numdevs = ios->layout->mirrors_p1;
return 0;
}
Expand Down Expand Up @@ -557,7 +546,6 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp)
goto out;
}
per_dev->or = or;
per_dev->offset = master_dev->offset;

if (ios->pages) {
struct bio *bio;
Expand All @@ -576,6 +564,7 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp)
__bio_clone(bio, master_dev->bio);
bio->bi_bdev = NULL;
bio->bi_next = NULL;
per_dev->offset = master_dev->offset;
per_dev->length = master_dev->length;
per_dev->bio = bio;
per_dev->dev = dev;
Expand All @@ -593,7 +582,15 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp)
_LLU(per_dev->offset),
_LLU(per_dev->length), dev);
} else if (ios->kern_buff) {
ret = osd_req_write_kern(or, _ios_obj(ios, dev),
per_dev->offset = ios->si.obj_offset;
per_dev->dev = ios->si.dev + dev;

/* no cross device without page array */
BUG_ON((ios->layout->group_width > 1) &&
(ios->si.unit_off + ios->length >
ios->layout->stripe_unit));

ret = osd_req_write_kern(or, _ios_obj(ios, per_dev->dev),
per_dev->offset,
ios->kern_buff, ios->length);
if (unlikely(ret))
Expand All @@ -602,7 +599,7 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp)
"length=0x%llx dev=%d\n",
_LLU(_ios_obj(ios, dev)->id),
_LLU(per_dev->offset),
_LLU(ios->length), dev);
_LLU(ios->length), per_dev->dev);
} else {
osd_req_set_attributes(or, _ios_obj(ios, dev));
ORE_DBGMSG2("obj(0x%llx) set_attributes=%d dev=%d\n",
Expand Down Expand Up @@ -668,16 +665,9 @@ static int _read_mirror(struct ore_io_state *ios, unsigned cur_comp)
" dev=%d\n", _LLU(obj->id),
_LLU(per_dev->offset), _LLU(per_dev->length),
first_dev);
} else if (ios->kern_buff) {
int ret = osd_req_read_kern(or, obj, per_dev->offset,
ios->kern_buff, ios->length);
ORE_DBGMSG2("read_kern(0x%llx) offset=0x%llx "
"length=0x%llx dev=%d ret=>%d\n",
_LLU(obj->id), _LLU(per_dev->offset),
_LLU(ios->length), first_dev, ret);
if (unlikely(ret))
return ret;
} else {
BUG_ON(ios->kern_buff);

osd_req_get_attributes(or, obj);
ORE_DBGMSG2("obj(0x%llx) get_attributes=%d dev=%d\n",
_LLU(obj->id),
Expand Down

0 comments on commit 6851a5e

Please sign in to comment.