Commit Graph

7995 Commits

Author SHA1 Message Date
Jeffrey Altman
5fce5754ce Windows: Finish converting vol apps to pthread only
The src/vol directory on Windows is one of the rare examples
where a single directory builds both lwp and pthreaded versions
of libraries and executables.  With this patchset the executables
are fully converted from lwp to pthread.  This requires that
afsrpc.dll include the pthread implementations of the threadname,
fasttime, and lock implementations from the LWP directory.
The inclusion within afsrpc.dll permits the dviced and
dvolser directories to avoid rebuilding those object modules.

Change-Id: I70c6e9ec346b5d9ef05d2400ddaf21e33a0c67a4
Reviewed-on: http://gerrit.openafs.org/3181
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-29 09:46:08 -07:00
Rod Widdowson
50b6a116a1 windows: native versions of ih_pread and ih_pwrite
Separate the windows code out in ihandle.c to reduce dependency on ntops.

As an aid to future threading issues, pass the offset in an OVERLAP
rather than doing a separate SetFilePointerEx.

Change-Id: I225387a574b1301516a9313838bbcb86e9e14b8d
Reviewed-on: http://gerrit.openafs.org/3176
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-29 09:45:51 -07:00
Jeffrey Altman
e8991ff828 vol: Use OSI_NULLSOCKET and not -1 to indicate invalid fssync fd
The FSync file descriptor is an osi_socket which has an invalid
value of OSI_NULLSOCKET which is not necessarily -1.  Be sure to
compare against OSI_NULLSOCKET and not -1 when checking an invalid
value.

Change-Id: I5b7531e690ea06046b337222b52a5013c7f8802e
Reviewed-on: http://gerrit.openafs.org/3179
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-29 09:45:35 -07:00
Jeffrey Altman
d21dd16789 vol: Always use INVALID_FD to indicate an invalid fd
file descriptors on Windows are not ints and therefore
cannot be safely compared against -1.  Always use INVALID_FD
which is -1 on UNIX and INVALID_HANDLE_VALUE on Windows.

Change-Id: I8788f95817ee45367f04f4b90b4e6625c5a39dca
Reviewed-on: http://gerrit.openafs.org/3178
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-29 09:45:19 -07:00
Simon Wilkinson
37a7b75934 Import: Add roken files from heimdal
Add the necessary files to our import list such that roken can be
built as a standalone library.

Change-Id: Ia9b5b14c618f4ac47eb99bd500d6465b6b25e4dd
Reviewed-on: http://gerrit.openafs.org/3189
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-29 09:10:09 -07:00
Simon Wilkinson
96e95c4000 shlib-build: Add ignore option
Add an option to shlib-build to ignore missing symbols in the map file.
This is already the default on some platforms, but others (such as
Darwin) require that all symbols in the mapfile be present in the
objects. This is a pain for libraries such as libroken, which will
have different symbols on different platforms.

Specifying -i adds the necessary magic to Darwin's ld to relax this
check. Changes may also be necessary for other platforms, but I
don't currently have those available for testing.

Change-Id: Ieaff8ed6dd4e16dfc420b90b85e4471952d83bd2
Reviewed-on: http://gerrit.openafs.org/3188
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-29 09:09:54 -07:00
Marc Dionne
e30e916e20 ubik: Set but not used variables
Fix warnings, remove unused variables and code.

Spotted by gcc 4.6

Change-Id: I0a055c5f0fec34993c81f2dcf8f976cba5a31c8b
Reviewed-on: http://gerrit.openafs.org/3185
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-29 09:04:25 -07:00
Marc Dionne
b88e6cadf1 bucoord: Set but not used variables
Remove unused variables

Spotted by gcc 4.6

Change-Id: If86786ba41401553994fb531b83164b5dfdc079a
Reviewed-on: http://gerrit.openafs.org/3184
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-29 09:04:15 -07:00
Marc Dionne
783d560eef xstat: Set but not used variables
Remove unused variables.

Spotted by gcc 4.6

