Fixes for xfsrestore to allow it to handle large tape blocks
(up to 2Mb) which are bigger than the default buffer size of 1 Mb.
The point of this is to make it easier to restore IRIX dumps
onto Linux - so won't explicitly need to set buffer size (-b).
This problem normally causes ENOMEM which wasn't handled very well.
Note: 1Mb buffer has greater chance of working with the
Linux scsi tape driver default config which is why we chose it
as the default.
- 2Mb often causes EOVERFLOW to be produced by tape driver
(need to set max_sg_segs=64, as mentioned in docs).
As a byproduct of the above, a bug was found in the linux
scsi tape driver. That is, after finding out that it has got
the wrong buffersize, it attempts to back space and try again.
However, backspacing in the first media file caused the
status flags to be stuffed - so a rewind is done in this instance.
Arggh.
Also fixes stupid bug in xfsinvutil.
Some associated qa tests.
--Tim
Date: Tue Oct 17 23:14:41 PDT 2000
Workarea: sherman.melbourne.sgi.com:/hosts/snort/build4/tes/slinx-xfs
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: 2.4.x-xfs:slinx:76390a
cmd/xfs/stress/046.out - 1.1
- Shows that listing of dump/restore dirs match.
cmd/xfs/stress/047.out - 1.1
- Shows results of pruning inventory.
cmd/xfs/stress/047 - 1.1
- Tests out invutil in interactive mode.
cmd/xfs/stress/046 - 1.1
- Checks that the owner/group and permissions are xfsrestored correctly
for symlinks. This would have shown up the lchown problem on symlinks.
I thought I'd noticed this problem before but hadn't written the test
yet.
cmd/xfs/stress/group - 1.48
- Add 046, 047.
cmd/xfs/dump/common/drive_minrmt.c - 1.24
- Add code to handle having tape blocks which are bigger
than the allocated buffer.
(handles ENOMEM in Linux)
cmd/xfs/dump/common/drive_scsitape.c - 1.28
- 1. Add code to handle having tape blocks which are bigger
than the allocated buffer.
(handles ENOMEM in Linux)
2. Modify backspace code to handle the case when it is in
the first media file. If it is in the first media file then
do a rewind instead of a bsf. This is a workaround for a
bug in the linux scsi tape driver where bsp'ing in the first
file does not set the status flags correctly (should be at BOT).
Kai Makisara suggested the workaround.
cmd/xfs/dump/invutil/invutil.c - 1.9
- Fix stupid porting bug - when changing gets() to fgets() - oops.
Added qa test 047 to test this. Previously my qa testing of invutil
used the -n option which didn't require interactive input.
cmd/xfs/dump/restore/content.c - 1.18
- Add a diagnostic mlog message that shows the session uuid obtained
from the inventory compared with the session uuid obtained from
the global header off the tape.
This was used to find out why xfsrestore wasn't finding the session
that I specified using the label - b/c it uses the session label
from the inventory which may have a different uuid !
cmd/xfs/stress/common.dump - 1.17
- Add _create_dumpdir_symlinks to create files and symlinks of
various permissions and ownerships/groupships for use by
046.
|