* Change passing fuse include dir to 2.6 kernel make system more
robust (hopefully fixes problems seen on SuSE 9.1)
+ * Fix deadlock between page writeback completion and truncate
+ (bug found by Valient Gough with the fsx-linux utility)
+
+
2004-06-22 Miklos Szeredi <mszeredi@inf.bme.hu>
* Released 1.2
{
struct page *page = (struct page *) _page;
- lock_page(page);
if(out->h.error) {
SetPageError(page);
if(out->h.error == -ENOSPC)
}
end_page_writeback(page);
kunmap(page);
- unlock_page(page);
kfree(in);
}
/* FIXME: check sync_mode, and wait for previous writes (or
signal userspace to do this) */
if(wbc->nonblocking) {
+ SetPageWriteback(page);
err = write_buffer_nonblock(inode, page, 0, count);
- if(!err)
- SetPageWriteback(page);
- else if(err == -EWOULDBLOCK) {
+ if (err)
+ ClearPageWriteback(page);
+ if(err == -EWOULDBLOCK) {
__set_page_dirty_nobuffers(page);
err = 0;
}