Maxim,

Please review and test these.  I've appended them to writepages.v2 and for-next.

Here's a test patch for the rewrites stuff.  It simply disables the waiting in
fuse_page_mkwrite() and is quite effective in generating rewrites in my
testcase.

Thanks,
Miklos

---
 fs/fuse/file.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -1498,6 +1498,7 @@ static void fuse_writepage_end(struct fu
 
        mapping_set_error(inode->i_mapping, req->out.h.error);
        spin_lock(&fc->lock);
+       int count = 0;
        while (req->misc.write.next) {
                struct fuse_req *next = req->misc.write.next;
                req->misc.write.next = next->misc.write.next;
@@ -1505,7 +1506,10 @@ static void fuse_writepage_end(struct fu
                list_add(&next->writepages_entry, &fi->writepages);
                list_add_tail(&next->list, &fi->queued_writes);
                fuse_flush_writepages(inode);
+               count++;
        }
+       if (count)
+               printk("rewrite: %i\n", count);
        fi->writectr--;
        fuse_writepage_finish(fc, req);
        spin_unlock(&fc->lock);
@@ -1884,7 +1888,7 @@ static int fuse_page_mkwrite(struct vm_a
                return VM_FAULT_NOPAGE;
        }
 
-       fuse_wait_on_page_writeback(inode, page->index);
+       //fuse_wait_on_page_writeback(inode, page->index);
        return VM_FAULT_LOCKED;
 }
 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to