diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-07-21 17:07:33 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-07-21 17:07:33 -0400 |
commit | 608f593b1313080301b76875487af6da508f67a1 (patch) | |
tree | b775454cd4d1d380134c2d91ff79d0375987dc64 /fs/nfs/direct.c | |
parent | a1acbbf4adcd346f12fc567143eac90ef33f29b0 (diff) | |
parent | 84a1caf1453c3d44050bd22db958af4a7f99315c (diff) |
Merge tag 'v3.5-rc7' into next/boards
Linux 3.5-rc7
Prerequisite for samsung/board3 branch.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'fs/nfs/direct.c')
-rw-r--r-- | fs/nfs/direct.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c index 9a4cbfc85d81..48253372ab1d 100644 --- a/fs/nfs/direct.c +++ b/fs/nfs/direct.c | |||
@@ -484,6 +484,7 @@ static void nfs_direct_write_reschedule(struct nfs_direct_req *dreq) | |||
484 | 484 | ||
485 | list_for_each_entry_safe(req, tmp, &reqs, wb_list) { | 485 | list_for_each_entry_safe(req, tmp, &reqs, wb_list) { |
486 | if (!nfs_pageio_add_request(&desc, req)) { | 486 | if (!nfs_pageio_add_request(&desc, req)) { |
487 | nfs_list_remove_request(req); | ||
487 | nfs_list_add_request(req, &failed); | 488 | nfs_list_add_request(req, &failed); |
488 | spin_lock(cinfo.lock); | 489 | spin_lock(cinfo.lock); |
489 | dreq->flags = 0; | 490 | dreq->flags = 0; |
@@ -494,8 +495,11 @@ static void nfs_direct_write_reschedule(struct nfs_direct_req *dreq) | |||
494 | } | 495 | } |
495 | nfs_pageio_complete(&desc); | 496 | nfs_pageio_complete(&desc); |
496 | 497 | ||
497 | while (!list_empty(&failed)) | 498 | while (!list_empty(&failed)) { |
499 | req = nfs_list_entry(failed.next); | ||
500 | nfs_list_remove_request(req); | ||
498 | nfs_unlock_and_release_request(req); | 501 | nfs_unlock_and_release_request(req); |
502 | } | ||
499 | 503 | ||
500 | if (put_dreq(dreq)) | 504 | if (put_dreq(dreq)) |
501 | nfs_direct_write_complete(dreq, dreq->inode); | 505 | nfs_direct_write_complete(dreq, dreq->inode); |