Commit Graph

4131 Commits

Author SHA1 Message Date
Jeffrey Altman
10c6021847 windows-fix-recursion-detection-20070822
handle symlinks to absolute paths
2007-08-22 17:09:53 +00:00
Jeffrey Altman
d467431115 windows-newfiles-20070822
add place holders for the B+ tree source files.
2007-08-22 16:59:16 +00:00
Derrick Brashear
c31cfea03d linux-module-error-handling-20070821
be more careful about what we call when, and clean up after ourselves
2007-08-22 03:16:26 +00:00
Derrick Brashear
34bbb13160 nfstrans-updates-20070821
FIXES 1480

fix the knfs error from the v/c/o pioctl changes
2007-08-22 03:12:13 +00:00
Derrick Brashear
2a9ef007a3 linux-modparam-269-updates-20070821
be consistent on 2.6.9 about which MODULE parm family used
2007-08-21 22:27:02 +00:00
Jeffrey Altman
8dd2300a78 windows-afskfw-20070821
return required value that was missing
2007-08-21 09:42:53 +00:00
Jeffrey Altman
d0f62da484 viced-remove-asserts-20070821
remove asserts testing the number of alternate interfaces.
2007-08-21 09:27:37 +00:00
Jeffrey Altman
e9607dcbc7 windows-smb-20070820
correct location of brace due to mis-application of patch
2007-08-20 19:47:05 +00:00
Derrick Brashear
d0a92c7bde find-dcache-just-hold-the-lock-slightly-longer-20070820
we go out of our way to hold xdcache to protect indexTimes elsewhere... there's
no reason to drop it here just before this...
2007-08-20 18:50:16 +00:00
Jeffrey Altman
da79b76e7d tviced-windows-20070820
build serialize_state.c
2007-08-20 18:35:59 +00:00
Alejandro R. Sedeño
5eff5f4ee8 krb4-64bit-tf-kth-or-mit-20070820
based on his patch for mit kerberos
2007-08-20 18:26:15 +00:00
Jeffrey Altman
4a9d15a2e4 windows-fix-recursion-detection-20070819
the recursion detection code did not take "." and ".." into account.
2007-08-20 02:00:48 +00:00
Jeffrey Altman
d71d37bad8 windows-fs_utils-20070819
update prototype for util_GetInt32 for consistency with src/utils/vosparse.c
2007-08-20 01:06:31 +00:00
Russ Allbery
a6fe83d9a6 no-kseal-20070819
Don't build or install kseal by default.  It's a debugging tool with very
limited utility.
2007-08-19 23:04:31 +00:00
Derrick Brashear
25ace7c2c7 aix-dont-use-root-vfs-for-anything-20070815
the cache may not be in /; we basically never need rootvfs
2007-08-16 04:51:06 +00:00
Jeffrey Altman
b20488de08 windows-fs-utils-prototypes-20070813
use ANSI prototypes and function declarations
2007-08-13 20:20:31 +00:00
Jeffrey Altman
35f91f1203 windows-service-manager-20070812
provide the windows service manager with shutdown hints in addition
to startup hints
2007-08-13 03:52:21 +00:00
Jeffrey Altman
a9e7bedcc9 viced-dafs-20070812
include viced_prototypes.h
2007-08-13 03:25:33 +00:00
Jeffrey Altman
c677b79931 windows-remove-is5-20070812
remove last trace of InstallShield5 from build rules
2007-08-13 03:11:55 +00:00
Jeffrey Altman
58d5f38b10 pts-20070811
remove SUPERGROUPS condition for compilation of pts commands:
  Interactive, Quit, Source, Sleep

fix the assignment of 'source' to permit it to function

rename functions to avoid conflicts with Win32 API on Windows

replace bcopy and bzero with memcpy and memset to permit compilation
on Windows

replace ubik_Call(xxx) with ubik_xxx() (testpt.c)

add -DSUPERGROUPS and map.c to NTMakefile
2007-08-12 00:39:33 +00:00
Jeffrey Altman
e7ff4185a5 windows-adjustable-block-size-20070810
New registry value "BlockSize" can be used to specify an alternative
block size.  The default is 4K.  A larger blocksize will be needed if
you want to support a 6TB cache.

Also extend the service startup timeout hint to two minutes to give
the AFS client service more time to startup successfully when the
cache is really large.
2007-08-10 21:38:20 +00:00
Jeffrey Altman
7a042f3ce4 windows-wix-20070810
add a separate description string for the 32-bit afs shell extension
2007-08-10 13:36:24 +00:00
Derrick Brashear
493cad12aa viced-cleanup-head-20070810
fix demand attach rwlock code on macos, fix host tracking code everywhere

only applies to head and 1.5
2007-08-10 05:11:35 +00:00
Jeffrey Altman
25a64a7eb2 windows-aklog-20070809
correct an error message
2007-08-09 23:53:07 +00:00
Rainer Toebbicke
6811175f37 64bit-ticket-file-20070809
fix the ticket files we write on 64 bit
2007-08-09 15:56:51 +00:00
Jeffrey Altman
377689b39a windows-dirty-buffer-optimization-20070808
when storing dirty buffers only store the bytes that are dirty

increase the default chunksize from 128KB to 1MB

remove OVERLAPPED field from cm_buf_t.  It was unused.

add a dummy pointer in order to ensure data structure compatibility
between the checked and release builds.
2007-08-09 06:33:17 +00:00
Jeffrey Altman
d51feff4b2 viced-hash-20070808
(1) fixes a bug that could cause a 'host' structure to not be removed
from the global host list if the 'host' did not possess an interface
list. This would happen with older AFS clients that do not support the
WhoAreYou family of RPCs. Windows clients older than 1.3.80 and old
Transarc UNIX clients.

