Re: [AVFS] resurrection of AVFS

"Jan Uhlir" <[email protected]> Tue, 01 Mar 2005 13:24:16 +0100
Newsgroups gmane.comp.file-systems.avfs.user
Message-ID <S4040301AbVCAMYQ/[email protected]>
> > Well, as an API I could count functions from
> > "virtual.h". Correct me if I'm wrong.  There is no 
> > documentation but functions from
> > virtual.h seem s to behave like their libc counterpards.
> > Function virt_read() behaves like read() but with support 
> > for reading from archives, it takes the same arguments, 
> > it return the same error codes and so on.
> Yes, that is how it's supposed to work.
Any other header files bear interesting method for library users?
avfs.h?
cache.h?


> > Can I use AVFS for reading ordinary (real) files from
> > local? I hope I can.
> 
> Yes though there are problems with this (see discussion with
> Ralf Hoffmann).
The discussion dangled around problems with "magic
characters" in file names, didn't it?


> > How to set temporary directory for archive cache?
> /tmp is used, and this can't be changed currently.  There's a
> patch by Peter Kundrat that fixes this (attached), but there's 
> a possible buffer overflow in this, and I haven't yet integrated 
> a fixed version.
OK, I will look at it.
 
> > When is cache cleaned? Am I supposed to do it explicitly?
> >  fd = virt_open("/#avfsstat/cache/clear",
> >  O_WRONLY, 0);
> >     res = virt_write(fd, "1", 1);
> >     res = virt_close(fd);
> > ..striped function flush_cache() in runtest.c
> 
> Yes.  This is equivalent to 
> "echo 1 >  /#avfsstat/cache/clear"
There is no direct way to do it like av_cache_clear(..)?

 
> >Is some kind of server started to keep tracks of opened
> >archives? 
> >(suppose using avfs as library, no avfscoda, preload or
> >fuse)
> 
> No.  If you want to have persistent cache, then you must 
> create a ...
OK, that is fine. I would to write wrapper for KDE IO layer
(kio_slave), and kio_server is intended to care. I have just to
implement right method in my kio_avfs, to clear cache and 
so on.

> 
> >From sourcecode organisation it looks like AVFS comes in four 
> >flavours.
> > - library (layer libary above some functions from glibc)
> > - avfscoda
> > - preload (overload some methods in libc/glibc, so 
> >   applications use avfs transparetly without)
> > - fuse module
> > 
> > In documentation only flavours 2 and 3 are mentioned!
> > 
> >From further investigation of mail-lists - only flavour 1 is fully
> >operational now, flavours 2 - 4 seems not to be fully 
> >operational
> >(or not operational at all) in newer glibc and kernels 
> >(>2.6.x).
> 
> 1 (libavfs) is system independent, and hence should work in any UNIX
> like environment. 
That is the most important for me.


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click