Commit Graph

10497 Commits

Author SHA1 Message Date
Andrew Deason
234bedae6e vos: Avoid creating volume with the same RO/BK ids
If we specified an RW id of 5, an RO id of 6, and no BK id, this code
would assign the BK id to RW+1, or 6. This gives the RO and BK volumes
the same volume id, which is a mistake. Choose a different id instead.

Change-Id: I7910008dd6147a95d482337f91926e9e0d924b9e
Reviewed-on: http://gerrit.openafs.org/7603
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
2012-07-06 11:26:45 -07:00
Andrew Deason
5800b7f23c viced: fsprobe needs MT_LIBS
fsprobe is built pthreaded, so it needs MT_LIBS; otherwise HP-UX and
possibly other platforms complain about missing pthread symbols. Just
copy the libs from the fileserver link line.

Change-Id: I78e69c9ea45e983e997b1bc1bb59f97ee07c3e2f
Reviewed-on: http://gerrit.openafs.org/7609
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-06 10:01:35 -07:00
Jeffrey Altman
9be78ab820 ptserver: unused by set variable 'eid_s'
Third declaration of 'eid_s' in WalkNextChain() set but unused.
[-Werror=unused-but-set-variable]

Change-Id: I7a4e2ea3dea3d58379e31d3c6cb4b3169a882bce
Reviewed-on: http://gerrit.openafs.org/7737
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 23:47:53 -07:00
Jeffrey Altman
9bc068edc8 Windows: interlocked ops for osi lock flags
Use interlocked operations to set and clear the flags in the osi
mutex and readwrite lock objects.

Change-Id: I92089650d3474efb76c45293b5209b3e2350d983
Reviewed-on: http://gerrit.openafs.org/7720
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 21:49:52 -07:00
Jeffrey Altman
d5f067aa73 Windows: use spin counts for osi base locks
On multiprocessor systems, spin counts are faster than entering
a processor wait state when there is critical section contention.
Microsoft recommends a count of 4000.  This feature is only available
on XP and above which is fine since OpenAFS master and 1.7 no longer
support Windows 2000.

Change-Id: I1b40d00b2a91e60e1676a53e1c38eb5f9bfadc69
Reviewed-on: http://gerrit.openafs.org/7719
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 21:49:40 -07:00
Jeffrey Altman
f4baf7cf99 Windows: X86 DEBUG Interlocked Or and And
X86 DEBUG builds do not have a native InterlockedOr or
InterlockedAnd.  Therefore, we must provide our own.

Change-Id: I48f86feb58c96e327500e802340a213c0f70d5e4
Reviewed-on: http://gerrit.openafs.org/7726
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 21:23:14 -07:00
Michael Meffie
7f646382f6 vldb_check: remove unused functions
Remove the readSIT function, which has been unused
since the IBM days.  Remove the commented out and
unimplemented writeUbikHeader stub.

Change-Id: Ic2cebba6ddf803a537a6b1e5f24db51560209436
Reviewed-on: http://gerrit.openafs.org/7613
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 21:13:32 -07:00
Andrew Deason
828ef9c39a doc: Add fs bypassthreshold man page
FIXES 130050

Change-Id: I0ffc7b93ed9dd93765a25efd60fe3430a86366cf
Reviewed-on: http://gerrit.openafs.org/7602
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 20:50:50 -07:00
Jeffrey Altman
52f3878da4 Windows: remove used 'deltas' from cm_CheckServersMulti()
Change-Id: I9dd5e72a8fe748a06aa4d008888a41017d60570c
Reviewed-on: http://gerrit.openafs.org/7725
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 20:37:08 -07:00
Jeffrey Altman
3b3b620a03 Windows: Apply cm_GetVolServerList() to cm_ConnFromVolume()
Use cm_GetVolServerList() in cm_ConnFromVolume() to ensure an
error is returned instead of dereferencing a NULL pointer if
the serverRef list for the requested volume cannot be obtained.