(2) fixes a bug which could result in ViceLog being called with an
uninitialized 'hoststr' buffer as a parameter.

(3) ensures that only addresses known to belong to the 'host' are
added to the address hash table.  The list of addresses provided by
the client are stored as alternates and are only used when searching
for a client that is no longer accessible on the primary address.
These addresses are not stored in the address hash table within
initInterfaceAddr_r().

The addresses provided by the client should not be added to the hash
table because they have not been verified as belonging to the 'host'
that provided them.  The contents of the list may in fact be completely
unreliable.  Consider the existing UNIX clients that generate the list
at startup and never alter it even after the client has migrated to a
different network.  If two client's both claim the same address,
lookups by address may fail to find the correct one.

a. The client list might contain private address ranges which
are likely to be re-used by many clients allocated addresses
by a NAT.

b. The client list will not include any public addresses that
are hidden by a NAT.

c. Private address ranges that are exposed to the server will
be obtained from the rx connections that use them.

d. Lists provided by the client are not necessarily truthful.
Many existing clients (UNIX) do not refresh the IP address
list as the actual assigned addresses change. The end result
is that they report the initial address list for the lifetime
of the process. In other words, a client can report addresses
that they are in fact not using. Adding these addresses to
the host interface list without verification is not only
pointless, it is downright dangerous.

e. The reported addresses do not include port numbers and
guessing that the port number is 7001 does not work when
port mapping devices such as NATs or some VPNs are in
use.

(4) improves logging to ensure that all references to a 'host' structure
report both a memory address and the IP address/port. this will avoid
confusion *if* more than one 'host' structure is assigned the same
primary address.

(5) logs the UUID along with the client addresses when initializing the
host's interface list. (level 125)

(6) saves memory by using a smaller structure for the UUID hash table
2007-08-08 17:30:20 +00:00
Rainer Toebbicke
f099df38b2 viced-multi-probe-addr-20070808
FIXES 67355

MultiProbeAlternateAddress_r badly indexes the list of interfaces for
clients with multiple IP interfaces, resulting in peers with IP
address 0 port 0 to be created. This in turn results in rxi_sendmsg
errors (on systems where caught early, as on Linux, on others it may
pass unnoticed).
2007-08-08 16:53:17 +00:00
Jeffrey Altman
8c69510d92 windows-afsd-uninit-vars-20070806
FIXES 67126

ensure the connp is set to NULL in case of error
2007-08-07 05:00:06 +00:00
Asanka Herath
9353e122a3 windows-local-directory-updates-smb-20070802
The windows cache manager has suffered from poor performance as a result
of Create, Rename, and Delete operations because they invalidate the
contents of the directory pages in the cache thereby forcing them to be
reloaded from the file server.   As the directory size increases, the clock
time necessary to perform the reload increases.

This delta adds support for parsing and updating the AFS3 directory buffers
to cm_dir.c.  It then uses that functionality to perform local updates to
the directory buffers whenever the following conditions are met:

 1. the data version on the directory as a result of the change
    was incremented by one.

 2. all of the directory buffers required for the update are in
    the cache.

If these conditions are not met, the directory is reloaded from the file
server.
2007-08-02 22:05:39 +00:00
Jeffrey Altman
ac5346c370 windows-no-more-infinite-recursion-20070802
FIXES 15855

In cm_NameI, keep track of what fids were crossed when evaluating the
path.  If we discover a loop return a CM_ERROR_TOO_MANY_SYMLINKS error.

This resolves the complaint that when infinite loops are hit in the afs
name space the afsd_service.exe process uses 100% of the CPU.
2007-08-02 21:57:38 +00:00
Asanka Herath
c4047f6cb5 windows-local-directory-updates-20070802
The windows cache manager has suffered from poor performance as a result
of Create, Rename, and Delete operations because they invalidate the
contents of the directory pages in the cache thereby forcing them to be
reloaded from the file server.   As the directory size increases, the clock
time necessary to perform the reload increases.

This delta adds support for parsing and updating the AFS3 directory buffers
to cm_dir.c.  It then uses that functionality to perform local updates to
the directory buffers whenever the following conditions are met:

 1. the data version on the directory as a result of the change
    was incremented by one.

 2. all of the directory buffers required for the update are in
    the cache.

If these conditions are not met, the directory is reloaded from the file
server.
2007-08-02 21:52:54 +00:00
Jeffrey Altman
10b76dffa0 windows-do-not-expire-cbs-when-servers-are-down-20070802
if all of the servers are down when a callback is due to expire
delay the expiration until at least one server is available.
this prevents some applications that are running when the CM
is off the network from failing if their pages are swapped out.
2007-08-02 21:44:54 +00:00
Jeffrey Altman
4d75b4758e windows-libafsrpc-20070802
use bg-fcrypt in libafsrpc.dll which is used by the CM
2007-08-02 06:20:08 +00:00
Jeffrey Altman
4b8db9f211 rxkad-bg-fcrypt-unbreak-windows-20070731
i (derrick) broke everything. fix it.
2007-07-31 23:19:15 +00:00
Derrick Brashear
ece19eefbe viced-avoid-tying-up-all-threads-20070730
FIXES 19461

implement a thread quota.
2007-07-30 14:17:27 +00:00
Derrick Brashear
a608cd2e24 darwin-avoid-fsref-panic-maybe-20070728
maybe this works.
2007-07-28 15:31:44 +00:00
Jeffrey Altman
840ad12eb3 windows-fs-20070727
return error when GetCell fails
2007-07-28 04:03:58 +00:00
Jeffrey Altman
0ba1a62757 windows-rdrtimeout-20070727
RDRtimeout is seconds.  need to convert to milliseconds for comparison
2007-07-28 03:50:23 +00:00
Jeffrey Altman
d7d12d7c9b windows-client_config-20070727
FIXES 66302

