Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 308597
b: refs/heads/master
c: 0427708
h: refs/heads/master
i:
  308595: fae6a19
v: v3
  • Loading branch information
Trond Myklebust authored and Trond Myklebust committed May 9, 2012
1 parent e570097 commit b2a0f17
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 12 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: 1d1afcbc294cc7c788eb5c7b6b98e8d63caf002c
refs/heads/master: 0427708657750bdc03af3491a0297cab5e7efabf
15 changes: 4 additions & 11 deletions trunk/fs/nfs/direct.c
Original file line number Diff line number Diff line change
Expand Up @@ -486,10 +486,8 @@ static void nfs_direct_write_reschedule(struct nfs_direct_req *dreq)
}
nfs_pageio_complete(&desc);

while (!list_empty(&failed)) {
nfs_release_request(req);
while (!list_empty(&failed))
nfs_unlock_and_release_request(req);
}

if (put_dreq(dreq))
nfs_direct_write_complete(dreq, dreq->inode);
Expand Down Expand Up @@ -518,9 +516,9 @@ static void nfs_direct_commit_complete(struct nfs_commit_data *data)
nfs_list_remove_request(req);
if (dreq->flags == NFS_ODIRECT_RESCHED_WRITES) {
/* Note the rewrite will go through mds */
kref_get(&req->wb_kref);
nfs_mark_request_commit(req, NULL, &cinfo);
} else
nfs_release_request(req);
}
nfs_unlock_and_release_request(req);
}

Expand Down Expand Up @@ -657,13 +655,11 @@ static ssize_t nfs_direct_write_schedule_segment(struct nfs_pageio_descriptor *d
break;
}
nfs_lock_request(req);
kref_get(&req->wb_kref);
req->wb_index = pos >> PAGE_SHIFT;
req->wb_offset = pos & ~PAGE_MASK;
if (!nfs_pageio_add_request(desc, req)) {
result = desc->pg_error;
nfs_unlock_and_release_request(req);
nfs_release_request(req);
break;
}
pgbase = 0;
Expand Down Expand Up @@ -734,10 +730,8 @@ static void nfs_direct_write_completion(struct nfs_pgio_header *hdr)
switch (bit) {
case NFS_IOHDR_NEED_RESCHED:
case NFS_IOHDR_NEED_COMMIT:
kref_get(&req->wb_kref);
nfs_mark_request_commit(req, hdr->lseg, &cinfo);
break;
default:
nfs_release_request(req);
}
nfs_unlock_and_release_request(req);
}
Expand All @@ -755,7 +749,6 @@ static void nfs_write_sync_pgio_error(struct list_head *head)
while (!list_empty(head)) {
req = nfs_list_entry(head->next);
nfs_list_remove_request(req);
nfs_release_request(req);
nfs_unlock_and_release_request(req);
}
}
Expand Down

0 comments on commit b2a0f17

Please sign in to comment.