Commit Graph

4431 Commits

Author SHA1 Message Date
Jeffrey Altman
87d87d33ea windows-fs-memdump-20070919
add directory lookup stats to "fs memdump" output
2007-09-20 04:54:14 +00:00
Jeffrey Altman
a186b0d65c windows-hex-dump-20070919
remove the broken percent quoting from OutputDebugHexDump as it is
not required.  We never use the resulting string as a print format string.
2007-09-19 22:27:53 +00:00
Jeffrey Altman
feab12b929 windows-version-info-20070919
FIXES 71397

Many of the OpenAFS binaries that are installed on end user machines
did not have version information.  This is problematic as it is impossible
to determine which version of a binary the crash report was filed against
when a report is received by Microsoft Windows Error Reporting service.
2007-09-19 18:55:55 +00:00
Jeffrey Altman
b8abf04a45 windows-vnovnode-while-file-in-use-20070918
Discovered another case where VNOVNODE errors were not being handled.
If there are dirty buffers and a VNOVNODE error is received while
writing the buffer, the buffer would be left in the dirty buffers queue.
This caused a couple problems:
(1) any attempt to flush the file, volume, or cache would fail because
    there were unflushed dirty buffers that could not be flushed.
(2) shutdown of the service would hang because the buffers could not
    be flushed.

In addition, while a VNOVNODE error would result in the cm_scache_t
being marked CM_SCACHEFLAG_DELETED, this state was not being checked
at the SMB layer.  As a result, if a smb_fid_t was allocated and it
referenced the deleted cm_scache_t, the SMB operations would continue
to be processed and report success even if the actual file or directory
no longer existed.

We now clear the dirty state on buffers which cannot be written due to
VNOVNODE errors.  We also check the cm_scache_t for deletion prior to
use whenever a smb_fid_t is looked up.  If the cm_scache_t is deleted,
the smb_fid_t is closed and the error CM_ERROR_NOSUCHFILE is returned
for files or CM_ERROR_NOSUCHPATH for directories.
2007-09-18 17:57:31 +00:00
Jeffrey Altman
a47f4bacd8 windows-afs-config-vista-uac-vs2005-20070918
merge the manifests for vs 2005
2007-09-18 07:36:04 +00:00
Jeffrey Altman
9bf29bbe1e windows-afs-config-vista-uac-20070918
Mark afs_config.exe via a manifest with
requestedExecutionLevel = HighestAvailable

This will ensure that when Vista UAC is active, that a member of the
Administrators group must run the AFS Control Panel with Administrators
privileges.
2007-09-18 07:13:08 +00:00
Jeffrey Altman
8ba598cd84 windows-cl1310-manifests-20070918
add support for manifests to .NET 2003 builds
2007-09-18 07:07:16 +00:00
Jeffrey Altman
eae26ab6b2 windows-nsis-20070918
fix error in NTMakefile that used the CL_1310 configuration for the
VS 2005 compiler

force RequestExecutionLevel to admin for Vista
2007-09-18 07:04:02 +00:00
Jeffrey Altman
70fa2d2499 windows-down-servers-20070913
Do not assign a new downTime to a server that is already down.
Doing so breaks the logic to preserve callback validity until the
server comes back up.
2007-09-13 18:58:00 +00:00
Jeffrey Altman
b06335911b windows-afsmaxpath-20070912
ensure that all path stack buffers are of size AFSMAXPATH
2007-09-13 02:41:07 +00:00
Jeffrey Hutzelman
f15a9a2788 dafs-shutdown-state-fix-20070912
clean up the dafs shutdown code to not read bogus info into the id
2007-09-12 19:25:53 +00:00
Derrick Brashear
a6d7cacfdc aklog-kimpersonate-20070912
inline kimpersonate support, to make testing easier.
2007-09-12 19:09:42 +00:00
Jeffrey Altman
5647c133e9 windows-dir-bplus-shortnames-20070912
When a file name does not conform to 8.3 notation, an 8.3 notation
alias is generated for it.  This short name form must be searchable
in the B+ tree.

This commit adds a longname field to the data node which is used both
to identify the real name associated with the short name as well as
whether or not the short name is in fact an alias.   Being able to
determine whether or not a data node is an alias will be important
when we support using the B+ tree for directory enumeration.

For insertion, if the name does not conform to 8.3 notation, a second
entry is inserted into the B+ tree using the shortname as the key and
the longname stored in the data.