change text of error message to indicate that the user is not a member
of the AFS Administrators Group instead of not being a Windows administrator.
2007-07-27 16:40:44 +00:00
Derrick Brashear
ed13fac911 md5inum-md5-clobbers-input-20070726 2007-07-26 18:04:21 +00:00
Jeffrey Altman
8ba66b7ff5 windows-afsd-ubik-20070722
not currently in use but replace ubik_Call(FOO,...) with ubik_FOO(...)
2007-07-23 00:09:06 +00:00
Derrick Brashear
16b32c1345 volser-directoryless-incremental-dumps-20070719
add an rpc, give vos a switch, allow incrementals which do not include directory objects
2007-07-19 19:51:55 +00:00
Jeffrey Altman
960ac913a4 windows-afs-svrmgr-20070719
uninitialized variable removal
2007-07-19 16:55:44 +00:00
Derrick Brashear
58d6f0b42a viced-assert-less-20070719
in don't assert for every silly thing
2007-07-19 16:14:20 +00:00
Derrick Brashear
91fee8a699 viced-no-nulluuid-20070719
a host with a zero uuid has no uuid support
2007-07-19 16:09:50 +00:00
Derrick Brashear
c010052699 kill-more-ubikcall-20070719
tested more ubik call death, so, byebye
2007-07-19 16:00:20 +00:00
Derrick Brashear
982f455deb vos-validate-dumpfile-20070719
based on code from jon nials
validate a dumpfile as being complete (look for end of dump signature)
2007-07-19 15:55:39 +00:00
Cesar Garcia
ef76695bb9 libadmin-deubikcall-cleanup-20070718
remove bogus extra arg
2007-07-18 15:21:12 +00:00
Jeffrey Altman
397cd0c3b8 windows-pioctl-20070718
cm_dir.h depends on cm_buf.h
2007-07-18 14:02:59 +00:00
Jeffrey Altman
a8b270d5a3 windows-single-dir-search-not-bulk-20070718
the single directory search routine used when there are no wildcards
does not perform a bulk stat operation.  do not set the flag on the
cm_scache_t.
2007-07-18 13:07:46 +00:00
Derrick Brashear
5e8227cd5e fs-state-only-in-dafs-20070717
FIXES 65681

only in dafs. oops.
2007-07-17 18:04:01 +00:00
Jeffrey Hutzelman
65c1b37f15 osi-probe-check-readable-20070717
FIXES 63971

avoid potentially reading pges that don't exist
2007-07-17 13:15:19 +00:00
Marcus Watts
2abf6e204c bg-fcrypt-64bit-fix-20070717
instead of this arcane ifdef which is flawed, we know which platforms support 64 bit types...
2007-07-17 13:06:47 +00:00
Russ Allbery
7fb5e02ff4 sparc32-no-ucontext-20070716
Undefine USE_UCONTEXT on sparc32 Linux since glibc doesn't implement
getcontext/setcontext for that architecture.
2007-07-17 04:46:25 +00:00
Derrick Brashear
f489b05a1c sparc32-no-getcontext-20070716
implement ptr_mangle for sparc32
2007-07-17 04:10:18 +00:00
Eric Sturdivant
5662cd310b xbsa-54-solaris-cplusplus-fun-20070716
FIXES 65588

deal with change to c++ xbsa library
2007-07-16 21:40:45 +00:00
Jeffrey Altman
82cb8884c8 libadmin-ubik_call-20070715
replace all calls to ubik_Call(FOO, ...) with ubik_FOO(...)

correct the incorrect parameter lists for ubik_FOO()
2007-07-16 00:58:52 +00:00
Derrick Brashear
a818f2d6b6 aix-aklog-lam-plugin-20070713
allow aklog equivalent from lam
2007-07-13 20:53:58 +00:00
Derrick Brashear
7aa5f7ad8b suser-aix-macro-20070712
can't use ifdefs inside the macro...
2007-07-12 19:10:05 +00:00
Derrick Brashear
1e86d1f3cc demand-attach-init-fsstate-rwlock-20070712
the rwlock needs to be initd before use
2007-07-12 09:28:26 +00:00
Douglas Engert
e13f8859a0 aklog-deal-without-524-20070711
patch in a way of dealing with no krb524
2007-07-11 05:29:36 +00:00
Rainer Toebbicke
73087bd4be pagsh-krb5-20070710
FIXES 54621

clean up the environment
2007-07-10 21:27:59 +00:00
Derrick Brashear
28208c9a24 linux-register-fs-deal-with-error-20070709
deal with other people who think they are afs.
2007-07-09 20:58:57 +00:00
Chaskiel M Grundman
d8457dd359 sparc-linux-des-alignment-20070709
seems like compilers really hate des. it should would be nice to euthanize this.

it's a shame there's no simple license-friendly des library to use
2007-07-09 20:14:09 +00:00
Jeffrey Altman
90bc0a7f31 windows-give-up-callbacks-20070707
don't try so hard to give up all callbacks.  If the server doesn't
respond in 10 seconds, too bad!

cleanup the server probe code a bit.  reorganize the code so that we
can avoid unnecessary pointer evaluation.  add a missing include file.
2007-07-07 14:36:59 +00:00
Jeffrey Altman
5e29856f7a windows-afsd-misc-20070706
* Do not give back callbacks to down servers

* Output more cm_scache_t data in afsd_alloc.log

* call VolStatus_Service_Stopped after the service has stopped
2007-07-07 00:20:38 +00:00
Marcus Watts
62bf68f4ba budb-ol_verify-20070706
FIXES 53210