Change-Id: Ibe26d3c58027704d525424a15f71ae954a5c2be4
Reviewed-on: http://gerrit.openafs.org/3183
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-29 09:04:04 -07:00
Ben Kaduk
832607318b FBSD: fix dumb panic when we can't pfind rxk_Listener
The process is only returned locked if the process is found.
Don't try to unlock it if it's not found.

Change-Id: I3911955561d0d97e8080bcd18b4e4393b19ad860
Reviewed-on: http://gerrit.openafs.org/3186
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-28 19:57:05 -07:00
Derrick Brashear
7e37c1a2f7 explain yacc build product dependency so it is not removed
in order that our .c.o rule applies, force yacc source to
not be built directly into an object.

Change-Id: I9d0722ae74726feef92b1bc7eb7647ce7f97633b
Reviewed-on: http://gerrit.openafs.org/3149
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-28 14:27:04 -07:00
Marc Dionne
0cc3cc9412 bucoord: parallel make fix
Fix an instance of a Makefile rule with multiple targets.
This can cause a parallel make to fail when two instances of
compile_et compete to write the same output files.

Spotted by a build failure with a corrupt bc.h header.

Change-Id: I4adee125a82d640bc78f15c77494a22157cf7f5d
Reviewed-on: http://gerrit.openafs.org/3165
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-28 14:26:22 -07:00
Rod Widdowson
68aace4054 Windows: fix built in touch
Recent versions of windows add a whole bunch of attributes above
A_ARCH.  (FILE_ATTRIBUTE_NOT_CONTENT_INDEXED was what bit be but
encryption of compression would do it).

This makes ~_A_ARCH not a good choice for testing nonwritability
of a file - so files with these new attributes just get silently ignored.

Using an explicit mask is much better.  So do that.

Change-Id: Ie176ffae1995dd50c70319e196c0d30420733ccf
Reviewed-on: http://gerrit.openafs.org/3182
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-28 10:46:37 -07:00
Rod Widdowson
e1ed8ab1d9 windows: preserve lasterror prior to calling free
free() destroys GetLastError, so preserve it before giving back all the
buffers.  Then if the create process failed we have something sensible to
log.

Change-Id: Ibb8bb870230f9c4e96f5ec9d4948552616cd7456
Reviewed-on: http://gerrit.openafs.org/3175
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-27 15:22:26 -07:00
Jeffrey Altman
46cf6c8f36 don't duplicate work of ctime_s
on windows we use ctime_s for ctim'ing to a buffer. except we
allocate an extra buffer. "uh"

Change-Id: Ic40583814d0e1d05d7c98cde09855c036045208e
Reviewed-on: http://gerrit.openafs.org/3174
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-27 12:27:26 -07:00
Derrick Brashear
9749e5284c viced don't double-print start time
side effect: remove the version which breaks on 64 bit windows

Change-Id: I8a1d2cde1f2eebe3242b26d0c8b62e39bfc7dfec
Reviewed-on: http://gerrit.openafs.org/3173
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-27 12:27:15 -07:00
Heimdal Developers
b3c21294f4 Import of code from heimdal
This commit updates the code imported from heimdal to
a3afa695ee3eb1ff5ad8de3e80c20d5049fce934 (switch-from-svn-to-git-1619-ga3afa69)

Upstream changes are:

Chas Williams (CONTRACTOR) (1):
      hcrypto: struct x64 doesn't need bitfields

Love Hornquist Astrand (1):
      Switch to ULL

Simon Wilkinson (1):
      hcrypto: Flag 64bit bit constants as long long

Change-Id: Ifc11c14942a2b283d7f5879de5bf88f53b290512
Reviewed-on: http://gerrit.openafs.org/3100
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-27 12:26:34 -07:00
Simon Wilkinson
c5eb4247a5 Improve commit messages for git imports
Improve the quality of the commit messages produced by git import
by adding an explicit author (obtained from the $module-author file),
and by including a list of all of the upstream changes that are being
imported.