Change-Id: I265b7e8b64fcf6b4444c7d504e5109d67fa48089
Reviewed-on: http://gerrit.openafs.org/7724
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 20:36:55 -07:00
Jeffrey Altman
4e3400414f Windows: Apply cm_GetVolServerList() to cm_Analyze()
Using cm_GetVolServerList() it is possible to simplify
the logic in cm_Analyze().  It is no longer necessary
for cm_Analyze() to call cm_GetServerList() which must
obtain its own reference the the cm_volume_t object via
a fileId lookup.  This reduces lock contention and makes
the code a bit more readable.

Change-Id: I3a39458676af06fd473489d639bf9d2fe80c0b9d
Reviewed-on: http://gerrit.openafs.org/7723
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 20:32:56 -07:00
Jeffrey Altman
2575d87824 Windows: Add cm_GetVolServerList
cm_GetVolServerList() is a wrapper for cm_GetVolServers() that
returns CM_ERROR_NOSUCHVOLUME if the server list cannot be
obtained for the requested volume.

Change-Id: I1ab21b3f6ca71507cc382738cb50f87e92ee2ce2
Reviewed-on: http://gerrit.openafs.org/7722
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 20:32:41 -07:00
Jeffrey Altman
ef5686b1a1 Windows: Modify cm_GetVolServers and cm_GetServerList
Move the determination of the 'replicated' state into
cm_GetVolServers() so that cm_GetServerList() and
cm_ConnFromVolume() can be implemented without duplicating
the resolution of the cm_vol_state_t object.

Change-Id: I355cb2cdf7e327742df7936171ad3dc604f135df
Reviewed-on: http://gerrit.openafs.org/7721
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 20:32:26 -07:00
Jeffrey Altman
5b9e9265a0 Windows: cm_ConnByServer hold userp->mx only while necessary
The cm_userp_t does not need to be locked while the cm_conn_t
force new connection processing is taking place.

Change-Id: Ia3711d393d60382b18f7e45621561d2015b97af7
Reviewed-on: http://gerrit.openafs.org/7718
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 18:19:03 -07:00
Jeffrey Altman
c3ce54e6b7 Windows: cm_ConnByServer add conn to list after init
Do not add a newly created cm_conn_t to the cm_server_t connsp
list until after the object is fully initialized.

Change-Id: Ic5605abefb51d9342f0d249903e13e99b90452b7
Reviewed-on: http://gerrit.openafs.org/7717
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 18:18:37 -07:00
Jeffrey Altman
f73aebbe87 Windows: cm_HaveCallback optimize .readonly
If the cm_scache_t has a registered callback, there is no reason
to obtain a volume reference for a .readonly.  Just use the
callback.

Change-Id: I40a696b9c5fa2e8104837871236c41c338dfbdf9
Reviewed-on: http://gerrit.openafs.org/7716
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-05 10:09:54 -07:00
Jeffrey Altman
561b9ce809 Windows: RDR RXAFS_GetVolumeStatus vs 1.1 'l' only
The Windows redirector relies upon the ability to obtain volume
status information to decide whether a file system volume object
can be created and whether or not an extending write can be
permitted.  As of this writing, the file server always performs
a PRFS_READ access check on the volume's root directory (1.1)
vnode as a condition for releasing the volume state information
which includes:

  Message of the day (if any)
  Offline message (if any)
  Online flag
  InService flag
  Blessed flag
  NeedsSalvage flag
  Type
  MinQuota
  MaxQuota
  BlocksInUse
  PartBlocksAvail
  PartMaxBlocks

All of this information is publicly available to anonymous users
via "vos examine" so it is odd that it is hidden from anonymous
cache managers.  When RXAFS_GetVolumeStatus fails, the AFS redirector
was failing to create a file system object for the AFS volume.  That
in turn prevented the volume from being accessed even if the user
had 'l' in the root directory and full access everywhere else.