fixes a missing pointer declaration that would presumably
break on 64-bit architectures.
2007-07-06 12:37:01 +00:00
Jeffrey Hutzelman
600a20f5a2 cellservdb-20070705
GCO Public CellServDB 05 Jul 2007
2007-07-06 00:44:35 +00:00
Jeffrey Altman
2b9525fe9e windows-volume-status-plugin-20070705
This delta adds an interface to an optional volume status handler.
The handler (if provided) receives status updates when volumes
change state between online, offline, busy, and alldown.
2007-07-05 20:21:19 +00:00
Jeffrey Altman
01184d053a windows-license-translation-20070705
replace GlobalAlloc with malloc.  initialize memory and consider the
inability to read the entire input file as an error.
2007-07-05 16:54:48 +00:00
Jeffrey Altman
1027ca87a7 windows-heap-corruption-20070703
fix buffer over write error introduced since 1.5.20
2007-07-03 15:11:35 +00:00
Derrick Brashear
35a2fe01dd macos-no-default-memcache-20070703
this should be leopard only memcache for now
2007-07-03 15:01:19 +00:00
Derrick Brashear
a5815643fc des-p-temp-volatile-20070703
make des work again on powerpc darwin and possibly elsewhere
2007-07-03 05:21:55 +00:00
Jeffrey Altman
8edfefbb9d windows-get-cellinfo-afsdb-20070702
enable afsdb records for get cellinfo lookup outside of afsd_service.exe

====================
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.
====================

do not perform afsdb lookup for Freelance.Local.Root cell
2007-07-03 01:33:47 +00:00
Dan Hyde
a41d0af021 volser-delete-clone-not-source-20070702
FIXES 64268

fixes a bug in the UV_CopyVolume2 cleanup code. Without
this patch, the cleanup code will delete the source volume.
2007-07-02 18:05:04 +00:00
Jeffrey Altman
beb094fb2e windows-parse-ioctl-path-20070629
The UNIX client does not follow mount points or symlinks when evaluating
ioctl paths during commands such as "fs examine".  The Windows client did
which was annoying when you wanted to know the FID of a mount point that
was not properly being evaluated.
2007-06-30 05:43:17 +00:00
Jeffrey Altman
871297aa21 windows-eol-20070629
fix end of line for memdump output
2007-06-30 05:37:39 +00:00
Jeffrey Altman
43e97a8ede windows-procmgmt-library-20070629
Since the library creates its own background thread, the library must
load its own reference to itself to prevent the library from being
unloaded behind its back.
2007-06-30 00:51:36 +00:00
Jeffrey Altman
3309000efc windows-remove-give-up-callbacks-scache-recycling-20070627
remove the conditionalized code used to give up callbacks in response
to stat cache recycling due to performance impacts described in the
commit for DELTA windows-give-up-callbacks-20070627
2007-06-28 05:10:10 +00:00
Jeffrey Altman
61e6f04009 windows-give-up-callbacks-20070627
This large patch adds support for giving up callbacks in response to three
events:

 1. power management suspend

 2. power management shutdown

 3. stat cache object recycling

The third item is submitted as a condition compilation if GIVE_UP_CALLBACKS
is defined.  Properly handing callback give ups and the associated race
conditions with revokes and fetch status requests requires a great deal of
over head.  The first attempt used one GiveUpCallBacks RPC for each callback
that was being dropped as the stat cache object was recycled.  This resulted
in a 27% performance drop in the MIT stress test.  The code that is being
committed maintains a callback give up list on each server object.  The
callback is added to the list as the callbacks are dropped and then they
are sent to the server in bulk by the background daemon thread if the
server is known to be UP after a ping.  Logic is added to the
EndCallbackRequest and CallbackRevoke operations to ensure that race
conditions are addressed.  With all of this, there is a 17% performance drop
in the MIT stress test.

As a result, it is my conclusion that the client side costs associated with
optimizing the load on the server are simply too high.  I am committing this
code to ensure that it is not lost.  I will remove this support in the next
patch while leaving the support for giving up all callbacks in response
to suspend and shutdown events.
2007-06-28 05:04:21 +00:00
Jeffrey Altman
5c9c49137f windows-odd-vnode-is-dir-20070627
its odd vnodes are directories, not even ones
2007-06-28 04:52:12 +00:00
Jeffrey Altman
b3d34ab12c windows-pioctl-20070627
add cm_server.h to the include list
2007-06-28 04:33:50 +00:00
Derrick Brashear
f7c4a7e538 volser-earlier-logging-20070627
deal with the changes to deal with reconnecting in the unix domain fsync socket
2007-06-28 03:11:01 +00:00
Jeffrey Altman
9ca8794ed4 windows-afsd-headers-20070627
remove unneeded headers and shuffle order where necessary
2007-06-28 01:33:43 +00:00
Jeffrey Altman
7ecca7a58a windows-smb-race-20070627
avoid a race condition when the smb_fidp is closed and an active request
is being performed on the referenced cm_scache_t.
2007-06-28 01:15:27 +00:00
Kevin Hildebrand
d987546902 amd64-linux-24-syscall-probe-symbol-change-20070623
FIXES 63763

probe for something else for 2.4 and older

====================
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'll spare you
2007-06-27 22:18:59 +00:00
Derrick Brashear
6e2737190a forceallnewconns-prototype-20070627
missed this earlier. linux wants it.
2007-06-27 17:29:35 +00:00
Derrick Brashear
17c7ab7461 macos-afsd-dont-leak-symbol-20070626
avoid leaking a ref to this symbol outside macos code
2007-06-26 20:00:26 +00:00
Jeffrey Altman
470be46a4c backup-usedump-20070625
FIXES 55704

