projects
/
deliverable
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
cf1308f
)
NFS: Fix nfs_sync_inode_wait(FLUSH_INVALIDATE)
author
Trond Myklebust
<Trond.Myklebust@netapp.com>
Wed, 15 Nov 2006 22:31:56 +0000
(17:31 -0500)
committer
Trond Myklebust
<Trond.Myklebust@netapp.com>
Wed, 6 Dec 2006 15:46:28 +0000
(10:46 -0500)
Currently nfs_sync_inode_wait() will fail to loop correctly when we call
nfs_sync_inode_wait with the FLUSH_INVALIDATE argument.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/write.c
patch
|
blob
|
blame
|
history
diff --git
a/fs/nfs/write.c
b/fs/nfs/write.c
index 29d88209199d0944f7a1ba3cdc88f1df328ee407..9b8eb9373ad4ae5416e8b4cd2a55ecb0a9662fe6 100644
(file)
--- a/
fs/nfs/write.c
+++ b/
fs/nfs/write.c
@@
-1525,9
+1525,10
@@
int nfs_sync_inode_wait(struct inode *inode, unsigned long idx_start,
pages = nfs_scan_dirty(inode, &head, idx_start, npages);
if (pages != 0) {
spin_unlock(&nfsi->req_lock);
- if (how & FLUSH_INVALIDATE)
+ if (how & FLUSH_INVALIDATE)
{
nfs_cancel_dirty_list(&head);
- else
+ ret = pages;
+ } else
ret = nfs_flush_list(inode, &head, pages, how);
spin_lock(&nfsi->req_lock);
continue;
@@
-1540,6
+1541,7
@@
int nfs_sync_inode_wait(struct inode *inode, unsigned long idx_start,
if (how & FLUSH_INVALIDATE) {
spin_unlock(&nfsi->req_lock);
nfs_cancel_commit_list(&head);
+ ret = pages;
spin_lock(&nfsi->req_lock);
continue;
}
This page took
0.026551 seconds
and
5
git commands to generate.