This patchset will make up fake data for the AFS volume if the
RPC fails.  However, doing so does have consequences.  The client
will be unable to make an accurate determination regarding free space
on the file server.  As a result, an extending write may be permitted
which writes data into the system page cache which in turn cannot
be written to the file server.   Such data will be lost and unrecoverable.

Change-Id: Ic818ce9d51893181941f41d6628394b5917dc811
Reviewed-on: http://gerrit.openafs.org/7704
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:05:34 -07:00
Jeffrey Altman
261ec65f20 Windows: HaveCallback vs readonlyVolumeVersioning
If the cm_scache_t volumeCreationDate is 0, the field is not
valid for comparison.  Add a check during the have callback test.

Change-Id: I95bbf229d9ee1c7acfd4b7fe30242faaa4c22cf6
Reviewed-on: http://gerrit.openafs.org/7680
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:04:52 -07:00
Jeffrey Altman
c3485a35b7 Windows: HaveCallback vs OfflineRO Is Valid
commit f716962ab4
inadvertently broke the offline .readonly is valid functionality
when readonly volume versioning is disabled.  Restore it.

Change-Id: Iae282f394d49ca5f558a62819bc2bbd8dd7f152e
Reviewed-on: http://gerrit.openafs.org/7679
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:04:19 -07:00
Jeffrey Altman
64a37fa9f9 Windows: cm_DiscardSCache volumeCreationDate
commit f716962ab4
clears the cm_scache_t volumeCreationDate field.
It shouldn't because the volumeCreationDate is not a property of
the callback.  It is a property of the status information which
does not change simply because the callback expires.

Change-Id: I3f73cf89588de6c1c87434cd04b86939d45cfa43
Reviewed-on: http://gerrit.openafs.org/7678
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:04:05 -07:00
Jeffrey Altman
673127f692 Windows: add missing items to 'clean' rules
Change-Id: Ibf7ce081d789a5940033ecdcfd62515824176368
Reviewed-on: http://gerrit.openafs.org/7653
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:03:45 -07:00
Jeffrey Altman
17584782a4 Windows: afslogon expand short domain names
Depending on how the user specifies the domain name during login,
NPLogonNotify may be given a short or a full domain or kerberos
realm name.  If the name is the short name, attempt to expand it
automatically if there is no 'realm' configured for the short
domain name.

This patchset relies upon data in the local registry instead of
using an API such as NameTranslate in order to avoid network
queries to the domain controller that might not be reachable.

Change-Id: Ib2cd08bca5223fa847a462520074bb758191539d
Reviewed-on: http://gerrit.openafs.org/7650
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:03:26 -07:00
Jeffrey Altman
712c0c1d0e Windows: afscreds import lsa before renew expiring
Change-Id: I53d3d000a0970089417d7855fda7a97ba4e61000
Reviewed-on: http://gerrit.openafs.org/7649
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:03:10 -07:00
Jeffrey Altman
0834e40bd7 Windows: Remove HELP from afscreds
The old .hlp format is no longer supported and the text of the
help files is long out of date.  Remove the HELP buttons from
the dialogs and all references to WM_HELP message processing
from the application.

Change-Id: I4c735993c7a79d46cbbc49440aa6d77b6861ff85
Reviewed-on: http://gerrit.openafs.org/7648
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:02:46 -07:00
Jeffrey Altman
91795c6590 Windows: afslogon major refactoring NPLogonNotify()
This is a major refactoring of NPLogonNotify() that is meant
to reduce redundancy and add functionality.  Key highlights
include:

 * New Domain\user hierarchy that permits configuration
   settings to be applied on a per user basis instead of a
   domain basis.  As part of the extension the username itself
   can be mapped.

 * Attempt to import the MSLSA credentials prior to performing
   KFW_AFS_get_cred().

 * Do not perform redundant KFW_AFS_get_cred() calls.

 * Add a flag to indicate if the authentication name is the
   LSA principal name.

 * Add more debugging messages.