afs_com_err not com_err
2007-06-26 06:40:35 +00:00
Tom Keiser
5e5bfa6b94 aix53-avoid-wait-crash-20070625
avoid crashing because of unpinned mmemory when doing event handling
2007-06-25 21:22:49 +00:00
Jeffrey Altman
3eb7be5c5e windows-get-server-list-20070625
return an error when the cm_fid_t * is NULL since we can't look up
the volume to obtain a server list without knowing which volume we
should be looking up

if the fidp is known to be NULL, don't call cm_GetServerList()
2007-06-25 05:58:30 +00:00
Chas Williams
99a61e9762 memcache-alloc-failures-20070623
FIXES 55339

deal with alloc failures in memcache
2007-06-23 16:28:11 +00:00
Garry Zacheiss
a2cd5f5ec0 backup-usedump-20070623
FIXES 55704

restore from specific dump id
2007-06-23 16:13:17 +00:00
Derrick Brashear
8e180b6303 image-fix-20070623 2007-06-23 15:17:46 +00:00
Derrick Brashear
ec223f850b newuuid-fix-20070622
yeah, i should commit from places with better network if i'm going to need to edit in place, so i can see what i'm typing
2007-06-23 07:21:00 +00:00
Asanka Herath
31dfee0001 windows-install-wix-20070622
add the images from relnotes_files to the distribution.
2007-06-22 23:22:09 +00:00
Jeffrey Altman
ccfba9c7b8 windows-cell-hashtables-20070622
Add name and ID hash tables for cell lookups.  cell lookups occur on
every request.  sometimes multiple times.  removing the walking of the
cell list when there are dozens of cells decreases cpu utilization and
increases throughput.
2007-06-22 23:15:38 +00:00
Jeffrey Altman
8fb02b0a0c windows-install-nsis-20070622
add missing jpg files to documentation installation
2007-06-22 15:42:12 +00:00
Jeffrey Altman
43a27633c6 windows-misc-20070622
there were two sets of registry values that could be used to configure
the daemon thread check intervals.  keep the one that was documented
in the release notes and discard the other.

Add a registry value "daemonCheckOfflineVolInterval" to configure the
offline volume check interval.

Ensure that the cm_GetConn... functions initialized the output variables
to NULL on error.
2007-06-22 15:11:04 +00:00
Jeffrey Altman
afa909e66c windows-fake-stat-20070622
When we are faking the status data we can use the vnode value to determine
if the object should be treated as a directory or file.  even is a directory
and odd is a file.  This works even when we have never successfully
obtained status data for the object.
2007-06-22 07:00:27 +00:00
Jeffrey Altman
2675d25f69 windows-mountpoint-is-directory-20070622
when the CIFS client requests a directory listing without directories,
do not include mount points.
2007-06-22 06:30:47 +00:00
Jeffrey Altman
d7d8de3041 windows-revoke-callback-20070619
If the we can match up the host address from which the revoke was received
with one of our cm_server_t objects, then we know which cell the revoke
has been received from.  With that information we can ensure that we only
revoke the status of cm_scache_t objects belonging to that cell.
2007-06-19 21:10:56 +00:00
Jeffrey Altman
adb83635bb windows-all-cell-list-20070619
Reverse the order of the allCellsp list.  Append new cells onto the end
of the list.  This ensures that the workstation cell will always be the
first in the list.  Adding additional cells will not degrade the performance
to the workstation cell.
2007-06-19 19:29:41 +00:00
Jeffrey Altman
01c3c334d5 windows-updatecell-20070619
No longer permit cm_GetCell() or cm_FindCellByID() to return NULL simply
because cm_UpdateCell() failed.  The cm_cell_t object still exists and
is valid even if the vlServersp list is empty.

Modify the lock management in cm_GetCell_Gen() to ensure we drop all the
locks.

In cm_Analyze() update the volume status when one of the servers reports
VBUSY or VRESTARTING.
2007-06-19 17:14:14 +00:00
Jeffrey Altman
59db981220 windows-deadlock-20070619
fix deadlock on cm_volumeLock introduced by last week's work

in cm_Analyze, make sure we get a cm_cell_t reference otherwise we
won't find the cm_volume_t we are searching for when ALLOFFLINE or
ALLBUSY.
2007-06-19 12:51:11 +00:00
Jeffrey Altman
f1db63646c windows-amd64-20070619
Use 0x0502 instead of 0x0500. There is no 64-bit Windows 2000 support.

Explicitly list the machine type as X64 for linking.
2007-06-19 06:29:07 +00:00
Jeffrey Altman
aed66fda2c windows-misc-20070619
VMWare adapters have proven unreliable replacements for the Microsoft
loopback adapter.  Registering AFS often results in a name space collision.

Add cm_DumpCells() function and dump the cells as part of "fs memdump"

Dump all cm_scache_t and cm_volume_t regardless of reference counts

Fix cm_GetCell_Gen() to not allocate a new cm_cell_t when evaluating
mount points to aliases.  Instead, after looking up the alias successfully
search the allCellsp list for the fullname of the cell.  If found, use
the existing entry and cleanup the one we were about to allocate.

Use read locks whenever possible instead of write locks when searching
the allCellsp list.
2007-06-19 06:24:23 +00:00
Derrick Brashear
5672867638 macos-realtime-ip-updates-20070618
notice and deal with IP address changes
2007-06-18 19:48:33 +00:00
Derrick Brashear
39b027504b avoid-empty-uuid-20070618
avoid issue where uuid can potentially be 0: set one always at AFSOP_GO step
2007-06-18 19:03:00 +00:00
Derrick Brashear
0c5cf6028d darwin-collect-network-errors-for-fast-timeout-20070618
same optimization we do on windows, linux
2007-06-18 18:57:31 +00:00
Derrick Brashear
125e4511a9 darwin-afs-syscall-eliminate-needless-vfs-context-hold-20070618
avoid potential deadlock if e.g. SetTokens is called before the kernel module initialization completes
2007-06-18 18:05:05 +00:00
Asanka Herath
6bc5c0899a windows-nim-afs-20070617
Don't assume that WM_DESTROY is the final message received by a
window.  Verify dialog data structures when handling messages and
reset the window data field when freeing the data structure.

