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
it's ok to support a null request being passed in, but if a real one is
passed in we shouldn't analyze it when it's not the one we used when
making calls.
-- Add afs_osi_SleepSig, which returns EINTR when interrupted by signal.
-- Similar CV_WAIT_SIG for Rx code.
-- Implement afs_osi_SleepSig and CV_WAIT_SIG for Linux, Solaris.
-- Use afs_osi_SleepSig in afs_{UFS,Mem}Read, allowing user to interrupt
an AFS read if it's being handled by background daemon.
-- Balance the number of open & close braces in CV_TIMEDWAIT macros,
even though noone uses them.
-- Untangle parts of the macro forest by moving some of the Rx CV code
into rx_kmutex.c.
Block signals when sleeping in CV_WAIT() and CV_TIMEDWAIT(), similar
to the linux-avoid-signal-wakeups-while-sleeping-20020129 change for
afs_osi_Sleep().
Use filemap_fdata{sync,wait} directly (available in 2.4.5 and above)
rather than write_inode_now(), which steals afs inodes and puts them
on the global inode lists.
it was previously agreed that we wouldn't add gratuitous new sysnames unless things
(not just what the vendor calls the operating system) changed. precedent is
sun4m_412 still being "current" for sun4m_413, etc.