will allow non root user to specify the 'allow_other' mount option
        ('-x' option of fusermount)
 
+       * Fix deadlock between page writeback completion and truncate
+       (bug found by Valient Gough with the fsx-linux utility)
+
 2004-07-01  Miklos Szeredi <mszeredi@inf.bme.hu>
 
        * Change passing fuse include dir to 2.6 kernel make system more
 
                req->out.h.error = -EPROTO;
        }
 
-       lock_page(page);
        if (req->out.h.error) {
                SetPageError(page);
                if (req->out.h.error == -ENOSPC)
        }
        end_page_writeback(page);
        kunmap(page);
-       unlock_page(page);
        fuse_put_request(fc, req);
 }
 
                /* 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;
                        }