Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 185835
b: refs/heads/master
c: 46f4d97
h: refs/heads/master
i:
  185833: 7bfb19c
  185831: abf5e84
v: v3
  • Loading branch information
Boaz Harrosh committed Feb 28, 2010
1 parent 79c47be commit 3ac4188
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 50 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 45d3abcb1a7388b2b97582e13bf9dd21784dcaa5
refs/heads/master: 46f4d973f6874c06b7a41a3bf8f4c1717d90f97a
87 changes: 38 additions & 49 deletions trunk/fs/exofs/ios.c
Original file line number Diff line number Diff line change
Expand Up @@ -356,59 +356,48 @@ int exofs_sbi_write(struct exofs_io_state *ios)

int exofs_sbi_read(struct exofs_io_state *ios)
{
int i, ret;

for (i = 0; i < 1; i++) {
struct osd_request *or;
unsigned first_dev = (unsigned)ios->obj.id;

first_dev %= ios->layout->s_numdevs;
or = osd_start_request(ios->layout->s_ods[first_dev],
GFP_KERNEL);
if (unlikely(!or)) {
EXOFS_ERR("%s: osd_start_request failed\n", __func__);
ret = -ENOMEM;
goto out;
}
ios->per_dev[i].or = or;
ios->numdevs++;
struct osd_request *or;
struct exofs_per_dev_state *per_dev = &ios->per_dev[0];
unsigned first_dev = (unsigned)ios->obj.id;

if (ios->bio) {
osd_req_read(or, &ios->obj, ios->offset, ios->bio,
ios->length);
EXOFS_DBGMSG("read(0x%llx) offset=0x%llx length=0x%llx"
" dev=%d\n", _LLU(ios->obj.id),
_LLU(ios->offset),
_LLU(ios->length),
first_dev);
} else if (ios->kern_buff) {
osd_req_read_kern(or, &ios->obj, ios->offset,
ios->kern_buff, ios->length);
EXOFS_DBGMSG2("read_kern(0x%llx) offset=0x%llx "
"length=0x%llx dev=%d\n",
_LLU(ios->obj.id),
_LLU(ios->offset),
_LLU(ios->length),
first_dev);
} else {
osd_req_get_attributes(or, &ios->obj);
EXOFS_DBGMSG2("obj(0x%llx) get_attributes=%d dev=%d\n",
_LLU(ios->obj.id), ios->in_attr_len,
first_dev);
}
first_dev %= ios->layout->s_numdevs;
or = osd_start_request(ios->layout->s_ods[first_dev], GFP_KERNEL);
if (unlikely(!or)) {
EXOFS_ERR("%s: osd_start_request failed\n", __func__);
return -ENOMEM;
}
per_dev->or = or;
ios->numdevs++;

if (ios->bio) {
osd_req_read(or, &ios->obj, ios->offset, ios->bio, ios->length);
EXOFS_DBGMSG("read(0x%llx) offset=0x%llx length=0x%llx"
" dev=%d\n", _LLU(ios->obj.id),
_LLU(ios->offset), _LLU(ios->length),
first_dev);
} else if (ios->kern_buff) {
int ret = osd_req_read_kern(or, &ios->obj, ios->offset,
ios->kern_buff, ios->length);

EXOFS_DBGMSG2("read_kern(0x%llx) offset=0x%llx "
"length=0x%llx dev=%d ret=>%d\n",
_LLU(ios->obj.id), _LLU(ios->offset),
_LLU(ios->length), first_dev, ret);
if (unlikely(ret))
return ret;
} else {
osd_req_get_attributes(or, &ios->obj);
EXOFS_DBGMSG2("obj(0x%llx) get_attributes=%d dev=%d\n",
_LLU(ios->obj.id), ios->in_attr_len, first_dev);
}

if (ios->out_attr)
osd_req_add_set_attr_list(or, ios->out_attr,
ios->out_attr_len);
if (ios->out_attr)
osd_req_add_set_attr_list(or, ios->out_attr, ios->out_attr_len);

if (ios->in_attr)
osd_req_add_get_attr_list(or, ios->in_attr,
ios->in_attr_len);
}
ret = exofs_io_execute(ios);
if (ios->in_attr)
osd_req_add_get_attr_list(or, ios->in_attr, ios->in_attr_len);

out:
return ret;
return exofs_io_execute(ios);
}

int extract_attr_from_ios(struct exofs_io_state *ios, struct osd_attr *attr)
Expand Down

0 comments on commit 3ac4188

Please sign in to comment.