Re: [PATCH 0/3] fuse: fixes for writepages

From: Maxim Patlasov
Date: Fri Sep 20 2013 - 04:07:08 EST


Miklos,

On 09/19/2013 08:11 PM, Miklos Szeredi wrote:
Maxim,

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

Thanks a lot for efforts. I'll start to work on it now and send you feedback as soon as I get a progress.

Btw, adding fuse-devel to cc.

Thanks,
Maxim


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/