Zero should be considered a valid credentials type identifier in
Network Identity Manager.

When checking if an identity is configured to obtain a token for a
specific cell, don't go through the list of cells if AFS tokens
are disabled for the identity.

Similarly, when removing a token for a specific cell from all
identities, don't bother modifying identities for whom AFS tokens
are disabled.

Keep track of whether a specific cell was added to the list of
cells to authenticate for an identity because it was listed in the
configuration or because a token for the cell already existed.

Correct an off-by-one error when calculating buffer sizes for
multi strings which failed to account for a double NULL
terminator.

Don't update the cell->identity mapping if a token for that cell
could not be obtained.

If the list of cell to authenticate for an identity is empty, we
still need to write the empty string to the configuration.
Otherwise, removing all the tokens from an identity will not
result in a configuration change reflecting that.
2007-06-17 05:49:32 +00:00
Jeffrey Altman
e8fa4d0e40 windows-ioctl-path-availability-20070614
fix cm_IoctlPathAvailability to return the current volume state.
0, CM_ERROR_ALLBUSY, CM_ERROR_ALLDOWN, CM_ERROR_ALLOFFLINE

modify fs.c to generate messages when the errors are received.
2007-06-14 21:58:07 +00:00
Jeffrey Altman
0187bf2feb windows-volstate-update-post-network-change-20070614
When the system's IP address list changes we invalidate the existing
RX connections and probe all of the servers.  A better algorithm is
to probe all vldb servers, invalidate the rx connections, and then
probe all file servers.
2007-06-14 21:54:16 +00:00
Jeffrey Altman
46a931d020 rx-lwp-sendmsg-20070614
update the lwp version of rxi_sendmsg to return the same error, -1,
returned by the pthread version.

replace errno with WSAGetLastError() in the Windows blocks so that
the correct error value is checked.
2007-06-14 20:04:10 +00:00
Jeffrey Altman
c27c00f8a9 windows-pioctl-add-error-translations-20070614
add error translations for CM_ERROR_ALLDOWN, CM_ERROR_ALLBUSY,
CM_ERROR_ALLOFFLINE, CM_ERROR_NOSUCHPATH
2007-06-14 19:29:51 +00:00
Asanka Herath
5ac7a7db9a windows-magic-share-names-20070613
Access to AFS volumes via magic share names

	\\afs\<cell><type><volume>

<cell> = cellname
<type> = % or #
<volume> = volume name or id
2007-06-13 23:25:45 +00:00
Jeffrey Altman
c74a23fc40 windows-server-ping-deadlock-20070612
avoid deadlock in cm_ServerPing due to volume status update code
2007-06-13 07:04:55 +00:00
Derrick Brashear
b1bbe33fde newuuid-20070612
add the newuuid command
2007-06-12 19:59:02 +00:00
Marc Dionne
391d657c6e linux-configure-vfs-update-20070612
FIXES 62017

clean up output
2007-06-12 19:38:20 +00:00
Marc Dionne
6eabfbd4b9 linux-vfs-flush-3arg-20070612
FIXES 62203

3rd arg for passing lock owner id. add configure gunk also
2007-06-12 19:32:19 +00:00
Simon Wilkinson
a6294ee79a linux-sysctl-update-20070612
FIXES 61906

2.6.21.1 introduces an additional .parent pointer in the middle of
the structure. As the OpenAFS code just initialises the structure
with a list, this causes it to assign the value intended
for .proc_handler to .parent
2007-06-23 07:32:56 +00:00
Jeffrey Altman
86b3330c71 windows-volume-status-tracking-20070612
* re-write cm_Analyze to make better use of the known volume
  status.  VL_Server queries cannot result in CM_ERROR_ALLOFFLINE
  messages.

* renamed cm_CheckBusyVolumes to cm_CheckOfflineVolumes.
  busy volumes will be reset to srv_non_busy by the function
  but there is no mechanism for querying the busy state other
  than by attempting to access the resource.

* cm_Analyze will query the state of an offline volume before
  deciding whether or not to retry when all volume instances
  are offline.
2007-06-12 16:23:09 +00:00
Marc Dionne
37a0b14e01 linux-2-6-22-updates-20070611
FIXES 61767

1 - task_struct loses thread_info, which is now accessible through the
task_thread_info() macro. A configure test is added to deal with this.

2 - the SLAB_CTOR_VERIFY flag is gone
2007-06-12 06:41:06 +00:00
Jeffrey Altman
66adaf3268 windows-volume-status-tracking-20070610
* changed the enum values for cm_serverRef_t state info to use a
  private name space to avoid collisions (srv_)

* added a srv_deleted state for cm_serverRef_t objects.  This
  state is set when cm_FreeServerList() is called with the
  CM_FREESERVERLIST_DELETE flag set.  cm_FreeServerList() may
  not always delete the cm_serverRef_t from the list if it is
  still in use by another thread.  the srv_deleted state means
  the object's contents are no longer valid and it must be
  skipped.  It will be deleted the next time the object is
  freed and the refcount hits zero.

* the srv_deleted state is also used when a file server reports
  either VNOVOL or VMOVED instead of marking the cm_serverRef_t
  as offline.  This is done to prevent additional usage of the
  stale vldb data while waiting for the update volume request
  to complete.