Change-Id: I73516865144eb6ecd631822d1103a9b18d01b049
Reviewed-on: http://gerrit.openafs.org/3099
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-27 12:26:17 -07:00
Derrick Brashear
34767c6a0f down with assert, up with osi_Assert
because NDEBUG breaks things which happen inside an assert,
be done with that. instead, call osi_Assert wherever possible.
doesn't work for code which builds before rx; those cases we handle
by ensuring no operations happen inside the assert(). side effect:
move all pthread operations wrapped in asserts to MUTEX_mumble and
CV_mumble calls where those exist, so the assertions happen all in
one set of macroes.

Change-Id: I9fd8a0fdfdaed5ed55de3e5c0c4673d4714e7441
Reviewed-on: http://gerrit.openafs.org/3001
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-27 10:22:31 -07:00
Jason Edgecombe
bd1657fb9d Quickstart Guide: misc. fixes
* The update server is optional
  * Only worry about fsck when using inode-based storage
  * Add a space where needed

Change-Id: Idacd220139f2b5c622831004cb38bf5f8a1dafc5
Reviewed-on: http://gerrit.openafs.org/3164
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Jason Edgecombe <jason@rampaginggeek.com>
2010-10-26 20:19:28 -07:00
Derrick Brashear
103de35cbc kill defunct tools directory
the "old" rpm building tools are so sad as to be useless.
put them out of their misery.

Change-Id: I1f763a7907235fe2b178ee07b8ad4e5a6f165d24
Reviewed-on: http://gerrit.openafs.org/3162
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-26 19:42:45 -07:00
Jeffrey Altman
96d120e008 Windows: 1.5.78 Change Log summary
Change-Id: Ie4e6131dae25c5b17b9f4cd5c8667a03ef4ecded
Reviewed-on: http://gerrit.openafs.org/3161
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-26 17:27:25 -07:00
Jason Edgecombe
9c32ac52f1 Quickstart guide: use yum install from openafs repo
Change-Id: Icd8b3c2a60e2cd751da00056cfc3e11e90472ec6
Reviewed-on: http://gerrit.openafs.org/3159
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-26 15:18:11 -07:00
Jeffrey Altman
e848f3c216 Windows: Fix math error in rx_Writev processing
LICENSE MIT

Change-Id: I0c1c54d131530843b62d6494f313070243890605
Reviewed-on: http://gerrit.openafs.org/3148
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-26 08:36:48 -07:00
Simon Wilkinson
36e2d13b55 rx: Don't let timeouts force fast recovery
The current RX implementation goes into fast recovery whenever a
timeout occurs. This is incredibly wasteful, particularly on fast
connections. So, remove this in favour of TCP style behaviour.

Change-Id: I7afc08b69e7e1df80a38ac731af57ce91072a184
Reviewed-on: http://gerrit.openafs.org/3138
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-26 08:11:51 -07:00
Simon Wilkinson
e7066a9c30 rx: Fix starting of transmit timers
The code used to start the transmit timer once for every set of packets
that it sends. However, these packets might be sent individually or in
clumps, with blocking for sendmsg, and on peer->lock, between each set
of packet sends. This has the effect of, even on a very stable network,
producing a high degree of variation in RTTs and timeouts. This is a
particular issue where the connection size is larger, as the number of
packets being sent individually under the one timer grows too.

Fix this by moving timer initialisation to SendList. This already takes
the peer lock, so obtain the timeout value here too. This means that
each jumbo gram, or individual packet (where jumbograms are disabled)
is sent with its own start time, and stabilises RTTs.

Change-Id: Ifc8242211cedad9b52a66a44bbdee400130ab40b
Reviewed-on: http://gerrit.openafs.org/3137
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-26 08:11:14 -07:00
Simon Wilkinson
802d50bc4e rx: Refactor transmit queue wakeup
Refactor all of the places where we wake up the transmit queue into
a common helper function.

