Messages in this thread Patch in this message | | | From | Miklos Szeredi <> | Subject | [PATCH 0/3] fuse: fixes for writepages | Date | Thu, 19 Sep 2013 18:11:53 +0200 |
| |
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; }
| |