|
@@ -1,7 +1,7 @@
|
|
|
/* Read files directly from the fast file system
|
|
|
Copyright (C) 1992 Free Software Foundation
|
|
|
|
|
|
- This file is part of GNU Tar.
|
|
|
+This file is part of GNU Tar.
|
|
|
|
|
|
GNU Tar is free software; you can redistribute it and/or
|
|
|
modify it under the terms of the GNU General Public License as
|
|
@@ -18,40 +18,5 @@
|
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|
|
|
|
|
|
|
|
-dev_t lastdev;
|
|
|
-ino_t lastino;
|
|
|
-
|
|
|
-struct dinode ino;
|
|
|
-struct fs fs;
|
|
|
-off_t offset;
|
|
|
-int device_fd;
|
|
|
-
|
|
|
-int *sindir, *dindir, *tindir;
|
|
|
-int sindirblk, dindirblk, tindirblk;
|
|
|
-
|
|
|
-read_raw_file (fd, buf, len)
|
|
|
- int fd;
|
|
|
- char *buf;
|
|
|
- int len;
|
|
|
-{
|
|
|
- struct stat st;
|
|
|
- off_t ntoread;
|
|
|
- int log_blkno, phys_blkno;
|
|
|
-
|
|
|
- fstat (fd, &st);
|
|
|
- if (st.st_dev != lastdev)
|
|
|
- new_device (st.st_dev);
|
|
|
-
|
|
|
- if (st.st_ino != lastino)
|
|
|
- new_inode (st.st_ino);
|
|
|
-
|
|
|
- /* Only read single blocks at a time */
|
|
|
- if (len > fs.fs_bsize)
|
|
|
- len = fs.fs_bsize;
|
|
|
-
|
|
|
- /* Prune to the length of the file */
|
|
|
- if (offset + len > ino.di_size)
|
|
|
- len = ino.di_size - offset;
|
|
|
-
|
|
|
- log_blkno = lblkno (&fs, blkno);
|
|
|
-
|
|
|
+
|
|
|
+
|