|
@@ -255,7 +255,7 @@ static void nfs_direct_read_release(void *calldata)
|
|
|
|
|
|
if (put_dreq(dreq))
|
|
if (put_dreq(dreq))
|
|
nfs_direct_complete(dreq);
|
|
nfs_direct_complete(dreq);
|
|
- nfs_readdata_release(calldata);
|
|
|
|
|
|
+ nfs_readdata_free(data);
|
|
}
|
|
}
|
|
|
|
|
|
static const struct rpc_call_ops nfs_read_direct_ops = {
|
|
static const struct rpc_call_ops nfs_read_direct_ops = {
|
|
@@ -314,14 +314,14 @@ static ssize_t nfs_direct_read_schedule_segment(struct nfs_direct_req *dreq,
|
|
data->npages, 1, 0, data->pagevec, NULL);
|
|
data->npages, 1, 0, data->pagevec, NULL);
|
|
up_read(¤t->mm->mmap_sem);
|
|
up_read(¤t->mm->mmap_sem);
|
|
if (result < 0) {
|
|
if (result < 0) {
|
|
- nfs_readdata_release(data);
|
|
|
|
|
|
+ nfs_readdata_free(data);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
if ((unsigned)result < data->npages) {
|
|
if ((unsigned)result < data->npages) {
|
|
bytes = result * PAGE_SIZE;
|
|
bytes = result * PAGE_SIZE;
|
|
if (bytes <= pgbase) {
|
|
if (bytes <= pgbase) {
|
|
nfs_direct_release_pages(data->pagevec, result);
|
|
nfs_direct_release_pages(data->pagevec, result);
|
|
- nfs_readdata_release(data);
|
|
|
|
|
|
+ nfs_readdata_free(data);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
bytes -= pgbase;
|
|
bytes -= pgbase;
|
|
@@ -334,7 +334,7 @@ static ssize_t nfs_direct_read_schedule_segment(struct nfs_direct_req *dreq,
|
|
data->inode = inode;
|
|
data->inode = inode;
|
|
data->cred = msg.rpc_cred;
|
|
data->cred = msg.rpc_cred;
|
|
data->args.fh = NFS_FH(inode);
|
|
data->args.fh = NFS_FH(inode);
|
|
- data->args.context = get_nfs_open_context(ctx);
|
|
|
|
|
|
+ data->args.context = ctx;
|
|
data->args.offset = pos;
|
|
data->args.offset = pos;
|
|
data->args.pgbase = pgbase;
|
|
data->args.pgbase = pgbase;
|
|
data->args.pages = data->pagevec;
|
|
data->args.pages = data->pagevec;
|
|
@@ -441,7 +441,7 @@ static void nfs_direct_free_writedata(struct nfs_direct_req *dreq)
|
|
struct nfs_write_data *data = list_entry(dreq->rewrite_list.next, struct nfs_write_data, pages);
|
|
struct nfs_write_data *data = list_entry(dreq->rewrite_list.next, struct nfs_write_data, pages);
|
|
list_del(&data->pages);
|
|
list_del(&data->pages);
|
|
nfs_direct_release_pages(data->pagevec, data->npages);
|
|
nfs_direct_release_pages(data->pagevec, data->npages);
|
|
- nfs_writedata_release(data);
|
|
|
|
|
|
+ nfs_writedata_free(data);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -534,7 +534,7 @@ static void nfs_direct_commit_release(void *calldata)
|
|
|
|
|
|
dprintk("NFS: %5u commit returned %d\n", data->task.tk_pid, status);
|
|
dprintk("NFS: %5u commit returned %d\n", data->task.tk_pid, status);
|
|
nfs_direct_write_complete(dreq, data->inode);
|
|
nfs_direct_write_complete(dreq, data->inode);
|
|
- nfs_commitdata_release(calldata);
|
|
|
|
|
|
+ nfs_commit_free(data);
|
|
}
|
|
}
|
|
|
|
|
|
static const struct rpc_call_ops nfs_commit_direct_ops = {
|
|
static const struct rpc_call_ops nfs_commit_direct_ops = {
|
|
@@ -570,7 +570,7 @@ static void nfs_direct_commit_schedule(struct nfs_direct_req *dreq)
|
|
data->args.fh = NFS_FH(data->inode);
|
|
data->args.fh = NFS_FH(data->inode);
|
|
data->args.offset = 0;
|
|
data->args.offset = 0;
|
|
data->args.count = 0;
|
|
data->args.count = 0;
|
|
- data->args.context = get_nfs_open_context(dreq->ctx);
|
|
|
|
|
|
+ data->args.context = dreq->ctx;
|
|
data->res.count = 0;
|
|
data->res.count = 0;
|
|
data->res.fattr = &data->fattr;
|
|
data->res.fattr = &data->fattr;
|
|
data->res.verf = &data->verf;
|
|
data->res.verf = &data->verf;
|
|
@@ -734,14 +734,14 @@ static ssize_t nfs_direct_write_schedule_segment(struct nfs_direct_req *dreq,
|
|
data->npages, 0, 0, data->pagevec, NULL);
|
|
data->npages, 0, 0, data->pagevec, NULL);
|
|
up_read(¤t->mm->mmap_sem);
|
|
up_read(¤t->mm->mmap_sem);
|
|
if (result < 0) {
|
|
if (result < 0) {
|
|
- nfs_writedata_release(data);
|
|
|
|
|
|
+ nfs_writedata_free(data);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
if ((unsigned)result < data->npages) {
|
|
if ((unsigned)result < data->npages) {
|
|
bytes = result * PAGE_SIZE;
|
|
bytes = result * PAGE_SIZE;
|
|
if (bytes <= pgbase) {
|
|
if (bytes <= pgbase) {
|
|
nfs_direct_release_pages(data->pagevec, result);
|
|
nfs_direct_release_pages(data->pagevec, result);
|
|
- nfs_writedata_release(data);
|
|
|
|
|
|
+ nfs_writedata_free(data);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
bytes -= pgbase;
|
|
bytes -= pgbase;
|
|
@@ -756,7 +756,7 @@ static ssize_t nfs_direct_write_schedule_segment(struct nfs_direct_req *dreq,
|
|
data->inode = inode;
|
|
data->inode = inode;
|
|
data->cred = msg.rpc_cred;
|
|
data->cred = msg.rpc_cred;
|
|
data->args.fh = NFS_FH(inode);
|
|
data->args.fh = NFS_FH(inode);
|
|
- data->args.context = get_nfs_open_context(ctx);
|
|
|
|
|
|
+ data->args.context = ctx;
|
|
data->args.offset = pos;
|
|
data->args.offset = pos;
|
|
data->args.pgbase = pgbase;
|
|
data->args.pgbase = pgbase;
|
|
data->args.pages = data->pagevec;
|
|
data->args.pages = data->pagevec;
|