Change-Id: Iacd6c6b4d3fe25f07a9c6982d0859eee22d09fe8
Reviewed-on: http://gerrit.openafs.org/7635
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:02:30 -07:00
Jeffrey Altman
76ae0f01b3 Windows: afslogon cast away warnings
cast away size_t to int warnings in 64-bit builds.

Change-Id: I1200fe6235d75f87c5d8e78496baae29b3c5242c
Reviewed-on: http://gerrit.openafs.org/7634
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-04 07:02:15 -07:00
Andrew Deason
79f68de80e Remove empty Makefile continuation lines
HP-UX make gets confused by constructs like:

   FOO = bar \

   BAZ = quux

Where a line continuation is followed by an empty line. So, get rid of
all of these in the tree. Not all of them matter, but removing all of
them makes it easier to find these, and catch them in the future.

Change-Id: I7d5ef000b5b55de4b71c183589fbfe36e3880ba1
Reviewed-on: http://gerrit.openafs.org/7611
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 10:32:55 -07:00
Jeffrey Altman
4707174938 Windows: cm_UpdateVolumeLocation misplaced lock
The volume->mx was obtained in the wrong place which resulted
in the potential of a panic caused by obtaining the mutex when
it was already held.

Change-Id: I812ed57bef93c60358591a2a1e19009fc6bb1a2d
Reviewed-on: http://gerrit.openafs.org/7654
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:34:52 -07:00
Jeffrey Altman
4929b0cb0b Windows: WiX backup additional registry keys
Move backup storage to HKLM\Software\OpenAFS\BackupSettings

Backup HKLM\SYSTEM\...\Services\AFSRedirector

Add ..\TransarcAFSDaemon\NetworkProvider "Debug" value

Change-Id: Iecf0c99ec941fee2bf8ed7f1e8224a50d751bdef
Reviewed-on: http://gerrit.openafs.org/7652
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:33:05 -07:00
Jeffrey Altman
03dfcce05a Windows: ensure TreeLock obtain and release same pointer
The indirection ObjectInformation->ParentObjectInformation does
not appear to be stable.  When acquiring and releasing a parent
TreeLock, use a local variable to store the ParentObjectInformation
pointer and use that to access the TreeLock.  This will ensure that
the resource obtained is the one that is released.

Change-Id: If359de0f7572cfa4e401baa47affa6872b79e932
Reviewed-on: http://gerrit.openafs.org/7651
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:32:44 -07:00
Jeffrey Altman
f3f282265a Windows: Media Protected if create on RO volume
If there is an attempt to create a file/directory on a readonly
volume as indicated by the Volume Characteristics, return
STATUS_MEDIA_WRITE_PROTECTED immediately.  Do not bother contacting
the afsd_service.

Change-Id: I809adacbbc429166d9a0e308752e484400799cb8
Reviewed-on: http://gerrit.openafs.org/7647
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:31:45 -07:00
Jeffrey Altman
53413685ce Windows: Remove incorrect assert AFSVolumeInfo
When querying the volume information, the input FileId does not
have to be a volume root.  Remove this extraneous assertion.

Change-Id: Iee4c64c395ad409dfcc3d3be31df63ceaf70fc07
Reviewed-on: http://gerrit.openafs.org/7646
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:31:13 -07:00
Jeffrey Altman
dddd393198 Windows: NPGetConnectionPerformance
Restore the implementation of NPGetConnectionPerformance
in AFSRDFSProvider.dll.  This time just return 0 for all fields
except for the preferred read/write size which is set to 64K.

When this function is not implemented at all, a query for
performance of a \\AFS path will be processed by the SMB
redirector.  This can result in a 20 second timeout while waiting
for the SMB Browser query for "AFS <20>" to complete.

Change-Id: I67f7a3f0bb20a4be791bc153109e4e91144e00af
Reviewed-on: http://gerrit.openafs.org/7645
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:30:48 -07:00
Jeffrey Altman
5a6cf14946 Windows: ShellExt Add Prop Page only if AFS
If the file is not in AFS, do not add any of the AFS specific
property sheets.