* added a state field to the cm_volume_t object (enum volstate
  vl_ name space) that maintains the state of the volume based
  upon the states of all of the cm_serverRef_t and cm_server_t
  objects.

* modified cm_UpdateVolume() to set the state of the cm_volume_t
  RW, RO, and BK to either vl_alldown or vl_online.  There can't
  be any other states because cm_UpdateVolume() destroys any
  previous knowledge we might have had regarding busy or offline
  volume status

* modified cm_UpdateVolume() to update the volume name in the
  cm_volume_t to the volume base name if the previous value was
  a volume ID.

* modified cm_FollowMountPoint() to check to see if the volume
  name is a volume ID and if so call cm_GetVolumeByID instead
  of cm_GetVolumeByName.  This ensures that volume IDs are always
  looked up as numeric values.  There is no longer a need to
  maintain a separate cm_volume_t containing the string representation
  of the ID value.

* Added a flags parameter to cm_GetVolumeByName() and cm_GetVolumeByID().
  The first flag is a "CREATE" flag which is set by all existing
  calls.  The flag is not set by calls to cm_GetVolumeByID() from
  the server probe code when volume status is being updated.  We
  do not want the server probe operation to result in additional
  turnover in the cached volume data.  The second flag is NO_LRU_UPDATE
  which is set when the server probe code updates the volume status.
  This flag will be used to prevent the server probe operation from
  changing the order of the least recently used queue.

* Modified cm_GetVolumeByName to ensure that only one cm_volume_t is
  allocated for a given set of normal, readonly, and backup volumes
  regardless of whether or not the volume is accessed via name or
  ID number.  The cm_volume_t namep field is always the base name
  of the volume.

* Added a new volume state, vl_unknown.  This state is used as
  the initial state for all cm_volume_t when the cache manager starts,
  for each cm_volume_t at creation, and for each cm_volume_t when
  recycling.  The cache manager does not know the state of all
  volumes in the world, only those that are in the cache and for
  which it has queried the VLDB and hosting file servers.

* modified cm_GetVolumeByName() to initialize the state of a
  volume to vl_unknown.  The actual state will be set when a
  cm_VolumeUpdate() call completes successfully.

* changed name of scache hash table variables to avoid ambiguity
  when adding hash tables for volumes

* fix a buffer overrun in sys\pioctl_nt.c  pioctl().
  (thanks Asanka)

* modified cm_UpdateVolume() to handle the case in which there is
  no RW volume but there is are RO volumes for a given base name.
  This is done by querying for the ".readonly" volume name if the
  base name does not exist in the VLDB.  We never query for the
  .backup name because under the current usage model a .backup
  volume may only exist on the server that the read-write volume
  is located.  If there is no RW volume, there can be no .backup.

* Added four hash tables for cm_volume_t objects to improve the
  search time of cm_GetVolumeByID(), cm_GetVolumeByName() and
  cm_ForceUpdateVolume(). One each for Name, RWID, ROID, and
  BKID.  Three ID hash tables are necessary as long as it is
  desireable to maintain a single cm_volume_t containing all
  of the related RW, RO, and BK volume data.  Having the RW and
  RO volume data in the same object is necessary for the
  implementation of cm_GetROVolumeID() which returns either the
  RO or RW ID depending upon the existence of RO volume instances.

* Added a volume LRU queue so that volume reuse becomes fairer.
  This does not replace the all Volumes list which is used when
  it is desireable to walk a list of all the volumes whose order
  is not going to change out from underneath you which makes it
  safe to drop the cm_volumeLock.

* handles volume hash table updates where volume name to
  volume ID number changes.  The volume name remains
  constant in the cm_volume_t.  if a vos rename is performed,
  the name of the volume will change and the volume IDs will be
  updated.  Subsequent access to the old volume ID will create a
  new cm_volume_t with the new name.

* Added a daemon thread operation to query the state of volumes
  listed as busy or offline.  cm_CheckBusyVolumes() calls
  RXAFS_GetVolumeStatus() for each volume ID that is marked vl_busy
  or vl_offline.   If the volume is now online, the status on the
  volume is updated.  The default period is 600 seconds.  This can
  be configured with the BusyVolumeCheckInterval registry value.

* Added prototype for smb_IoctlPrepareRead() which was missing a
  return type in the function definition.

* Added volume id lists to the cm_server_t.  These lists are
  allocated in blocks of ~32 IDs.  When a cm_PingServer()
  detects a change in server state, the state of the cm_volume_t
  is updated.

* Added volID to the cm_serverRef_t object.  volID is used
  to identify the volume for which the object is a referral.
  cm_FreeServerList() uses the volID to remove the volume
  from the cm_server_t.

* In cm_Analyze, when VNOVOL or VMOVED are received,
  call cm_ForceVolumeUpdate() to force a refresh of the volume
  location data.

* Added cm_VolumeStatusNotification() which is used at the moment
  to log volume status changes to the trace log.  It will also
  be used as the access point to the File System Filter driver
  notification engine.

* Added an all cm_scache_t list to cm_data.  This replaces the use
  of the stat cache LRU queue when we need to enumerate all
  entries.  The LRU list order is not static and when using it to
  enumerate all entries it can result in items being missed or
  items being processed more than once.

* Modified cm_Analyze(). Instead of reseting the busy or offline
  state of a volume and forcing a retry of the operation
  cm_Analyze will defer to the background daemon thread that will
  update the state once every 600 seconds.

* Added the automatic generation of a Freelance ".root" read-write
  mountpoint that refers to the root.afs volume of the workstation
  cellname at the time the mountpoint is created.