For deletion, we lookup the data node for the provided key.  If there
is a longname we remove the longname entry first and then the shortname
entry.  If the key is a longname, we lookup the data node so we can
acquire the FID and then use that to compute the shortname.  We then
remove both the shortname and longname entries from the B+ tree.
2007-09-12 18:28:00 +00:00
Jeffrey Altman
40090977d2 windows-getcell-deadlock-20070911
don't hold the cm_scache_t mutex across calls to cm_GetCell() since
cm_GetCell() can block in an RPC call.  If that cm_scache_t must be
accessed to revoke a callback, it can result in a deadlock.
2007-09-11 17:11:54 +00:00
Chaskiel M Grundman
c22f945bb7 namei-protect-against-extra-files-20070911
if someone is monkeying in the filesystem, sometimes they shoot themselves. save them if they renamed foo to foo.bak (where foo is a full 64 bits)
2007-09-11 16:37:01 +00:00
Jeffrey Altman
bf6c13352a windows-prefetch-executables-20070911
avoid prefetch race condition in CreateX functions

do not permit reference underflow when ending background prefetch ops
2007-09-11 06:02:42 +00:00
Derrick Brashear
049c95d74c namei-fsync-less-20070910
remove sync() call from Windows build
2007-09-10 22:54:25 +00:00
Jeffrey Altman
3b7188b326 windows-prefetch-executables-20070910
This code defines a new service parameter "PrefetchExecutableExtensions"
of type REG_MULTI_SZ.  By default it is undefined and does nothing.  If
it is defined, files that match the extensions will be prefetched in
their entirety.

All of the prefetch functions now pay attention to the length parameters.
Previously, length parameters were specified on some functions in the
chain but they were ignored.  The reality was that the chunksize was
used regardless of what was indicated.

Prefetching is still optional.  If the prefetch fails during the initial
attempt you lose.  Otherwise, as many buffers as are required to satisfy
the requested prefetch length will be requested from the file server in
chunksize units.  If buffers have already been acquired, they are skipped
during the prefetch operation.
2007-09-10 20:06:58 +00:00
Jeffrey Altman
22da0dd5f8 windows-largeinteger-20070910
Fix the function type so that assignment of return values are
properly applied.

Add missing comparison routines.
2007-09-10 20:00:55 +00:00
Jeffrey Altman
7a6e406b80 windows-callbacks-20070909
when suspending only clear callbacks for servers that are in an up state.
if they were in a down state, then we couldn't send the clear callbacks
message but more importantly, we need to leave the callback info current
because the callbacks should not be cleared until the server is once again
reachable.
2007-09-10 05:53:48 +00:00
Jeffrey Altman
4914e45f26 windows-readme-nt-20070909
update NSIS version to 2.30
2007-09-10 05:12:10 +00:00
Jeffrey Altman
36414528ad windows-wix-20070909
make the service display name consistent with the NSIS installer.
2007-09-10 04:33:44 +00:00
Jeffrey Altman
4913dd6b78 windows-nsis-20070909
do not link object files twice
2007-09-10 04:30:34 +00:00
Rainer Toebbicke
dbbd59495b namei-fsync-less-20070907
FIXES 30632

we call fsync() too much. call it less, and fsync in the background
2007-09-07 05:02:09 +00:00
Derrick Brashear
b3e385fc10 consolidate-cellservdb-20070905
step 1. one place.
step 2 is coming: fix the scripts to update it when we do a release
2007-09-05 22:49:30 +00:00
Jeffrey Hutzelman
edaa34d3a0 dafs-savestatefe-avoid-overflow-20070902
The problem is that cb_stateSaveFE() overflows an iovec array
on its stack. When it returns, the PC is loaded with garbage and the
process crashes.
2007-09-03 04:58:40 +00:00
Jeffrey Altman
a8eddfb0f5 windows-64bit-ms2mit-20070902
add ms2mit support for 64-bit windows
2007-09-02 17:36:23 +00:00
Jeffrey Altman
6270294d49 windows-win64-kfw-20070902
leashw32.dll has been ported to win64 as leashw64.dll
2007-09-02 17:21:25 +00:00
Jim Rees
7cbd3a320a obsd-rm-pinstall-20070831
skip pinstall
2007-08-31 18:22:11 +00:00
Jeffrey Altman
8056e9347a dafs-commit-updatelist-change-20070831
actually save the changed value
2007-08-31 15:30:27 +00:00
Jeffrey Altman
cd7ac781bc windows-afscreds-win64-20070830
disable krb4 and ms2mit for win64
2007-08-31 05:02:23 +00:00
Jeffrey Altman
084ade0a98 windows-afsd-dirop-20070830
Do not attempt to obtain a write lock on a directory
if we already know that we aren't going to perform any
local directory updates.