Change-Id: Ie6a794d4b93821287a8d41c6f2e4931edaf45917
Reviewed-on: http://gerrit.openafs.org/7644
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:30:17 -07:00
Jeffrey Altman
d95d4fcca9 Windows: ShellExt display error if symlink not AFS
If the path in which a Symlink is to be created is not located
within AFS, display an error dialog.

Change-Id: I8e4cc6840d56184da7d842cc552d11624cdef89d
Reviewed-on: http://gerrit.openafs.org/7643
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:29:00 -07:00
Jeffrey Altman
349c1f5338 Windows: Dir Invalidation Notify Current Object
When an invalidation is processed for a directory object,
send the notification on the directory object that was invalidated
not its parent.

Change-Id: I2f5e698e451576891a82364058baee3dc6717362
Reviewed-on: http://gerrit.openafs.org/7642
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:28:33 -07:00
Jeffrey Altman
05ac74528b Windows: check perms before RXAFS_GetVolumeStatus
Instead of calling RXAFS_GetVolumeStatus naked, perform a read
permission check using RXAFS_FetchStatus first.  This permits EACCES
caching to prevent unnecessary requests.

Regardless of which FileId is queried, always use the root vnode
FileId for the permission check.  The file server performs its
permission check using the root vnode.

Change-Id: I3260bf0061beed5d95aae1d40e25d17be1811271
Reviewed-on: http://gerrit.openafs.org/7641
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:28:06 -07:00
Jeffrey Altman
4785361388 Windows: cm_GetROVolumeID empty server list check
Instead of testing for a non-NULL server list, check to see
that the list itself is non-empty.

Change-Id: I1d8be33cd5f0713677d6013f5d7344400f6b1ae6
Reviewed-on: http://gerrit.openafs.org/7640
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:26:30 -07:00
Jeffrey Altman
056399bb0d Windows: Replicated requires more than one site
The VLDB response may include a list of servers some of which
are not valid replicas because the DONOTUSE flag is set or
because the replica site may be out of date.  Instead of setting
the replication state based upon the server count in the VLDB
response, use the number of RO sites that were deemed valid
at the end of processing.

Change-Id: I47780e1633f3148f1f7c76af89224cbe37dde6c6
Reviewed-on: http://gerrit.openafs.org/7639
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:26:01 -07:00
Jeffrey Altman
877053a8cd Windows: [Inline]BulkStat VolSync not accurate?
Instead of only recording the volume creation date when
cm_readonlyVolumeVersioning is true, record the date whenever
the RPC in use is not a RXAFS_[Inline]BulkStatus.  This is
tracked by the addition of flags for cm_MergeStatus and
cm_EndCallBackGrantingCall which identify when the RPC was
in fact a BulkStat variant.

As a reminder, pre- 1.4.11 and 1.6.0 file servers do not
properly set the VolSync structure when responding to BulkStat
RPCs.  At present, there is no method of identifying when it
is safe to use them.  When cm_readonlyVolumeVersioning is TRUE,
it is assumed that the file servers are new enough to do the
right thing.

Change-Id: Ida9a30b07ea646a094e9753af9d79f36ab095a98
Reviewed-on: http://gerrit.openafs.org/7638
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:25:27 -07:00
Jeffrey Altman
ae25cf277c Windows: force vldb lookup if server list is empty
The Windows cache manager can mark server references as "deleted"
which can give the impression that a server reference list is not
empty when it is.  If the volume list is empty any attempt to
issue an RPC would fail with a CM_ERROR_ALLDOWN error.  Since the
VLDB data is current, this condition will remain for two hours.

This patchset adds a new error, CM_ERROR_EMPTY, which is returned
when the server reference list is empty.  cm_Analyze() is modified
to process the CM_ERROR_EMPTY error by attempting to update the
server reference list.  If the update succeeds and the list is no
longer empty, the RPC is retried.  Otherwise, the RPC fails as
before.

