[PATCH 0/3] fuse: fixes for writepages

From: Miklos Szeredi
Date: Thu Sep 19 2013 - 12:12:15 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/