Add the CM_ERROR_BPLUS_NOMATCH error which has the same
meaning as CM_ERROR_NOSUCHFILE except that it indicates
that we came to that conclusion as the result of a bplus
search.  This provides us the ability to short circuit
additional directory searches since we know the answer
is final.
2007-08-31 03:55:53 +00:00
Asanka Herath
d8db0aa8eb windows-wix-20070830
permit instloop.exe to be extraced to Client/Programs/instloop.exe
from the installer by using "msiexec /a".
2007-08-31 03:26:13 +00:00
Jeffrey Altman
ad8a1cc216 windows-64bit-afskfw-20070829
Disable the use of krb524, leash, and ms2mit (because it depends on leash)
for 64-bit builds.  We will need to implement our own replacement for the
ms2mit functionality.
2007-08-29 22:51:35 +00:00
Jeffrey Altman
0d81b9662e windows-wix-64bit-aklog-20070829
enable the installation of aklog.exe and asetkey.exe on 64-bit
windows.
2007-08-29 07:53:51 +00:00
Jeffrey Altman
d62316facd windows-64bit-aklog-no-krb4-20070829
disable krb4 and krb524 functionality in 64-bit aklog because there is
no support in 64-bit kfw.
2007-08-29 07:45:12 +00:00
Jeffrey Altman
20914ba284 windows-nim-afs-file-ccache-20070829
make the afs network identity provider compatible with FILE:
credential caches.  this is mostly of importance to 64-bit
Windows users since there is no CCAPI implementation for
64-bit KFW.
2007-08-29 06:31:03 +00:00
Jeffrey Altman
cad4d1137b windows-64bit-nim-no-krb524-20070828
do not load krb524.dll on 64-bit windows
2007-08-28 22:22:53 +00:00
Jeffrey Altman
1c264430ff windows-bplus-disable-20070828
In preparation for 1.5.24, disable B+tree support by default.
It can be enabled with the "BPlusTrees" registry parameter.
2007-08-28 18:48:49 +00:00
Jeffrey Altman
43d5267be5 windows-wix-amd64-nim-provider-20070828
Add network identity manager afs provider for amd64
2007-08-28 18:30:08 +00:00
Jeffrey Altman
822ad3eb72 windows-amd64-20070828
add amd64 build dependencies
2007-08-28 17:59:48 +00:00
Jeffrey Altman
3eb4ef6301 windows-nim-amd64-20070828
Add support for 64-bit Windows.
2007-08-28 17:53:26 +00:00
Jeffrey Altman
ac7471cc33 windows-bplus-20070826
add more DEBUG_BTREE debugging code

in placeEntry() protect against slot equal to zero

fix compareKeys() to only return -1, 0, or 1.
2007-08-27 01:10:15 +00:00
Jeffrey Altman
cd0a515e9f windows-recursion-fix-20070826
protect against a null pointer dereference
2007-08-27 01:04:09 +00:00
Jeffrey Altman
8f9b810bf0 windows-bplus-tree-20070825
== ! =

fix the return code in cm_Rename()
2007-08-25 17:55:07 +00:00
Jeffrey Altman
c8bf408ced windows-bplus-tree-20070823
Windows uses case-insensitive file name pattern matching
but AFS is a case sensitive file system.  The AFS3 directory
format is block based, uses network byte order and
includes a hash table for fast case sensitive lookups.
This causes several problems for the Windows AFS client.
(1) Traversing the directory blocks is cpu expensive
(2) A hash table miss does not indicate that the desired
    entry does not exist.
(3) Determining whether a non-ambiguous inexact match or
    the entry does not exist requires a linear traversal
    of the entire directory.
These issues often result in 100% CPU utilization.

These issues are addressed by building a modified B+ tree for
each directory and then using the B+ tree for searches.

Further improvements can be made by using the B+ tree leaf
nodes for directory enumeration.
2007-08-24 04:19:18 +00:00
Jeffrey Altman
e5ec3ad4fc windows-recursion-fix-20070823
for . and .. find the last time we saw the fid in the list
instead of moving back a fixed count since the parent might
be a symlink or a mount point or both
2007-08-23 21:42:55 +00:00
Jeffrey Altman
c675454e7f windows-makedir-uninitialized-var-20070823
scp must be initialized to NULL to prevent improper evaluation
2007-08-23 17:50:58 +00:00
Jeffrey Altman
985a2e34d6 windows-volstat-log-20070823
must save the log string when it comes from a buffer on the stack
otherwise garbage is logged in afsd.log
2007-08-23 17:47:46 +00:00
Jeffrey Altman
1727d4928f windows-smb-max-path-20070823
the actual max path is 260 not 256
2007-08-23 17:44:43 +00:00