"apparently the rev 1 r5000 chips implement 'cvt' incorrectly. the irix
kernel works around this problem by checking each text page mapped into
memory and doing a fixup on the cvt instructions. it tries to maintain
a hash of these pages using fid2() or fid() if fid2() returns ENOSYS.
afs, in an effort to prevent people from doing checkpoints on an afs
filesystem, makes fid2() return EINVAL. this also keeps the kernel from
mapping executables that are in afs space on the broken r5000's.
this is the patch i have been using for the past couple years while
waiting for an official fix. it makes fid2() return ENOSYS, so you
now need to have to have v_ckpt. however i disabled the rest of the
CKPT code since i have no idea how well that code actually works.
additionally, this behavior is only functional on machines with the
'broken' r5000 h/w. i cant think of a better way to fix this problem
since i cant change the irix kernel."
let hash_enum iterate so we get the right interface
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
rxi_MatchIfnet() always returns 0 (i.e. not a match). so rxi_FindIfnet()
will always return 0 and the ADAPT_MTU code can never determine the
interface (and its mtu)
don't succeed configuring if we can't build for them
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
first pass at afs-nfs translator for solaris. it has not a prayer of
working. i don't really have time to work on it, hopefully someone will
see it and care.
based on complaint from and work with jimmy@e.kth.se
h_OtherHolds_r will never return 0 if we mask our own hold
bit before calling it. however we must be careful to mask before h_TossStuff_r
so we aren't still "holding" then
otherwise just release our hold
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
Modularize the Linux RC file(s) a bit. In particular, add more
options for larger caches, allow autogeneration of the cacheinfo file,
make sure AFS only starts if the network is running, add SuSE header
information, and cope with the Red Hat initscripts better (on Red Hat
only, but should work on all systems).
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
The result is that if afsd is started with "-dynroot", /afs
will be a locally-generated directory, with mountpoints for every
cell in CellServDB (and /afs/.cellname as the rw mountpoint). If
AFSDB support is also enabled, attempting to access /afs/foo will
cause the cache manager to do an AFSDB lookup on foo, similar to
an automounter. Cell aliases become symlinks to the real cell
names under /afs.
This patch adds support for "cell aliases": a cell alias allows a
single cell to be known by multiple names (one of them the primary).
This is useful in conjunction with AFSDB support, where you want all
the possible names for the same cell to share the same tokens, etc.
For instance, if the local resolver has "mit.edu" in its search
domain, an AFSDB lookup on cell "athena" will cause the primary
cell "athena.mit.edu" to be created, and "athena" made an alias
for it.
make the buffer cache release
the buffer hash lock before trying to open the corresponding file.
Since we're already holding a buffer cache entry, we can lock it
instead and let other threads obtain the big hash lock.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
use a single file for most of both configure scripts
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
The attached patch adds a program named 'livesys' to the venus directory.
This program has exactly the same interface as 'sys', but actually does a
pioctl to find out the current sysname instead of printing a value
compiled into it. It is intended for sites who want 'sys' to report the
active, locally-assigned sysname of the machine on which it is run.
The bosserver now logs the exit status of processes under its control.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
Messages generated as the result of assertion failures now include
timestamps.
- Adds the -crypt option, which causes rx connections to be encrypted
- Adds the 'vos setfields' command, which allows volume info fields to
be set. Currently, this command allows a volume's quota to be set,
and allows its dayuse counter to be manually cleared. At present,
no other changes are supported by the volserver RPC interface.
- Adds the 'vos changeloc' command, which allows the VLDB's idea of the
location of an RW volume to be explicitly changed without actually
moving the volume. This can be used in cases where the VLDB has the
wrong idea of the location of a volume for some reason. It is
somewhat more predictable and easy to understand than the syncserv
and syncvldb commands.
- Adds the -offline option to 'vos restore'. This option causes the
restored volume to be left offline. This functionality was already
present in the code but previously had no user interface.
- Adds the -readonly option to 'vos restore'. This option causes the
restored volume to be an RO volume. It is not permitted to restore
an RO volume when the associated RW volume already exists. While
it is possible to restore an RW volume where an RO volume exists,
caution should be used to avoid doing this with VLDB entries created
by 'vos restore -readonly', since such entries have their ROVOL and
RWVOL ID's set to the same thing.
This patch adds a "-long" option to rxdebug, to print out more verbose
output, and makes rxdebug print out more information about the Rx peers
when ran with "-long".
This patch provides better MTU selection on Solaris, by
actually going through the list of interfaces and picking
the correct MTU, rather than assuming 1500.
It also fixes a small bug in the server preference code,
which wasn't checking for IPv6 interfaces, and if there
were any IPv6 interface, it would believe all servers
were on the local subnet.
hopefully this will be the end
(at least for a while) of problems where every linux version requires a new
openafs release. the struct vnode is now dynamically generated by parsing the
linux/fs.h file and pulling out the struct inode, then rewriting osi_vfs.h
perhaps too careful. to fix potential crash in TDel and TAdd
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
based on observations of effects related to
afs-lookup-check-evalmountpoint-return-20010221 and affirmed based on
mail from Todd_DeSantis@transarc.com
this should reduce but perhaps not eliminate the VLRU cycle: increase
-stat parameter problem on Linux as it's not yet clear that this is the
only problem and circumstantially it is probably not.
this cuts rpc traffic in half for directories on which you have
no permissions and is capable of doing more if a useful way can
be conceived of caching errors.
currently bulkstat works thus:
say a directory has 100 files. bulkstat will on the first hit stat
the first 30 files, integrating the information if successful,
and when you hit file 31, repeat. meaning if you can read that 100 files
is 4 bulkstatus rpcs (3*30+10). if you can't, you do bulkstatus, get an abort,
then do fetchstatus on the file and find out why you lost. you go on and
try bulkstatus again this time for files 2-31 instead of 1-30. same failure,
meaning you do 2N rpcs for the N files. inlinebulk doesn't abort but instead
fills in stat info for any of the up to 30 files it can, and errors for
any it can't.
currently the client will pull out any stat info filled in,
and then return the error from the first file, meaning if you can't
read the directory we do N inlinebulk rpcs instead of N bulkstatus +
N fetchstatus rpcs. if the errors for the other 29 could be meaningfully
cached (and you have to be careful not to pollute information
such that it's not useful for someone in a different auth context) then
we could get down to the same 4 rpcs we have for success, but that's an
exercise for later give how the cache manager works.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
there were some cases where we falsely reported the BZNOENT from salvage-tmp
being cleanup up as "bos: failed to start 'salvager' (no such entity)"..
despite having just reported:
bos: salvage completed
-- /vicepX/AFSIDat/README is created the first time the fileserver
is started, rather than the second time.
-- For the namei fileserver, /vicepa/Lock/vicepa is created as
the lockfile. Previously, on Solaris, the raw device was
was being used for LockPartition(), and that breaks when
there isn't a corresponding device.
-- The VolPartitions and XVolPartitions volserver calls now return
the list of attached (rather than mounted) partitions. This is
consistent with the NT fileserver and removes duplicate code.
The actual magic for allowing the fileserver to attach non-mounted
partitions is to create /vicepX/AlwaysAttach.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
carefully avoid non vicep directories and/or partitions as it may get upset at
automounters or running cachemanagers!
previously and since 3.5 rx enhancements fileserver would delay 3 seconds
on sending an rx abort when the abort was the 11th or more occurance of
the same error on the same call. the problem was fetchstatus/bulkstatus
on a directory on which you have "l" but not "r" would take forever after the
first 5 files (bulkstatus and then fetchstatus on each file, 2*5=10)
so in FetchStatus and BulkStatus stubs we suppress repeated errors from
Check_PermissionRights *only*, which has the effect of suppressing the
problem without removing the theoretical benefit of avoiding letting any
one client throw requests at as as fast as we can abort them unless those
requests happen to be fetch/bulkstat requests which fail a permission check,
but in order to avoid that we'd also need to cache what they last tried
to stat, and then things would get ugly.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
The rxi_ReceiveAckPacket() change makes sure we have two extra fields
(the max and recommended packet sizes) hanging off the packet, rather
than just one.
The PKTFLAG_FREE stuff in rx_packet.c just initialized flags in case
PKTFLAG_ACKED somehow didn't get cleared there.
The wirevec changes are off-by-1 errors: there's p->niovecs iovecs
in a packet, from 0 (header) to p->niovecs-1, so p->niovecs doesn't
refer to a meaningful iovec.