Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5bbf5d39f88af9e8173f7331a3741a8b3ff16a1c
Commit:     5bbf5d39f88af9e8173f7331a3741a8b3ff16a1c
Parent:     b9b1f8d5930a813879278d0cbfc8c658d6a038dc
Author:     David Howells <[EMAIL PROTECTED]>
AuthorDate: Thu May 10 03:15:23 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Thu May 10 09:26:52 2007 -0700

    AFS: further write support fixes
    
    Further fixes for AFS write support:
    
     (1) The afs_send_pages() outer loop must do an extra iteration if it ends
         with 'first == last' because 'last' is inclusive in the page set
         otherwise it fails to send the last page and complete the RxRPC op 
under
         some circumstances.
    
     (2) Similarly, the outer loop in afs_pages_written_back() must also do an
         extra iteration if it ends with 'first == last', otherwise it fails to
         clear PG_writeback on the last page under some circumstances.
    
    Signed-off-by: David Howells <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 fs/afs/rxrpc.c |    2 +-
 fs/afs/write.c |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index 04189c4..1b36f45 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -294,7 +294,7 @@ int afs_send_pages(struct afs_call *call, struct msghdr 
*msg, struct kvec *iov)
                        put_page(pages[loop]);
                if (ret < 0)
                        break;
-       } while (first < last);
+       } while (first <= last);
 
        _leave(" = %d", ret);
        return ret;
diff --git a/fs/afs/write.c b/fs/afs/write.c
index aa03d43..67ae4db 100644
--- a/fs/afs/write.c
+++ b/fs/afs/write.c
@@ -669,7 +669,7 @@ void afs_pages_written_back(struct afs_vnode *vnode, struct 
afs_call *call)
        pagevec_init(&pv, 0);
 
        do {
-               _debug("attach %lx-%lx", first, last);
+               _debug("done %lx-%lx", first, last);
 
                count = last - first + 1;
                if (count > PAGEVEC_SIZE)
@@ -701,7 +701,7 @@ void afs_pages_written_back(struct afs_vnode *vnode, struct 
afs_call *call)
                }
 
                __pagevec_release(&pv);
-       } while (first < last);
+       } while (first <= last);
 
        _leave("");
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to