Skip to content
Snippets Groups Projects
Commit 6fda98c3 authored by alex's avatar alex
Browse files

- let's try to serialize all allocations and see how does that help

parent 4324a480
No related branches found
No related tags found
No related merge requests found
...@@ -353,7 +353,8 @@ int filter_direct_io(int rw, struct dentry *dchild, void *iobuf, ...@@ -353,7 +353,8 @@ int filter_direct_io(int rw, struct dentry *dchild, void *iobuf,
struct obd_device *obd = exp->exp_obd; struct obd_device *obd = exp->exp_obd;
struct inode *inode = dchild->d_inode; struct inode *inode = dchild->d_inode;
struct dio_request *dreq = iobuf; struct dio_request *dreq = iobuf;
int rc, rc2; struct semaphore *sem = NULL;
int rc, rc2, create = 0;
ENTRY; ENTRY;
LASSERTF(rw == OBD_BRW_WRITE || rw == OBD_BRW_READ, "%x\n", rw); LASSERTF(rw == OBD_BRW_WRITE || rw == OBD_BRW_READ, "%x\n", rw);
...@@ -366,11 +367,16 @@ int filter_direct_io(int rw, struct dentry *dchild, void *iobuf, ...@@ -366,11 +367,16 @@ int filter_direct_io(int rw, struct dentry *dchild, void *iobuf,
if (dreq->dr_npages > OBDFILTER_CREATED_SCRATCHPAD_ENTRIES) if (dreq->dr_npages > OBDFILTER_CREATED_SCRATCHPAD_ENTRIES)
RETURN(-EINVAL); RETURN(-EINVAL);
if (rw == OBD_BRW_WRITE) {
create = 1;
sem = &obd->u.filter.fo_alloc_lock;
}
rc = fsfilt_map_inode_pages(obd, inode, rc = fsfilt_map_inode_pages(obd, inode,
dreq->dr_pages, dreq->dr_npages, dreq->dr_pages, dreq->dr_npages,
dreq->dr_blocks, dreq->dr_blocks,
obdfilter_created_scratchpad, obdfilter_created_scratchpad,
rw == OBD_BRW_WRITE, NULL); create, sem);
if (rw == OBD_BRW_WRITE) { if (rw == OBD_BRW_WRITE) {
if (rc == 0) { if (rc == 0) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment