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.
1) Removal of unused variables
2) some NT ifdef cleanup
3) use of size_t rather than int to store the result of strlen()
4) some bugs that really only occured when errors occured.
5) some functions were implicitly declared as 'int' but doing a
"return;" Some I declared as 'void' and prototyped them; some I
just returned a value.
====================
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.
====================
according to jeff:
- Renames the top-level 'install' target to 'build'. This should be
transparent, since no one should be using that.
- Improves on Sam's dirpath patches, by splitting out server binaries
into separate bin, sbin, and libexec directories in GCS mode (these
are all /usr/afs/bin in Transarc mode).
- Updates the top-level 'all' target so that it builds the software
but does not generate a dest tree. Top-level 'lib' and 'include'
directories are generated to hold the intermediate libraries and headers
used during the build.
- Adds a new top-level 'install' target, which installs things in the
appropriate directories under ${DESTDIR}, based on configure's install
directories plus the extras added by Sam's patch.
- Adds a new top-level 'dest' target, which creates an old-style dest
directory under ${DEST}. The ${DEST} variable defaults to the
traditional value of ${SRCDIR_PARENT}/${SYS_NAME}/dest. Note that
this variable used to be called ${DESTDIR}; it was renamed to avoid
conflicts with the de facto standard usage of ${DESTDIR}.
====================
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.
====================
fix missed makefile
====================
update another missed file
====================
eliminate bogus escaping
====================
get rid of another bogus escape
====================
remove unused include directory
====================
get rid of no longer used libdir
====================
remove unused incdir
====================
fix up some problems for make compatibility and missing trailing /
====================
put afs.exp in the right place
====================
remove bogus afssrvdir reference
====================
update dest version of output
====================
update ref to libexecdir
====================
kill refs to afssrvdir
====================
convert missed LIBDIR to TOP_LIBDIR
====================
remove explicit INSTALL and use makefile.@sys value instead
====================
except it's helpful to actually include makefile.@sys
add ignore_uid (like ignore_root) plus set_token (set token in auth step instead of setcred), refresh_token (no new pag), use_klog (fork a klog child), no_unlog, remainlifetime (sleep before deleting creds at logout)
Sam's notes:
"Here is a patch that supports directory paths, documentation for the
above and decanonicalization of of supplied paths. Here are tests I
have run:
* Build with both transarc and non-transarc paths and examined
dirpath.o
* Build with roughly FHS-style paths and tested on Debian
* confirmed that bos salvage works even when salvager not in
/usr/afs/bin
(it gets the log correctly too)
* confirms that bos getlog can get logs from /usr/afs/logs even when
/ur/afs/logs
is /var/lib/openafs/logs
* confirmed that bos getlog can get /etc/motd
"
ordering of dependancies caused ${DESTDIR}/include/afs to not exist in
time, masked if you built into an existing destdir. so let's make
the makefile simpler and more logically paraallel.
====================
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.
====================
get rid of cases where we'd end up with two / because of DESTDIR pasting
macroize calls to rm
====================
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.
====================
====================
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.
====================
at build time, create a subtree for use later which can be used to
build *only* kernel modules, but only for the afs sysname you were building
for in the first place currently.
with minor correction by shadow@dementia.org to install the module, but
we now create a loadable kernel module for dux
====================
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.
====================
clean up all the makefiles to remove bogus targets, eliminate trailing /
requirement from DESTDIR, avoid needing to pass things like DESTDIR around
between makefiles
====================
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.
====================
1. Version control (Win9x & Windows NT/2000)
NTMakefile.i386_win95 and NTMakefile.i386_nt40 added AFSPRODUCT_VERSION
variable, setting this will propagate through the software by setting
the product version for the installation and client dialog boxes. In
particular it will provide correct notification if Win2K installation is
being upgraded, reinstall or downgraded.
Version information shows up in the following ways:
Welcome dialog during installation
Properities page for Install.exe (Windows Installation routine)
Windows Add/Remove Dialogs application list
AFS Control Center and Client dialog boxes
See README-WIN9X.TXT or README-NT.TXT for further information on how to set thi
s
variable.
2. CellServDB (Win9x & Windows NT/2000)
The installer can choose between various sources for CellServDB:
a) Previous installed file, afsdcell.ini(WinNT/2000) or CellServDB(Win9x).
b) File that comes with the installation package (recent copy from grand.centra
l.org)
c) Download a the file from the Web (default http://grand.central.org/dl/cellse
rvdb/CellServDB).
d) Browse for a file
3. Drive Mapping (Win9x & Windows NT/2000)
The installer can choose up to two drive mappings during the installation
process. Default is map Z: to AFS root and U: to user home directory
4. Silent Running (Win9x & Windows NT/2000)
Setup.exe is capable of running silently (-s option); that is, it will use a pr
e-made
response script to drive its responses. You can also do a normal installation
with
the record option (-r) to build a sample response file.
The installation routine has been improved to accept a modified response file s
o the
administrator can setup up additional drive mappings including substituting the
user's
loggin name into the path. By using a text editor an administrator can setup a
variable
path name that includes %LOGINNAME% in a path statement. This variable will be
substituted for the current user's login name. (Only at installation time.)
For example: if an administrator wanted to install AFS client on a machine that
had the
following mappings:
Z:=/
U:=/afs/afscell.org/u/username
Q:=/afs/afscell.org/general
Then follow these steps:
a) run setup with -r option and specify install to record responses into file s
etup.iss
setup.exe -r -f1setup.iss
b) Follow normal installation responses
c) Edit the setup.iss response file by modifying the "DRIVEPATH section".
This response file could start off looking like this:
d) Use the silent mode to install AFS (must log to windows as your user name e.
g. Frank)
setup.exe -s -f1setup.iss
HINT: Share name should be limited to 12 characters.
The response file terminate if the installation is in any way different; for
example,
the response is recorded on a clean machine and it is run on a system where
AFS
is already installed.
The execution is truly silent, except for a log file.
The last response is BootOption and if set to 1 it will reboot your machine!
Refer to additional documentation on silent/record in you Install Shield User's
Guide.
5. Fixed the Un-Installation bug that damaged the NetBT parameter registration. (Win2k/NT only)
6. Change Default selection for Win2000 to Client and Documentation only. (Win2
K/NT only)
The default installation is with Server and Control Center NOT selected.
7. Win9x Client Operation (Win9x only)
Win9x client has been changed to allow "connection" with out forcing
authentication. Previous implementation of the Win9x client had three steps to
the
connection process: 1) start client 2) obtain tokens 3) Map drives
The updated Win9x client can leave the username blank and select to Connect. T
herefore, only
the client will be started (without obtaining tokens). The user can still map
drives
(those that don't require authentication). This is particularity useful if you
want to
use a different routine to obtain authentication tokens or additional drive map
pings.
A command line option has also been added (-noid). This option Prevent selecti
on of
(Gray out) username/password. This will cause the client to start up without au
thentication.
By using both -noid and -connect allows the user to run the AFS client in login
script
that could provide Kerbos 5 authentication and addition drive mapping.
8. Installation (Win9x only)
Fix installation into paths that have space, e.g. \Program Files\Afscli
====================
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.
====================
"i think this was missed from a patch i sent a while back to cleanup
the iput() of afs inodes. i think the lock(vc->lock) needs to be in
osi_clear_inode() since osi_clear_inode is called a bit more often
than afs_delete_inode(). however, this like just might be uneeded
since no one has seen any problems apparently."