Change-Id: I1a2ca2bf1e6268dcaf90961a8a88bd4165519503
Reviewed-on: http://gerrit.openafs.org/3136
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-26 08:10:47 -07:00
Simon Wilkinson
e84193ca2a rx: Fix resend accounting
rxi_Start flagged itself as 'resending' whenever it flushed the
transmit queue due to a resend event. However, it would flush the
entire transmit queue at this point, rather than only transmitting
packets that require a resend. When running with large window sizes
this results an a large number of packets erroneously being marked
as resent.

Instead, let SendXmitList decide whether a packet is being
retransmitted by using the presence of a serial number. This takes
advantage of the fact that a retransmitted packet must be the only
entry in a packet list - we just flag the packet list, instead of
having to maintain counters for each individual packet.

Change-Id: Id8e87b8efa87f5dfec2e51b7983a9fd6b1a5c4c5
Reviewed-on: http://gerrit.openafs.org/3135
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-26 08:09:12 -07:00
Simon Wilkinson
ad3b5997c6 rx: Use a structure for the xmit list
Switch to using a structure to hold the xmit list so that it's a
little bit clearer what the rxi_SendXmitList function is actually doing

Change-Id: I84fd92e216db479121447132402597056410596b
Reviewed-on: http://gerrit.openafs.org/3134
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-26 08:08:10 -07:00
Jeffrey Altman
1664a2642b Windows: move debug break in afsd_notifier
move the debug break before the cache dump occurs
so that a debugger will be signalled faster when
a panic condition occurs.

Change-Id: I25634616e85f036d019e4d932074e52157570087
Reviewed-on: http://gerrit.openafs.org/3147
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-26 06:42:30 -07:00
Ben Kaduk
2f6be821ff FBSD: band-aid vnode locking in lookup
The lock order requires that we acquire vnode locks from the root
towards the leaf.  When looking up "..", this requires that we
unlock the directory before locking the child, otherwise we
are susceptible to deadlock.
This is only a band-aid, as afs_vop_lookup should be rewritten.

Change-Id: Ie99a677978370488f8edc7128014b89abc00a56c
Reviewed-on: http://gerrit.openafs.org/3035
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-25 21:41:00 -07:00
Ben Kaduk
5bf95621ae Fix build on systems with .y.o rules
On systems with system .y.o rules (such as FreeBSD), the system
rule for making error_table.o from error_table.y can bypass
AFS_CCRULE and thus fail to pull in the necessary include paths
for compilation.  Present an explicit dependency on error_table.c
to force that file to be generated, and then our .c.o rule gets
used as desired.

Change-Id: I88a6cf15441e0bacd73888b941d6c268786c5d2a
Reviewed-on: http://gerrit.openafs.org/3145
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-25 21:40:12 -07:00
Ben Kaduk
f70d9181d3 Complete change from dcb40c9fb8 for FBSD
Many conditionals involving osi_fsplock were changed to depend
on AFS_PRIVATE_OSI_ALLOCSPACES instead of constants or other
things (like AFS_FBSD_ENV).  The condition on the initializaion
in afs_init was changed but not the declaration in afs_prototypes.h,
breaking the build on FBSD.
Use the same conditional in afs_prototypes.h, fixing the FBSD build.

Change-Id: I28d5d3be4f1b2fdb8aca0834df7d8fc65f0d0146
Reviewed-on: http://gerrit.openafs.org/3146
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-25 21:39:35 -07:00
Jeffrey Altman
b743b32b8b Windows: Add version number to event log start pending message
LICENSE MIT

Change-Id: I6a2eca99cf1db9792eb76b04adbc87c4b64aa483
Reviewed-on: http://gerrit.openafs.org/3034
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-23 22:00:14 -07:00
Jeffrey Altman
f943a4eb52 Windows: register idle dead timeout error
be like the unix cache manager and set an error code
so idle dead time is enforced on sending.

LICENSE MIT

Change-Id: I2d78f3a0f6e30147c0816259b45b6b95a3d4f79c
Reviewed-on: http://gerrit.openafs.org/3033
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-23 13:41:27 -07:00
Asanka C. Herath
1418b4fec2 Windows: Backup and restore configuration across installs
The MSI installer for OpenAFS does not preserve configuration data
across installs.  This patch creates a backup of specific
configuration registry values when uninstalling OpenAFS and uses this
backup when subsequently installing OpenAFS.

