this does fix some potential problems, even if none of them are the
CopyOnWrite problem. basically, ih_reallyclose() could reinsert a now-unref'd
fd handle into the wrong list when cleaning up, and this cleans up the code
considerably.
Don't spawn a separate kernel thread for rx kernel listener under
Solaris, but instead just use the afsd fork for the listener. Use
of newproc() is deprecated, according to Frank.Batschulat@Sun.COM.
Make h_Lookup_r return the host held, and ensure that it's not
deleted at that point; otherwise, the host may be deleted by
another thread between a call to h_Lookup_r and the time when
we actually get around to h_Hold'ing it.
Initial fakestat support (fake mountpoint directory attributes).
Useful for quickly stat'ing everything under /afs, for instance.
Reasonably tested on Solaris, and appears to work on Linux too.
Enable with 'afsd -fakestat'.
This adds /useexisting to use current AFS creds, bypassing the initial authentication
dialog box. It's useful if you're not running kaserver (i.e. if you've moved
over to kerberos 5) and can't authenticate again by the normal AFS means.
based on patch by Srikanth Vishwanathan and modifications based on suggestions
from Ted Anderson applicable to this part of the code.
the original theory we operated under, namely that negative dentries
could be banished entirely, causes file creation to stop working
under linux 2.2 kernels. reverting that change means we have to deal with
these negative dentries, and Srikanth's original suggested patch does so.
even though right now a vnode and an inode are basically but not exactly
the same, part of the usefulness of this change is the ability to convert
to inodes linked from vcaches later. make the macros fit with this view of the
fture
Verify that name lengths are at most AFSNAMEMAX and symlink
contents are at most AFSPATHMAX (notably, the Linux kernel
doesn't check this for us); bug report by nneul@umr.edu.
prototyping caught this; the usage is inconsistent with other cases and
i believe this is the correct fix. it's not clear to me why we weren't seeing
problems from this, though
to export syscalls as functions you need the magic exp file
====================
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.
====================
and also reinstall them for the user cache manager library
Allocate the exact string length needed for the string in symlink
contents, rather than assuming that symlink data never contains
nulls (or that it's of the length we expect).
drop locks when rxi_Alloc fails, and rework SRXAFSCB_GetCellServDB to use
afs_GetCellByIndex. He suggested same for GetLocalCell, and as long as cell 1
and not CPrimary is the local cell indicator that works, but I left that part
of the code as is for now.
based on report from mattiasa@e.kth.se who has the following feedback from
lha@e.kth.se:
Patch from Love to make filserver not loop on MUTEX_ENTER() in
rx_SetSpecific()
The problem is that on 2.4 the 'code' variable is over-written during
the path walk, such that by the time it's checking if the inode
exists, code is already '0'. But if the inode does not exist, code
should be ENOENT to show that the file does not exist.
====================
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.
====================
Nathan Neulinger [Tue, 26 Feb 2002 23:26:36 +0000 (23:26 +0000)]
Make the SRXAFS_* functions match prototypes by taking an
rx_call instead of rx_connection, and make CallPreamble()
type-safe by taking two arguments instead of magically
turning an rx_call into rx_connection.
Always verify that the client is fully reachable before talking
to it, in the fileserver. This prevents some additional lossage
cases with poorly-connected clients.
Disable same feature for other Rx services, since they don't
need to incur extra RTT delay.
a) a freebsd client that compiles, and to a certain extent, works. Should
not be used except by people doing freebsd client development
b) configure glue for freebsd 4.3, 4.4, and 4.5
c) freebsd tfileserver support. Note that, by default, this isn't very
interesting, as the supported freebsd pthreads are just as cooperative as
LWP. if you install the linuxthreads port and swap the MT_* variables in
osconf.m4, you will get a more traditional tfileserver though. configure
glue for that will be forthcoming at some point.
d) a maybe-fix that sets sin_len in sockaddrs on platforms that have them.
(and also a fix for the AC_PROG_CC issue which affects autoconf 2.13 and 2.5x
on same conf files issue)
Use autoconf to check for p_corefile in struct proc, rather than
assuming it exists in Solaris 7 and above; nneul@umr.edu reports
that it doesn't for some kernel revision.
somehow i suspect one of our platforms doesn't do volatile and i'll
regret this, but this stops linux i386 when afs_int32 is an int from
going off into la-la land when an Rx retransmit is needed
====================
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.
====================
undo. the bug was a little more subtle and my debugging code masked it