Change-Id: I13891c28ec9916bdd03c1b02e1c9049ed0581ed3
Reviewed-on: http://gerrit.openafs.org/7637
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 09:05:56 -07:00
Jeffrey Altman
e0b9b89dd9 Windows: Freelance Short circuit all vol updates
As long as the cell is the Freelance Cell ID the volume updates
should be short circuited.  There is no benefit to performing
the extra work.

Change-Id: I3449d8a11607406a616918f9a60796552a6cf6d4
Reviewed-on: http://gerrit.openafs.org/7636
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 08:50:18 -07:00
Jeffrey Altman
7fd1dc6c88 Windows: AFS_Startup_Event must query Debug value
For proper debugging to be performed within the AFS_Startup_Event
processing, the "Debug" value must be queried from the registry.

Change-Id: I3b9fa48029f45022c9c5c00cadd64d0822878046
Reviewed-on: http://gerrit.openafs.org/7633
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 08:08:41 -07:00
Jeffrey Altman
187af8d113 Windows: NPLogonNotify secure erase password
The user's password is copied during the NPLogonNotify
processing, be sure to erase it from the stack before the
function completes.

Change-Id: Ib600f5656f7b32628e7105336ff0ffef8f15272f
Reviewed-on: http://gerrit.openafs.org/7632
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 08:08:01 -07:00
Jeffrey Altman
c8b1f007b5 Windows: afslogon impersonate when deleting tickets
When tickets are obtained via the KFW_AFS interface the user
context is being impersonated.  Do the same when cleaning up.

Change-Id: Iba43db2e66d8f02e9fbf4e076f6429a53838edea
Reviewed-on: http://gerrit.openafs.org/7631
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 08:07:36 -07:00
Jeffrey Altman
ae5aba17cc Windows: afslogon make error dialog system modal
Prevent error dialogs from getting lost behind the desktop
during logon.  Make them system modal.  Add a warning icon
as well.

Change-Id: I63aa89d130af18846c86abe4a3327bf7b87e3058
Reviewed-on: http://gerrit.openafs.org/7630
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 08:07:07 -07:00
Jeffrey Altman
7adb93cf51 Windows: afslogon MapAuthError
return WN_NET_ERROR (ERROR_UNEXP_NET_ERR) to indicate a problem
with this network provider when an error occurs instead of
returning WN_NET_SUCCESS.

Change-Id: Ideaab8b5043e9033adc19efa158c95415f561d0e
Reviewed-on: http://gerrit.openafs.org/7629
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 08:06:38 -07:00
Jeffrey Altman
43d53bed6f Windows: afslogon OutputDebugString
If the NetworkProvider "Debug" value has the 1th bit set (2),
generate all debug values to the debugger via OutputDebugString().

Change-Id: Ie7552fc5d154c178c38962672598a3b71321294d
Reviewed-on: http://gerrit.openafs.org/7628
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 08:06:03 -07:00
Jeffrey Altman
e513799232 Windows: Do not permit RDR worker threads to quit
If the DeviceIoControl from the service's redirector worker threads
fails the thread will terminate.  This is a problem because if all
of the threads quit the afs redirector will end up deadlocking
all requests since there will be no method of delivering them to
the service.  If there is an error log it (if possible), and retry.
Hopefully it will be transient.

Change-Id: I3ce5e338e41fd71c5289fe778789f0300c0b5ecd
Reviewed-on: http://gerrit.openafs.org/7627
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 08:02:06 -07:00
Jeffrey Altman
d7690835ac Windows: misplaced brace in KFW_AFS_get_cred
A misplaced brace in KFW_AFS_get_cred() results in KFW_AFS_klog()
being executed twice in a row if successful.  The second attempt
could fail due to a KRB5KRB_AP_ERR_REPEAT error issued by the KDC.

Change-Id: I6364c1e378eeeeec9f66449674c8cd240f029a8a
Reviewed-on: http://gerrit.openafs.org/7626
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-07-03 08:01:36 -07:00