On Thu, Feb 18, 2010 at 07:34:59PM +0100, Juergen Lock wrote:
> On Wed, Feb 17, 2010 at 10:38:30PM -0800, Tim Kientzle wrote:
> > Juergen Lock wrote:
> > > 
> > >  ...  since bsdtar/libarchive know iso9660 I just did the command in the
> > > Subject.  It worked, but it was sloow... :(  Apparently it read all of
> > > the disc without seeking.  The following patch fixes this, is something
> > > like this desired?  If yes I could look how to do the same for Linux,
> > 
> > Juergen,
> > 
> > This is great!  If you can figure out how to get this
> > right, I would really appreciate it.  If you have a
> > tape drive handy, definitely test with that.  My first
> > attempts here actually broke reading from tape drives,
> > which is why the current code is so conservative.
> > 
> Hmm I can't test on a tape atm but if I look at the kernel,
>       http://fxr.watson.org/fxr/ident?i=DIOCGMEDIASIZE
> DIOCGMEDIASIZE is only handled for geom, xen block devices, old CD drives
> and pc98 floppies, and I'm pretty sure tapes don't use geom. :)
> 
> > Minor style comments:
> > >  else if (S_ISCHR(st.st_mode) &&
> > >     !ioctl(fd, DIOCGMEDIASIZE, &mediasize) && mediasize) {
> > 
> > Please be explicit:  S_ISCHR() && ioctl() == 0  && mediasize > 0
> > 
> > >   archive_read_extract_set_skip_file(a, st.st_dev, st.st_ino);
> > 
> > extract_skip_file isn't needed here; we don't read the
> > contents of device nodes.
> > 
> > Let me know as soon as you have something you're confident of.
> 
>  Ok here is a new version of the patch with these things fixed and the
> Linux case added:  (Linux case not tested yet, and yes I did this on
> stable/8.)

Ok just tested the patch on libarchive-2.8.0.tar.gz on debian sid
on /dev/sr0 (optical drive) and it worked.  (Had to use the tarball
from code.google.com since sid's own libarchive version still was at
2.6.something where the patch didn't apply...)

 Cheers,
        Juergen
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to