Change-Id: Ie30f8f7f0eada3f0aeef2341b04aca55657ec864
Reviewed-on: http://gerrit.openafs.org/2977
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-23 13:35:22 -07:00
Jeffrey Altman
2c12b80a4f Windows: Make Rx PMTU discovery configurable; disable by default
Disable PMTU discovery by default.  Permit it to be enabled
with the RxPMTUDiscovery TransarcAFSDaemon\Parameter value.

LICENSE MIT

Change-Id: I0529a77e288ba8cd6cf8d0c2e2e9c0c8e6e0f6ff
Reviewed-on: http://gerrit.openafs.org/3032
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-23 12:56:28 -07:00
Simon Wilkinson
58e7b85ab7 rx: Tidy up variables in RTT calc
We used to do rttp = &thisRtt, and then use rttp and thisRtt to
interchangably refer to the same data. This is just confusing, and
unnecessary. Replace all of the occurences of rttp with &thisRtt.

Take the opportunity to use the Clock_IsZero macro rather than doing
an explicit zero clock check.

Change-Id: If2e0d7b6dcf96f4e46bde083063115d675a4153f
Reviewed-on: http://gerrit.openafs.org/3031
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-23 12:56:03 -07:00
Simon Wilkinson
da18ca4175 rx: Fix bracing on rx_clock macro arguments
Add brackets around the arguments in the clock helper macros, so that
these can be called with more complex parameters.

Change-Id: I09b333dcde96ef56fab8d5ada89eb0744cdb1690
Reviewed-on: http://gerrit.openafs.org/3030
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-23 12:55:43 -07:00
Simon Wilkinson
290495fab1 rx: More improvments to RTT calculation
Move the decision about whether a packet contributes to the peer's
rount trip time into the CalculateRoundTripTime function, and improve
the criteria used.

Previously, we only computed the RTT if we had not retransmitted. This
is bad, because it means that places where we have backed off in order
to retransmit never actually lengthen the RTT, and so the RTT is kept
artificially low, and we see a large number of retransmits. Instead,
use the serial of the ACK packet to determine which transmission is
being acknowledged, and if it is the first, or the last, transmission
use the appropriate sent time to calculate the RTT.

If we have no serial in the ACK (for a delayed ack, for example), or
if the serial doesn't match (where a single acknowledgement is soft
acking a number of packets), fall back to only using the ack if the
packet has not be retransmitted.

Also, avoid multiple counting of packets which have arrived as part
of a jumbogram by only permitting the last packet in a jumbogram to
contribute to the RTT. This avoids giving the RTT of jumbograms more
weight than those of normal packets - doing so would pull down the
RTT, as it in effect favours packets which have not be retransmitted.

Change-Id: I6d978a118e2bd0694484376b586dd4eaa64cdd8c
Reviewed-on: http://gerrit.openafs.org/3029
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-23 12:53:46 -07:00
Jeffrey Altman
5c8981e040 Rx: Treat rx_minPeerTimeout not as a minimum but as padding
An improved RTT and timeout calculation algorithm is being
developed but until we have it, treat rx_minPeerTimeout not as
a minimum value for the timeout but as padding to be added to
the measured RTT when computing the peer timeout value.

With this change rx does not begin to send large numbers of
resends when the RTT begins to exceed the rx_minPeerTimeout
value.  Timeout triggered resends at the moment can force rx
into fast recovery mode which in turn kills performance.  It
is better to avoid that problem for now.

Change-Id: Iff5e81d7cf1366e1810f118bf4825274696769c9
Reviewed-on: http://gerrit.openafs.org/3026
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-23 12:44:15 -07:00
Jeffrey Altman
c8f47626e2 Rx: Fix socket() handling so errors are properly detected
socket() returns an osi_socket which on Windows is an
unsigned type (HANDLE).  Therefore, tests of osi_socket < 0
will never identify when the INVALID_SOCKET value is returned.
On Windows, the OSI_NULLSOCKET is assigned to INVALID_SOCKET.
Replace all comparisons of (osi_socket < 0) with
(osi_socket == OSI_NULLSOCKET) as a means of detecting errors.

In addition, do not pass socket() the protocol value 0 when
IPPROTO_UDP is what is desired.

Finally, perror() on Windows never reports any error from Winsock.
perror() is a CRT function.  To get the real socket error
WSAGetLastError() must be called and its value be written to
stderr.

Change-Id: Ibc392eeb733851f56dbc7398cb252a4753b95275
Reviewed-on: http://gerrit.openafs.org/3027
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-23 12:43:59 -07:00
Charles Hannum
046f230ed4 linux fh_to_dentry can return err
handle e.g. ESTALE from  fh_to_dentry (in this case via
d_obtain_alias and fat_fh_to_dentry) so we print a meaningful
error when we lose.

Change-Id: If9f53776e0df4bfecf704943110a62b8c98684ce
Reviewed-on: http://gerrit.openafs.org/3028
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-10-22 13:18:57 -07:00
Chas Williams (CONTRACTOR)
350620e947 afs: fix SOLARIS builds conflicting 'u' define
Including <sys/user.h> does the following (which is rather
unfriendly):

This causes problems for the tokenJar u member.  I renamed u to
content, but there might be better choices for the name.

Change-Id: I3c8cd97e5868ee1ba78c2b2c4951d1af08664b77
Reviewed-on: http://gerrit.openafs.org/3023
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-10-22 08:31:48 -07:00
Jeffrey Altman
e356090ba2 Windows: Use rx_Readv / rx_Writev
When USE_RX_IOVEC is defined, cm_BufWrite() will utilize rx_Writev()
instead of rx_Write() and cm_GetBuffer() will use rx_Readv() instead
of rx_Read() to improve throughput.

LICENSE MIT

Change-Id: Ib70dfd4fd7a79c9ce36ef4fd8f4bb46a946621fd
Reviewed-on: http://gerrit.openafs.org/2999
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-21 22:31:48 -07:00
Jeffrey Altman
6f3938e80a Windows: Fix i386_w2k and i386_nt40 path construction
Now that DEST and OBJ are defined in terms of AFSROOT
do not DESTDIR and OJT in terms of AFSROOT.

Change-Id: I196b4d0c93d2122c0b29f423213871db788c5ef5
Reviewed-on: http://gerrit.openafs.org/3025
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-21 13:27:11 -07:00
Jeffrey Altman
64f732764c Windows: Improve cm_SyncOpDone logging
Change-Id: I2b2b9fa5067ea0927bbbdf2dcad433ebb84d2a66
Reviewed-on: http://gerrit.openafs.org/3022
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-21 07:51:48 -07:00
Jeffrey Altman
5880a57627 Windows: remove unnecessary prototype from smb.c
Remove rx_StartClientThread() prototype.

Change-Id: I89377528a7497b06302bf8fa9cb71a192afc1c0a
Reviewed-on: http://gerrit.openafs.org/3021
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-21 07:51:20 -07:00
Jeffrey Altman
49e57b8c3b Windows: optimize cm_BkgDaemon()
In cm_BkgDaemon test for CM_SCACHEFLAG_DATASTORING before
cm_ServerAvailable() in order to avoid unnecessary work.

LICENSE MIT

Change-Id: I75f88212a18d765790c9435de17e3b0fa735a7ab
Reviewed-on: http://gerrit.openafs.org/3020
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-21 07:50:58 -07:00
Jeffrey Altman
dd01970f44 Windows: remove warnings from cm_daemon.c
Properly cast void * to long and int to LPVOID to avoid warnings.

Change-Id: Iaa48bd9247df21efbbed4422a156c67208c128d6
Reviewed-on: http://gerrit.openafs.org/3019
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2010-10-21 07:50:36 -07:00