2007-06-10 17:58:51 +00:00
Jeffrey Altman
f4bd260422 rxkad-badticket-20070610
In rxkad_CheckResponse, when checking the return value from tkt_CheckTimes,
the order is == 0, == -1, < -1, <= 0.  The <= 0 case is extraneous so
remove it. Both < -1 and <= 0 returned RXKADBADTICKET.
2007-06-10 15:20:43 +00:00
Asanka Herath
8a814a5596 windows-pioctl-buffer-overrun-20070609
this patch protects against a buffer overrun in the client if the
server were to send more data than the receiving buffer can hold.
2007-06-10 06:52:51 +00:00
Derrick Brashear
18484f0fc6 linux-kmem-destroy-fix-20070609
don't destroy if create failed
2007-06-10 06:39:15 +00:00
Marc Dionne
c0010267f2 restore-missing_afs_realm_names-20070606
FIXES 62016

restore AFS_REALM_NAMES
2007-06-07 03:18:21 +00:00
Derrick Brashear
fcfdcc3cc1 vsprocs-avoid-bogus-error-20070606
don't EPRINT if it's not an error
2007-06-06 18:55:04 +00:00
Derrick Brashear
cb18c5f802 aix-declare-setlim-20070606
maybe fix lwp.c compiling with modern aix
2007-06-06 18:21:05 +00:00
Derrick Brashear
a621049680 solaris-sparc-default-to-v8-insns-for-kmod-20070605
FIXES 23935

don't use the default instruction set since the compiler has changed over time
2007-06-05 18:10:00 +00:00
Jeffrey Hutzelman
e8493e06f9 fix-kbuild-linux-ppc64-20070604
The Linux 2.6 kbuild environment requires assembly files end in .S, not .s.
2007-06-05 04:47:09 +00:00
Derrick Brashear
aa5d46b71b clone-dont-hold-vol-lock-20070516
same deal as purge. a transaction on the volume outstanding holds it. we don't need to preclude all access

====================
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.
====================

same deal as purge. a transaction on the volume outstanding holds it. we don't n
eed to preclude all access

====================

same deal as purge. a transaction on the volume outstanding holds it. we don't n
eed to preclude all access
2007-05-18 06:52:37 +00:00
Derrick Brashear
ad98eacdad linux-posix-lock-file-has-wait-arg-now-20070517
FIXES 58590

hopefully this works, i can't actually try it now
2007-05-17 19:28:10 +00:00
Derrick Brashear
59eb3de5ea linux-posix-lock-file-has-wait-arg-now-20070517
FIXES 58590

hopefully this works, i can't actually try it now
2007-05-17 07:34:15 +00:00
Rainer Toebbicke
87a93241da bucoord-dump-levels-20070517
FIXES 57246

dont use memory past what you've allocated
2007-05-17 06:42:03 +00:00
Lukas Hluze
5987e2923a libafs-common-placate-irix-make-20070516
FIXES 59153

irix make wants $@ to be $(@) inside other braces
2007-05-16 21:57:20 +00:00
Chaskiel M Grundman
d143385ec6 rx-ack-idle-comment-20070516
FIXES 60046

fix comment
2007-05-16 21:48:27 +00:00
Chaskiel M Grundman
7a72e2445f rx-tq-busy-20070516
FIXES 60046

abstract tq busy wait code
2007-05-16 21:44:07 +00:00
Chaskiel M Grundman
a900fe3089 rx-send-req-ack-20070516
FIXES 60046

change reply code where appropriate
2007-05-16 21:36:33 +00:00
Arkadi Shishlov
f550e3b3ff glibc24-jmp-buf-mangling-20070516
FIXES 60440

glibc 2.4 does jmp buf manging for "security"

whatever. deal.
2007-05-16 21:21:44 +00:00
Marcus Watts
d608809c24 supergroup-cleanup-20070516
FIXES 60809

Problems fixed with this patch:
/1/ supergroup bug: when updating an entry in prdb, the logic in
pt_mywrite is supposed to unset flagged & found bitmap entries.
This failed on little-endian architecture machines.

/2/ warnings; a few fixes to eliminate some compiler noise.
2007-05-16 20:54:42 +00:00
Marcus Watts
62dc197541 ptserver-fix-bitmap-20070516
FIXES 60680

make sure bitmap code is correct else supergroups returns invalid answer

fix verify code to be correct on little endian hosts
2007-05-16 20:42:56 +00:00
Jeffrey Altman
03e3b77553 windows-afsd-list-acl-only-dir-20070516
FIXES 60258

Do not return access denied when applying directory patches if the
user does not have read permission.  This is the case we want to
fake the directory entries for.  Also, make sure we set the directory
attribute on non-files so that the path can be accessed via the
Explorer Shell.
2007-05-16 16:54:16 +00:00
Jeffrey Altman
82d2cc5b7f windows-afsd-uninitialized-20070516
Do not use uninitialized variables in log messages

Do not dereference NULL pointers
2007-05-16 16:49:19 +00:00
Jeffrey Altman
e02fa3e73b windows-afsd-list-acl-only-dir-20070515
FIXES 60258

When the ACL on a directory is list only, attempts to read the status
of items in the directory will fail.  Therefore, it is pointless to try.
Instead, when we know the user ACL does not have read permission, we
should immediately lie about the status info.  That way we don't pound
the file server with requests that will produce an abort which in turn
will trigger force the file server to delay responses to the client.

This change has the added benefit that cached status info is no longer
leaked to callers that do not have appropriate permissions.

With this change the Explorer Shell is much more responsive.
2007-05-16 04:43:47 +00:00
Jeffrey Altman
60bbb56b54 windows-aklog-20070515
FIXES 60938

do not copy an uninitialized field
2007-05-16 04:33:38 +00:00
Jeffrey Altman
11cec9e764 windows-fs-getcacheparms-20070515
fix output of cache parms now that they are 64-bit
2007-05-15 21:19:37 +00:00