[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fuse-devel
Subject:    Re: [fuse-devel] curlftpfs and streaming writes (was FUSE and
From:       Miklos Szeredi <miklos () szeredi ! hu>
Date:       2007-11-26 12:19:28
Message-ID: E1Iwcvw-0007ZW-Bd () dorka ! pomaz ! szeredi ! hu
[Download RAW message or body]

> > i have implemented APPE with checking the size of the written file in 
> > flush() to see if the file has not been messed up.

Great.

> > premature flush() calls seem to happen quite often. for instance when 
> > nautilus copies a file. but with APPE it works.

OK, sounds good.

> ... however, i have completely removed buffered writes and also made 
> open(O_RDWR) work - at least for cases where the application doesn't 
> switch between reads and writes. also, writing to an existing file 
> works, but only when the application has truncated it to zero.

I agree, that without buffering ftpfs can only support a limited set
of writing patterns.  I also agree, that buffering should be avoided
whenever possible.

But I don't agree about completely disabling buffering, because there
may be a situation where an app does some strange writing pattern, and
it's not feasible to fix it (you can't expect the whole world to adapt
to ftpfs).

It's OK to limit the amount of buffering and return ENOMEM or some
similar error if the file doesn't fit in.  It is also OK to fall back
to disk buffering for bigger files, but the filesystem should at least
make some effort to support all kinds of I/O patterns.

Miklos

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
fuse-devel mailing list
fuse-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fuse-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic