commit ba718cba9285fc9f663b0fd15524bc5474cca893 Author: Jeffrey Altman Date: Wed Oct 31 20:59:30 2012 -0400 Windows: Use MountRoot for Absolute Symlinks Replace the absolute symlink processing in AFSLocateName(). Implement AFSIsAbsoluteAFSName() to test whether or not the path is in fact an absolute /afs path by comparing the input string to the registry MountRoot value which specifies the case sensitive root path for all absolute symlinks stored in the AFS cell. If a symlink target path begins with a directory separator and is not an absolute afs path name, return an error. Construct the substitution string using the target path without the MountRoot prefix. Add functionality to AFSRedir.sys to read the MountRoot from the registry and pass it on to AFSRedirLib.sys. Change-Id: Ie1df24da1e6de257c73dc34c80a75288bad47d29 Reviewed-on: http://gerrit.openafs.org/8353 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7fe30bd28e62ad0ed717c24e8eccf5e563b9cd68 Author: Derrick Brashear Date: Thu Nov 1 14:15:27 2012 -0400 configure: check for poll() if we have code which uses HAVE_POLL, check for poll(). Change-Id: I1baf61541b243f82b3acca112db2cbbca813182b Reviewed-on: http://gerrit.openafs.org/8357 Reviewed-by: Chaskiel Grundman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5be3cdc3f3a3b1d78a9c9f7acb9e5ee81d5a5191 Author: Simon Wilkinson Date: Tue Oct 30 11:25:02 2012 +0000 opr: Add dictionary implementation Add a simple implementation of a dictionary/hash structure based around opr queues and the jhash hashing function. Change-Id: I4ae5cafcef377b05c8caa7c455737a992b1d36cd Reviewed-on: http://gerrit.openafs.org/8355 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 07372cf7e76acf62eb26908977e2682338c85ac1 Author: Simon Wilkinson Date: Mon Oct 29 19:02:03 2012 +0000 opr: Add opr_jhash_int2 function Add a function to jhash that can be used to hash a pair of unsigned integers (or other stuff that can cast to them) without having to build up an array. Provide a couple of tests for the new function Change-Id: I594848f64316fb459eff565933691f560512ca79 Reviewed-on: http://gerrit.openafs.org/8354 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: BuildBot commit dce5e012fedb3efc9e7acd9c443b7ec2caaf47ae Author: Simon Wilkinson Date: Thu Nov 1 17:38:45 2012 +0000 tests: Fix fallout from cleanup change The change to cleanup temporary files after tests (0c3670914a05c7aa33f0b1239ba9cc25f430ed04) broke all attempts to run the tests using libwrap, as it would cause libwrap to run the binary named "MAKECHECK=1" Move the variable defintion before the libwrap invocation to fix this. Change-Id: I330267c9b53483abccf43d60a7dc8f8d973c3959 Reviewed-on: http://gerrit.openafs.org/8356 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 6580d64b5d8ef0ccce71b72783b33c9e6f75b9e8 Author: Jeffrey Altman Date: Wed Oct 31 12:04:50 2012 -0400 Windows: cm_ConnByServer increment under lock Incrementing the cm_conn.refCount must be performed while holding the cm_connLock in order to prevent cm_GCConnections() from seeing an in-use object as having a zero count. Change-Id: Ifaa755ef0f04f3bf64223434dfc518bc73d01d4d Reviewed-on: http://gerrit.openafs.org/8347 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b0283d5f17aafecf258479d6691682af3baaa0fd Author: Jeffrey Altman Date: Wed Oct 31 09:53:57 2012 -0400 Windows: cm_FindVolumeByName refactoring The cm_volume allocation within cm_FindVolumeByName() was racy. Given how locks were obtained and dropped it was possible for two threads to both determine that a cm_volume_t object needed to be allocated. It might even have been possible for two threads to attempt to allocate the same object. This refactoring ensures that if a volume cannot be found under a read lock that a second search is performed under the write lock in case the object had in fact been allocated during the transition. Once it is determined that an allocation is required, the cm_volumeLock is not dropped until the object has been built and inserted into the name hash table. This ensures that two threads cannot attempt to allocate a cm_volume object for the same volume group. InterlockedIncrement is used to manage the cm_data volume count. Change-Id: I64c07cbc0f7968c5580478ff33214f67088072f8 Reviewed-on: http://gerrit.openafs.org/8346 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d914034d4c5fd48fb89b1380da24984a520bae33 Author: Jeffrey Altman Date: Wed Oct 31 09:52:23 2012 -0400 Windows: use cm_GetVolume / cm_PutVolume Instead of locally incrementing and decrementing the cm_volume refCount field use cm_GetVolume and cm_PutVolume. Doing so makes it easier to see if there is an imbalance. Change-Id: Id62e42a74a9b1d9865a00dae177550a93e6e0f08 Reviewed-on: http://gerrit.openafs.org/8345 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2b798792fb56c5feda8e68dd433c82f43b1698aa Author: Jeffrey Altman Date: Wed Oct 31 09:50:34 2012 -0400 Windows: Interlocked ops for cell and scache allocation Replace foo++ with InterlockedIncrement for cm_data cell and scache counters which are used for allocating objects. Change-Id: I09d2a536ef559d6d5873a3fdead4c8580bc93a0c Reviewed-on: http://gerrit.openafs.org/8344 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit aa3579b26503f42de50e7c58c56937a7fbf4d45f Author: Jeffrey Altman Date: Tue Oct 30 21:54:20 2012 -0400 Windows: Do not flush dirty bufs to deleted FID If the FID is known to have been deleted, drop all dirty data returned from the redirector on the floor. Change-Id: I8b9a1a69d632d7243bdbcfedb5329558e0004d2e Reviewed-on: http://gerrit.openafs.org/8343 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4a8e1385844eb3a1c6c70758baa7522cf35130df Author: Hartmut Reuter Date: Thu Oct 18 09:38:50 2012 -0400 linux: bypass readpages should update nocache read parms the nocache read parms need to have the offset updated during a bypass readpages request Change-Id: Iced321e6eeab7fd784c5ccb871fcda7ff9c7493d Reviewed-on: http://gerrit.openafs.org/8254 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Marc Dionne commit 527f2ba00c1247ae7e8d6f355572c8635331bc0c Author: Andrew Deason Date: Tue Oct 23 15:47:06 2012 -0500 ptserver: Avoid inet_ntoa The ptserver uses inet_ntoa in a few places, such as for calculating host CPS. This isn't safe in pthreaded environments, so use afs_inet_ntoa_r instead. Change-Id: I84cdf606ffd44d2d87c0db509af0950a6547364e Reviewed-on: http://gerrit.openafs.org/8287 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3898f4d20500fbdbe60e36ecaf6b80f96913b84c Author: Simon Wilkinson Date: Sun Oct 21 20:07:44 2012 +0100 Fix mutex assertion RX mutexes have two mechanisms for asserting ownership of a mutex: MUTEX_ISMINE, which returns true if the caller is the owner of the mutex in question, and osirx_AssertMutex which fires an assertion if the calling thread doesn't own a specified mutex. Neither of these work with pthread mutexes on all platforms, and the kernel support for MUTEX_ISMINE is dubious in places. Because in some implementations, MUTEX_ISMINE tries to lock the mutex in question, a failing call to MUTEX_ISMINE can lead to the process holding an additional, unexpected, lock. This patch reworks all of this, and uses the new opr mutex framework so that we can do mutex assertions in userspace, too. We remove the unsafe MUTEX_ISMINE macro, and replace it with MUTEX_ASSERT which simply asserts if the specified mutex is not held by the current thread. osirx_AssertMutex is removed as it is now redundant. MUTEX_ASSERT will always work in kernel code. For userspace, we provide opr_mutex_assert, which is implemented using POSIX error checking mutexes. As error checking mutexes have a runtime overhead, this is only available when configured with --enable-debug-locks, the rest of the time calls to opr_mutex_assert are no-ops. Change-Id: I285ee2b558389fa3d63b786e4bc4420fa2126c80 Reviewed-on: http://gerrit.openafs.org/8282 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d287e816988a98654ba6e0fd3aa053b20fd14663 Author: Simon Wilkinson Date: Sun Oct 21 21:19:40 2012 +0100 rx: Move kernel assertion macros Move the kernel assertion macros out of rx_prototypes.h and into rx_kernel.h. This solves an ordering problem if these macros are to be used from src/rx//*.h Change-Id: I5f11e0802b3d25c1c32a2c646a35c0b59422ab3d Reviewed-on: http://gerrit.openafs.org/8283 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 0c3670914a05c7aa33f0b1239ba9cc25f430ed04 Author: Marc Dionne Date: Wed Sep 19 19:14:31 2012 -0400 tests: cleanup temporary files Call the configuration directory cleanup function before exiting so there are no files left behind, even in case of error. Add KeyFileExt to the list of files that are removed. Change-Id: Ie795bef0d44609b36950970244c02a6c6da1a843 Reviewed-on: http://gerrit.openafs.org/8142 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit d82a3d7e2c126950382e3db24e8494de5a1db2a0 Author: Hartmut Reuter Date: Thu Oct 18 07:00:18 2012 -0400 linux: fix cache bypass applicability function don't allow cache bypass if execsOrWriters is true don't trigger cache bypass based on being larger than the "disabled" value of -1. Change-Id: Ic174b133e5da3e9215465c9c2705c25e81a8beca Reviewed-on: http://gerrit.openafs.org/8248 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8927d5f3055a730c86dc2b1149d73ee3cd16af18 Author: Marc Dionne Date: Mon Oct 29 19:11:23 2012 -0400 Linux: remove unused afs_set_name inline functions These were used in an earlier version of the patch that got merged. Change-Id: Ifc5ba94392a394d0fb55c31051b4b74211cfc1f0 Reviewed-on: http://gerrit.openafs.org/8332 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f5a643ad6dbcbf1785eac274f9dec79ef65928f3 Author: Simon Wilkinson Date: Sat Oct 20 23:14:41 2012 +0100 Add opr/lock.h and tidy locking macros The MUTEX_* and CV_* macros leaked from RX a while ago - they mean that most of the pthreaded tree has a dependency on RX, as well as further confusing the difference between userspace and kernel. Tidy all of this up so that we have opr_mutex_* and opr_cv_* macros to handle portable locking, and use these throughout the userspace tree. Only kernel code should now use MUTEX_* and CV_*. Provide opr/lockstub.h as a header that can be used by non-pthreaded code to easily stub out these functions. Change-Id: I24be525c7667641134d50561ce7f1e2d752cdf1f Reviewed-on: http://gerrit.openafs.org/8280 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9607d0e7993f3dee7f70ae747ea9d0b8ba1404af Author: Simon Wilkinson Date: Fri Oct 26 15:37:52 2012 +0100 rx: Move transmit queue clearing When the client receives a data packet from the server, it means that the server has completed processing the client's request. This, in turn, implies that the transmit queue can be cleared. However, we were doing this with every incoming data packet. Move the transmit queue clearing to the code which handles the rest of the data packet, and make the function only run if the transmit queue is non-empty. Now that there's no client specific logic in the ReceiveCall section, clean up this code to reduce duplication. Change-Id: Ia4f9024720c676cbcc6d8426d4b94a0acded20bc Reviewed-on: http://gerrit.openafs.org/8301 Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit 96d50fc0e1d8b709a86d76318c8a1801cbff12d7 Author: Simon Wilkinson Date: Fri Oct 26 15:23:48 2012 +0100 rx: Refactor code to acknowledge a whole TX queue We acknowledge a whole transmit queue whenever an ACKALL packet is received, or whenever the call changes direction. As the same logic is used in both locations, pull it out into a common helper function. Change-Id: Ia91b037c73cc0dd612ebbd0bd38ec171ec7c96a5 Reviewed-on: http://gerrit.openafs.org/8300 Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit 8d359e6dff5317698597e77f0a1dd5ba2bfb569a Author: Simon Wilkinson Date: Fri Oct 26 14:55:02 2012 +0100 rx: Remove duplicate out of order ACK check Once we've moved the congestion window, there's no going back. So any ACK packets that attempt to move the window backwards by including a 'firstPacket' value earlier than the current window position must be ignored. However, we check (and ignore) these packets twice. Once in rxi_ReceivePacket, which only checks in the client side case, and again in rxi_ReceiveAckPacket, which has a more complete check that runs for both client and server connections. Remove the identical check from rxi_ReceivePacket in a continuing effort to clean up this bit of code. Change-Id: I090bc289848d0797860f46aec5877ad07fcc9b82 Reviewed-on: http://gerrit.openafs.org/8299 Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit daeb917110f6b358d505eef50088bbb4573a6130 Author: Simon Wilkinson Date: Fri Oct 26 14:52:46 2012 +0100 rx: Remove duplicate security layer check rxi_FindConnection checks that the connection it returns has a security layer matching that of the incoming packet. Don't duplicate this check within the rxi_ReceivePacket code. Change-Id: I03e7d50ecf84f638d8e222d77defc25b8a58627a Reviewed-on: http://gerrit.openafs.org/8298 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3c6570413c94afe4107634e9ca3f923f3cd30c21 Author: Simon Wilkinson Date: Fri Oct 26 14:50:51 2012 +0100 rx: Refactor rxi_ReceivePacket call selection Refactor the call selection logic in rxi_ReceivePacket so that it is a little bit easier to follow, and better optimised to the common case. Split the current logic into a function for packets being received by a server, and a function for packets being received by a client. Change-Id: Ie27de7952cc13fa3b92619cfe68e671e6d5e170c Reviewed-on: http://gerrit.openafs.org/8297 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a0ae8f514519b73ba7f7653bb78b9fc5b6e228f8 Author: Simon Wilkinson Date: Fri Oct 26 12:21:41 2012 +0100 rx: Don't build a call to immediately abort it If the server is over the busy threshold, then don't create a new call structure just to be able to send an abort on that call. Instead, use rx_SendRawAbort to send an abort packet on the appropriate channel. Change-Id: I02782fc25fe8ed7608b39e3f8355e2793f7526e3 Reviewed-on: http://gerrit.openafs.org/8296 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0c9e55639cc02d90e9fd108572bb5ee64db3ddcc Author: Simon Wilkinson Date: Thu Oct 25 13:34:33 2012 +0100 rx: Remove unreachable debug statement ReceivePacket has a dpf which is conditional on the packet having a zero callnumber. However, just before we reach this debug statement, we always return if the header doesn't have a call number included. So, the debug statement can never run. Just remove it, as it's potentially confusing. Change-Id: I5fad9f39c9a0c4aac50853aaf4f853b9f7715e61 Reviewed-on: http://gerrit.openafs.org/8295 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 8e118de45cdf9987845d8d127c3c45cf1b77f01f Author: Simon Wilkinson Date: Thu Oct 25 12:01:04 2012 +0100 rx: Always provide rxi_WaitForTQBusy Move the prototype for rxi_WaitForTQBusy to rx_internal.h, and always provide it (as a prototype for RX_ENABLE_LOCKS, and as a no-op for lwp). Remove all of the #ifdef RX_ENABLE_LOCKS around rxi_WaitForTQBusy calls. Change-Id: I6c2b943d6d06bf19d3cb4495201d278e3900b6ef Reviewed-on: http://gerrit.openafs.org/8294 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 7e8278e1447328bc57396803a1651cbb497198d0 Author: Jeffrey Altman Date: Mon Oct 29 12:59:14 2012 -0400 Windows: Set Server Prefs recalc immediately When processing the set server preferences pioctl call cm_RankServer() to update the server preference value reported by "getserverprefs" in addition to cm_ChangeRankVolume() or cm_ChangeRankCellVLServer(). Change-Id: Iacd8d30865286c39a7cc02e2f659b8c684f8f4a4 Reviewed-on: http://gerrit.openafs.org/8328 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e59cf940ce1cb2ed72ccf05ce39f73019547d9b1 Author: Jeffrey Altman Date: Mon Oct 29 10:33:18 2012 -0400 Windows: mark server reference offline for VOFFLINE cm_Analyze() was not marking the cm_ServerRef_t reference to a volume instance as srv_offline in response to a VOFFLINE error. As a result the same volume instance is tried again and again. Change-Id: Ic467f41e96408281e6251a796d2dfba3245bb023 Reviewed-on: http://gerrit.openafs.org/8326 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit c7061310b7865c635c382490703ff951c2f9af3f Author: Jeffrey Altman Date: Mon Oct 29 09:19:13 2012 -0400 Revert "Windows: Media Protected if create on RO volume" This reverts commit f3f282265a3d9e3c968fd06793e6d1a91337f443. Returning STATUS_MEDIA_WRITE_PROTECTED in preference to STATUS_OBJECT_NAME_COLLISION when the file results in silent failures by some applications (ie, Firefox.exe) when the first directory in the path below the share name is the root of a .readonly volume. FIXES 131416 Change-Id: I342d9ff09ef68615371cf9d372f38fac854ed6c0 Reviewed-on: http://gerrit.openafs.org/8325 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 4bc8d82d9a204b76fcf5208ded3a9a6ea917b734 Author: Simon Wilkinson Date: Thu Oct 25 11:57:22 2012 +0100 rx: MUTEX_* are no-ops when !RX_ENABLE_LOCKS Remove any occurences of # ifdef RX_ENABLE_LOCKS MUTEX_ENTER(&mutex) # endif and similar for MUTEX_INIT, MUTEX_DESTROY and MUTEX_EXIT, as all of these operations are no-ops when RX_ENABLE_LOCKS isn't defined. Change-Id: Ic0f27b42d56ae4362ff095f1f08a06575c4ca2c1 Reviewed-on: http://gerrit.openafs.org/8293 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f224849f29343cf634c732b1672b4e81373de872 Author: Simon Wilkinson Date: Thu Oct 25 11:49:55 2012 +0100 rx: Get rid of AFS_GLOBAL_RXLOCK_KERNEL Get rid of the AFS_GLOBAL_RXLOCK_KERNEL #define. RX used to have a single global lock locking mode, but none of our kernel modules use it any more. In fact, AFS_GLOBAL_RXLOCK_KERNEL is now only defined when RX_ENABLE_LOCKS is also defined. Simplify the code by renaming all of the occurrences of AFS_GLOBAL_RXLOCK_KERNEL as RX_ENABLE_LOCKS, and remove any cases where we're now doing unecessary tests Change-Id: I061d8d364c61168370b223cdac48ad161f0c9d74 Reviewed-on: http://gerrit.openafs.org/8292 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9358e452a90c3d87f025a54e503da2b2d062dbef Author: Simon Wilkinson Date: Thu Oct 25 11:32:03 2012 +0100 rx: Don't have 2 different protos for rxi_CheckCall Use a single prototype for rxi_CheckCall in both the pthread and lwp cases. Remove the #ifdef maze at the call sites, and take advantage of the fact that MUTEX_EXIT reduces to an empty string in the lwp case. Change-Id: Iaa8c1b983f1c8372e9c2e1b90aaef25a2bc5f81f Reviewed-on: http://gerrit.openafs.org/8291 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e93b6dca2f593e479499122eedef1e65452aaaac Author: Simon Wilkinson Date: Thu Oct 25 11:27:33 2012 +0100 rx: Don't double check conn->call We currently have call = conn->call[channel] if (call) { ... } else { call = conn->call[channel] if (call) { ... } } As we don't drop (or acquire) any locks between the first and the second check of call, there's no way that the result can be different from the first time we checked. So just get rid of the uneccessary code, and reindent the following block to match. Change-Id: If21a1d0af461fe0c0651e713dfb99a7c5f01cba4 Reviewed-on: http://gerrit.openafs.org/8290 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c00c0effd18dd508051ebc4c7c8983b800f8a973 Author: Simon Wilkinson Date: Tue Oct 23 19:21:09 2012 +0100 rx: Move bytesSent + bytesRcvd into app only data The call->bytesSent and call->bytesRcvd counters are only manipulated by the application thread in running calls. Move them into the app-only section of the call structure so this is clear. Change-Id: Ib7929a8e34bcb70c8cb9c1f89544adce0d627299 Reviewed-on: http://gerrit.openafs.org/8288 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 6f8da199e5c694e0e9a90f4737a9a1618470389e Author: Simon Wilkinson Date: Tue Oct 23 13:35:43 2012 +0100 rx: Don't use app-thread variable in SendXmitList The value of call->app.mode is changed by the application thread without taking the call lock. Instead of using this variable in SendXmitList to determine whether the queue should be flushed, add a new flag (RX_CALL_FLUSH) to control flushing behaviour. As call->flags is manipulated under the call lock, its value can be safely used by SendXmitList. Change-Id: I8416697f457e5003af08a35ac08809512b03a9be Reviewed-on: http://gerrit.openafs.org/8286 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit ada1fc25679db5abc887fb52d30e32bb2713cae3 Author: Simon Wilkinson Date: Tue Oct 23 12:41:07 2012 +0100 rx: Make lock-free call data explicit For speed, the application thread accesses a number of elements of the call structure without holding the call lock. This is safe, as long as the application thread is the only place in which these items of data are accessed. Make this distinction explicit by creating a new structure to hold all of these fields, and include this structure within the rx_call. This turns up one place in the code (SendXmitList) which accesses an application private piece of data in the listener and event threads. A forthcoming patch will fix this. Change-Id: I7b5ffb8b5ce68a2186e37ae64461fe356a40603e Reviewed-on: http://gerrit.openafs.org/8285 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit c584b68213aef29f9df7fc104b584e8559b7d4fe Author: Jeffrey Altman Date: Sat Oct 6 17:34:52 2012 -0400 Windows: Makefile dependencies Permit "afsrdr" and "extra" to be built without the rest of the tree by making them depend on "config". Change-Id: I52e484f64d02e7f9b136164e10accdc981835ec0 Reviewed-on: http://gerrit.openafs.org/8321 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e9e5978a4dc3738708f23d15a3e91cee1f34a5f2 Author: Jeffrey Altman Date: Mon Aug 6 12:19:26 2012 -0400 Windows: Send all \\AFS\PIPE to afsd_service Anytime there is a pipe service request, forward it to the afsd_service.exe and permit the service to manage the request. The prior implementation resulted in STATUS_FILE_NOT_FOUND errors being delivered when an unexpected service was requested. Change-Id: I2ae9c45db787c0cb422fa3fecdfb235631927415 Reviewed-on: http://gerrit.openafs.org/8320 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f7148418961e3083b895c0875b15060213921e4d Author: Jeffrey Altman Date: Wed Sep 26 01:51:37 2012 -0400 Windows: Treat EIO from file server as fatal error Return STATUS_DISK_OPERATION_FAILURE to caller when a file server fails an RPC with EIO. Previous behavior was to retry the request indefinitely. Change-Id: I8fa3dbc92dda4e50e1331ad350dd697092f26985 Reviewed-on: http://gerrit.openafs.org/8319 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 5857dd36b2b129fd2cf187650723b896c24f5177 Author: Jeffrey Altman Date: Fri Oct 19 11:26:21 2012 -0400 Windows: ObjectInfo RefCount 0 <-> 1 transitions When the reference count transitions from 0 <-> 1 ensure that the ObjectInfoLock is held exclusive to prevent the current thread from altering the state while another thread is holding the ObjectInfoLock shared in order to conditionally perform an action based upon the the reference count being zero. Change-Id: I5bcf384a0ea90e4896e55b537e92112ac3791a4c Reviewed-on: http://gerrit.openafs.org/8257 Reviewed-by: Rod Widdowson Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit fd7a16d5b09d963ded1fb4314632e9fb5d513b29 Author: Jeffrey Altman Date: Thu Oct 25 18:42:11 2012 -0400 Windows: PrimaryVolumeWorker ObjectInfoLock deadlock Patchset eaad522651a81f20eac4966a55a731e0e59e39dd inadvertently introduced a deadlock with invalidation requests from the service. It is not safe to hold the ObjectInfoLock resource across calls to AFSCleanupFcb(). Instead of holding the lock obtain a reference to the ObjectInformationCB. Change-Id: I048401ec3e432c05c8a72251ef1e32442974256d Reviewed-on: http://gerrit.openafs.org/8308 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 08d446424873c2d46b00b6d4604766051e5ba837 Author: Jeffrey Altman Date: Thu Oct 25 14:33:29 2012 -0400 Windows: AFSCleanup re-organization Reorganize the activities of the AFSCleanup() for File FCBs so that the Fcb Resource can be dropped prior to issuing the cleanup request to the cache manager. The cache manager can block for a long period of time while flushing data and holding the Fcb resource blocks all subsequent CreateFile requests. Change-Id: Ieaf3653ebf487670bce1043e73be093eb77a8736 Reviewed-on: http://gerrit.openafs.org/8307 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3a996b58dea74be4748446c63b7d3c4c631b1881 Author: Jeffrey Altman Date: Thu Oct 25 14:31:14 2012 -0400 Windows: AFSCleanup Flush Data decision AFSCleanup() should instruct the cache manager to flush dirty data when the Context Control Block indicates that the handle being closed was opened for writing and was granted appropriate permissions. The decision to flush should not be dependent on the open handle count because the last handle might belong to an authentication group that does not have write permission. Change-Id: I4e181616f1c8eba9e4c6184e2035d9f6cbaba1d0 Reviewed-on: http://gerrit.openafs.org/8306 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ea2f25372cc09c958780990f6cb8d064c7e7a0e3 Author: Jeffrey Altman Date: Thu Oct 25 14:12:42 2012 -0400 Windows: buf_DirtyBuffersExist return value buf_DirtyBuffersExist() should return 'found' not '0'. Change-Id: I037ce37d5fc8a63f563ded196925af930434fb16 Reviewed-on: http://gerrit.openafs.org/8305 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c33c678760e254e67037d62e38f6eedc139eaf6f Author: Jeffrey Altman Date: Mon Oct 22 20:40:21 2012 -0400 Windows: AFSMarkDirty() require ExtentsResource held Instead of dynamically testing if the ExtentsResource is held and if not acquire it within AFSMarkDirty(), simply require that it be held. AFSMarkDirty() is only called from one location. Change-Id: If30fc05fead4c9e0604555239e9b862659de3e8b Reviewed-on: http://gerrit.openafs.org/8304 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3c57bab34ee74b4951cf637537ff73d86986fd3e Author: Jeffrey Altman Date: Mon Oct 22 20:34:59 2012 -0400 Windows: AFSFlushExtents QueuedFlushCount leak The FCB QueuedFlushCount was decremented in all code paths but only incremented if the AuthGroup acquisition succeeded. Increment the counter before the AuthGroup checks. Change-Id: I3f58075124412cc4a7ac63dc6a7f90a91af369cf Reviewed-on: http://gerrit.openafs.org/8303 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 651cceabc3e5f939554e50437b9ed3181b6f7b1f Author: Jeffrey Altman Date: Mon Oct 22 20:29:47 2012 -0400 Windows: RDRFunction remove DebugBreak DebugBreak hard coded into the source tree makes debugging other unrelated issues difficult if the code path being executed includes them. Remove them. Change-Id: I0f55b1fbccdbac13abecb4f4e9774b23fa57678d Reviewed-on: http://gerrit.openafs.org/8302 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f869b6f8c11f859fad6e3649faf7e724e0bd1d6d Author: Jeffrey Altman Date: Fri Oct 19 09:33:18 2012 -0400 Windows: Promote DELETED from DirEntry to ObjInfo On deletion of the DirEntry in AFSDeleteDirEntry() set the AFS_OBJECT_FLAGS_DELETED flag on the ObjectInformation object if and only if the AFS_DIR_ENTRY_DELETED flag was set in the DirEntry. Setting the AFS_OBJECT_FLAGS_DELETED should not be conditional on the ObjectInformatION ReferenceCount being zero. Remove the test and set of AFS_OBJECT_FLAGS_DELETED from AFSClose() because that operation will already have been performed in the call to AFSDeleteDirEntry() if necessary. Change-Id: Ib52f89633e6a343b08d408ef24b067c8fae73e0f Reviewed-on: http://gerrit.openafs.org/8256 Reviewed-by: Derrick Brashear Reviewed-by: Rod Widdowson Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 89c200c5658b2605f446c393f904874d4c65a28c Author: Simon Wilkinson Date: Fri Oct 19 14:06:57 2012 +0100 opr: Clarify opr_time copyright opr_time.h made it in to the tree without a copyright statement. Clarify that it is BSD licensed. Change-Id: Ifd6e3dff547337885e5e0bdc0d04e218b733ce44 Reviewed-on: http://gerrit.openafs.org/8279 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit dc0441d0a2140e0d8138939cb84fc232d9e54650 Author: Hartmut Reuter Date: Sat Oct 20 18:24:53 2012 -0400 volser: comment with a list of all dump tags this is a list of all the dump tags currently defined Change-Id: Ie040f48b35ac5ec377e5d4184bcb8e47020d1d46 Reviewed-on: http://gerrit.openafs.org/8281 Tested-by: BuildBot Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit eca04c7e52d1e777cde423cdf673d7bf579c342b Author: Marc Dionne Date: Sat Oct 20 17:59:01 2012 +0100 Linux: Rework handling of names in the lookup functions Rework the name lookup functions in the kernel to deal more cleanly with the change of API for kernel 3.7 Change-Id: I1de9e02cfedbbeee31e2793c443722d4eed57705 Reviewed-on: http://gerrit.openafs.org/8278 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit a550d64f8e0003e1cce538a83270b35be54f9957 Author: Magnus Ahltorp Date: Fri Oct 19 18:12:13 2012 -0400 lwp: zero reused request blocks new blocks are calloc()d as zeroed. reused ones are not. zero them FIXES 131369 Change-Id: I646c04d3d14ffc121d54e740a92803bb18f32091 Reviewed-on: http://gerrit.openafs.org/8277 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 115850076c09625e37d75da6dc29a68b0a2d638e Author: Marc Dionne Date: Fri Oct 19 18:31:53 2012 +0100 Linux: fix afs_putname wrapper for pre-3.7 kernels Make the compatibility function use the right type for pre-3.7 kernels. Change-Id: I9222a3dc5a923c97dc36f69485d9cd3ecc6810fb Reviewed-on: http://gerrit.openafs.org/8276 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0b538f21bea758a92f2bd9f8d529e8889c4a9e63 Author: Jeffrey Altman Date: Tue Oct 16 09:36:56 2012 -0400 Windows: Remove 'bAllocatedFcb' from AFSCreate.cpp All functions now call AFSInitFcb() and the ObjectInfo->Fcb == NULL test is performed internally. Therefore, it is not possible for the caller to track whether or not an Fcb was allocated. It is irrelevant. The Fcb will be cleaned up when the ObjectInfo is destroyed by the PrimaryVolumeWorker thread. Change-Id: I3255563e1b0c44082e4f390002d294ad333d534f Reviewed-on: http://gerrit.openafs.org/8242 Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2bfe3653e3eec99a1199392912a4136668406212 Author: Jeffrey Altman Date: Sun Oct 7 23:41:32 2012 -0400 Windows: PrimaryvolumeWorker do not pause if busy fcb The AFSPrimaryVolumeWorkerThread should not unnecessarily block on the FCB Resource because such blockage could be the result of of waiiting for extents to be delivered from the service. The AFSPrimaryVolumeWorkerThread is the primary method by which extents are released back to the service. AFSCleanupFcb() is modified to return STATUS_RETRY if the Fcb resource cannot be obtained without blocking. The AFSPrimaryVolumeWorkerThread() does not call AFSCleanupFcb() with 'ForceFlush' parameter set to TRUE and remembers if STATUS_RETRY is returned. If any Fcb was busy, then the worker does not wait for the 5 second timer to fire. Change-Id: If3eab06b902202483eb354362a4db6bc8167d0df Reviewed-on: http://gerrit.openafs.org/8227 Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit dfcb68cdc82260f614b2efed2529dc7c559d1933 Author: Jeffrey Altman Date: Fri Oct 19 08:37:25 2012 -0400 Windows: avoid race set/clear ExtentsRequestComplete The FCB ExtentsRequestComplete KEVENT setting, clearing and testing was racy. Clear the event before issuing the request to the service and if the request fails, set it in case two threads issued requests for the same FCB in parallel and one fails and the other succeeds. We must ensure that a clear does not mask the event being set prior to the request thread returning. Change-Id: I6d496214a2621aeca2b9f6d2f50095ffd19b6c59 Reviewed-on: http://gerrit.openafs.org/8255 Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 555412a03f18aff0d30401082ad2946a68bd7694 Author: Jeffrey Altman Date: Thu Oct 18 09:56:12 2012 -0400 Windows: clear pending delete upon deletion During cleanup processing if the DELETE_PENDING flag is set the service will be told to delete the file when the handle count reaches 1. At that point the file will be deleted and the DELETED flag will be set on the object info object. The DELETE_PENDING flag was not being cleared which could lead to confusion. This patchset clears the flag after deletion. Change-Id: Ib30bb3a5c3a06b8971ac4523e6eacefaaed068ce Reviewed-on: http://gerrit.openafs.org/8253 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman commit 05fa1202fb63e32aff3c60d47286c8af232322fe Author: Jeffrey Altman Date: Sun Oct 7 10:23:19 2012 -0400 Windows: AFSInitFcb Check ObjectInfo->Fcb for NULL Now that AFSInitFcb is called under the ObjectInfoLock, it is once again safe to perform a test for ObjectInfo->Fcb != NULL and return immediately if an Fcb is already assigned. Change-Id: Id926b9ccf24c7761dbeacf42c53d7cc7d1375482 Reviewed-on: http://gerrit.openafs.org/8226 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9eb4bcfced06554d08c0f95de54f2285f48de890 Author: Jeffrey Altman Date: Sun Oct 7 10:20:11 2012 -0400 Windows: Fix DV Raced Trace Message Parameters Data Versions are logged as HighPart:LowPart not QuadPart. Change-Id: I7cfb712060fd602a1d20ca1d4f20b892820edf89 Reviewed-on: http://gerrit.openafs.org/8225 Reviewed-by: Rod Widdowson Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit eaad522651a81f20eac4966a55a731e0e59e39dd Author: Jeffrey Altman Date: Fri Oct 5 11:36:45 2012 -0400 Windows: Protect ObjectRefCnts with ObjectInfoLock The ObjectInfoCB.ObjectReferenceCount is tested to determined when it is safe to remove an FCB from the ObjectInfoCB. The value must not be permitted to change while a removal is performed. Protect AFSRemoveFcb() calls with exclusive holds of the ObjectInfoCB.NonPagedInfo->ObjectInfoLock. New functions: AFSObjectInfoIncrement() AFSObjectInfoDecrement() perform all increments and decrements while holding the ObjectInfoLock in a Shared state. Change-Id: If89b7668ef0a891d55b039d9516620b581c79e10 Reviewed-on: http://gerrit.openafs.org/8224 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit cecd99abd3837ef820d78fb15e450c8688b0f39b Author: Jeffrey Altman Date: Tue Oct 2 21:11:01 2012 -0400 Windows: AFSPrimaryVolumeWorkerThread AFSRemoveFcb Do not call AFSRemoveFcb() on a directory entry whose Fcb has a non-zero use count. Change-Id: I0d733327c094f15a7b681eb1806a4fa9a4a6c151 Reviewed-on: http://gerrit.openafs.org/8223 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 8827be708460eb1cbd58001d3247ed7bb160ebc8 Author: Jeffrey Altman Date: Tue Oct 2 21:07:21 2012 -0400 Windows: Always AFSInitFcb and AFSRemoveFcb Instead of comparing ObjectInfo->Fcb to NULL and conditionally calling AFSInitFcb() or AFSRemoveFcb(), always call them and use InterlockedExchangePointer() as the test. Change-Id: I81915dfdfdf180c04ad2b4ff7506784a83ee8c2a Reviewed-on: http://gerrit.openafs.org/8221 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 23c920066976ac5ede41dd799c84d97ff5174c4c Author: Jeffrey Altman Date: Sat Oct 6 17:36:25 2012 -0400 Windows: AFSRequestExtentsAsync and AFSDoExtentsMapRegion When calling AFSDoExtentsMapRegion() the FCB ExtentsResource must be held. AFSRequestExtentsAsync() failed to hold the ExtentsResource across the call. Change-Id: I607cfb45725410c7f079b3be03002b002fccbea4 Reviewed-on: http://gerrit.openafs.org/8220 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit edef37033cf08f7a383ef973f248d950eecd7624 Author: Hartmut Reuter Date: Thu Oct 18 07:32:50 2012 -0400 lwp: add shared-locked macro we have a macro to check for write locked, add one for shared locked Change-Id: I2cd7754fd0e725df19b37f2a2234997cb4c34d3f Reviewed-on: http://gerrit.openafs.org/8252 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: BuildBot commit f821c7e5c82f32ad6435c56994f40e544ef69abb Author: Hartmut Reuter Date: Thu Oct 18 07:28:33 2012 -0400 memcache: add extend-entry function export directly and rewrite writevblk in terms of it Change-Id: I181f84428158e93e9bc6008ac9226958653a9409 Reviewed-on: http://gerrit.openafs.org/8251 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit df8709012b50eb0039463eeaa40b48727a4dbd7f Author: Hartmut Reuter Date: Thu Oct 18 07:14:26 2012 -0400 bypasscache: update threshold variable type if we're doing things based on size, we should allow storing a size Change-Id: Ibfb15c45b8b8c7a7c17154165da98c7a8518032a Reviewed-on: http://gerrit.openafs.org/8250 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5bd05894dd14bdbf845aa3f384f9d8dcac1286aa Author: Hartmut Reuter Date: Thu Oct 18 07:07:21 2012 -0400 libafs: add partial background store add a bop that does a partial store Change-Id: I5971d2cda705a11c7fba7c0cfa54a3fa2d90f392 Reviewed-on: http://gerrit.openafs.org/8249 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f6ab5cc8bd216383b8584aa05a5516862b59ab70 Author: Jeffrey Altman Date: Tue Oct 16 09:08:37 2012 -0400 Windows: Remove Fcb.Specific.File.LazyWriterThread The LazyWriterThread should not be recorded in the FCB. It is possible for multiple lazy writes to occur on a file in parallel in separate threads. The value is not used for anything in any case. AFSCommonWrite() tests the LazyWriterThread value but only if 'bMapped' is FALSE. Since 'bMapped' is always TRUE, the comparison is never performed. Remove the test and the value. Change-Id: Iddbb65d2125f39f0362aba72ae20ab2666944367 Reviewed-on: http://gerrit.openafs.org/8241 Tested-by: Rod Widdowson Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fe28a0c5966ac50fa3bccf5d98db4a3532f1e4a4 Author: Jeffrey Altman Date: Sun Oct 14 15:46:06 2012 -0400 Windows: Add cm_SyncOp to cm_ReadMountPoint() Add a cm_SyncOp(CM_SCACHESYNC_FETCHDATA) call to cm_ReadMountPoint() to prevent multiple FetchData RPCs being issued for the same mount point at the same time. Change-Id: I7651f4505727289d800af060cc3ff5a5f449f447 Reviewed-on: http://gerrit.openafs.org/8235 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7b1115d47019a9948c574ebad7b1323a30b16ab6 Author: Jeffrey Altman Date: Tue Oct 2 21:09:35 2012 -0400 Windows: AFSInitFcb assign pFcb->ObjectInformation In AFSInitFcb() assign pFcb->ObjectInformation before the InterlockedExchangePointer call and not afterwards. Assigning it afterwards leaves a small race where the ObjectInformation value will be invalid. Change-Id: Ie79587e0b2f161b7ff612fc4fb283135bafd1085 Reviewed-on: http://gerrit.openafs.org/8222 Reviewed-by: Rod Widdowson Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7fd98901620cfb2f44f53b1d717834e39959c538 Author: Jeffrey Altman Date: Tue Oct 16 20:26:43 2012 -0400 Windows: OpenTargetDirectory AFSInitFcb Reparse Test In AFSOpenTargetDirectory the test to determine if AFSInitFcb allocated a FCB or returned an existing one (STATUS_REPARSE) was reversed. If AFSInitFcb was called and AFSOpenTargetDirectory eventually failed, an in use FCB would be freed. Change-Id: Ie5974fee5202685575f286fe4fef43dfdc0698cb Reviewed-on: http://gerrit.openafs.org/8244 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ae10a40c5c18a7e52fb11d95b28333e312ffffce Author: Jeffrey Altman Date: Fri Oct 5 11:40:44 2012 -0400 Windows: ObjectInformationCB indentation Fix indentation within ObjectInformationCB structure Change-Id: I004ca5a16fceb63522e3f244177e60e4459e507b Reviewed-on: http://gerrit.openafs.org/8219 Reviewed-by: Rod Widdowson Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1335eefeffb70b0759015d39e6732ee075537982 Author: Jeffrey Altman Date: Sat Oct 6 01:40:47 2012 -0400 Windows: Do not call buf_ClearRDRFlag unlink/rmdir When processing unlink and remdir operations initiated by the SMB stack do not call buf_ClearRDRFlag. The redirector upon receiving the AFS_INVALIDATE_DELETE call will cancel outstanding extent operations, mark the FCB deleted, and tear down any held extents. Change-Id: I5203dbe5489fcfd0a1c871c3e7aa6aa1a7d65e9a Reviewed-on: http://gerrit.openafs.org/8218 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 816776215de17d5cf4e1f992ae27c7c1f5b5f43d Author: Jeffrey Altman Date: Fri Oct 5 20:16:35 2012 -0400 Windows: Correct alloc size SetFileExtents result AFSFileExtentCB objects not AFSSetFileExtentsCB objects. The latter are too large. Just wastes memory. Change-Id: I2ffd1bfd639acc37e2d06bc61749d4ac93376668 Reviewed-on: http://gerrit.openafs.org/8217 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c53220c179b06fdeb03879e8dc5e10f69bbe0a5f Author: Jeffrey Altman Date: Thu Oct 4 22:07:40 2012 -0400 Windows: AFS_INVALIDATE_DELETE must cancel IO When processing an AFS_INVALIDATE_DELETE the redirector must cancel any outstanding extent requests on the file prior to tearing down the extents. This code path is triggered either when VNOVNODE is received from a file server or when an alternate cache manager interface (SMB) unlinks the file. Change-Id: I16c08c2469228b33ae4ece0e45a9890a057ab257 Reviewed-on: http://gerrit.openafs.org/8206 Reviewed-by: Rod Widdowson Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 611e80ee125214be038c6d9735dca0bd0b3a7cdf Author: Derrick Brashear Date: Mon Oct 15 12:22:03 2012 -0400 salvager: fix formatting in the rest of the Log messages right now some not-commonly-defined code fails to compile with warnings. fix it so it uses a format string like everything else. Change-Id: Ib35445db9800444f3ee74a43f17aeb6f2959645a Reviewed-on: http://gerrit.openafs.org/8236 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 170dbb3ce301329ff127bb23fb588db31439ae8d Author: Simon Wilkinson Date: Fri Oct 12 10:07:22 2012 +0100 rx: Use opr queues Modify RX so that it uses opr queues throughout, rather than the older, non-type-safe rx_queue structure and macros. Attempt to clarify which items in a structure are queue headers, and which are linkage pointers. This has the knock on effect that including an RX header doesn't automatically give you rx_queue.h in your application's namespace. Change-Id: I1b3fbcd8c03f8153a557bd4532710bcebfe45818 Reviewed-on: http://gerrit.openafs.org/8232 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit eca07c108cc61fc9a6da720848e1beb78833f670 Author: Simon Wilkinson Date: Thu Oct 11 12:34:46 2012 +0100 rx: Move server queue entry structure out of rx.h Hide the server queue management structure in its own header file, rather than exposing it globally in rx.h. This structure has always been private - applications have no business knowing about it! Change-Id: I97ac31e0e77dbe1c10b2804f33901d933a8f0627 Reviewed-on: http://gerrit.openafs.org/8231 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a7828d50a82384e6d0fb0ad5b5a702f768029581 Author: Marc Dionne Date: Fri Oct 12 16:31:24 2012 -0400 libafs: Fix second pass in ShakeLooseVCaches Commit 3105c7ff introduced a two phase process for reclaiming vcache entries. First go through the list and do what's possible without sleeping (skipping aliased dentries on Linux), then do a second pass only if necessary, allowing sleeping. Unfortunately the test for the end of the VLRU scan is incorrect and can never trigger, so this second pass was effectively disabled and any code that is conditional on defersleep=1 was never exercised. The code to start the second scan also has issues. Fix the end of VLRU test, and also correctly set the variables needed to restart the scan. Change-Id: I8034cd3b79aab4f2976ab2559c13c102126480d7 Reviewed-on: http://gerrit.openafs.org/8234 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fa3116567e2998af73eb116751032713850c9459 Author: Marc Dionne Date: Mon Oct 15 12:26:09 2012 -0400 Linux 3.7: putname is no longer exported putname is unexported in kernel 3.7. Add a compatibility inline afs_putname function and open code it if necessary. Change-Id: I5416067566f6332d77e5d91ce2b9cf7bc0c96dce Reviewed-on: http://gerrit.openafs.org/8237 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1571e9b9f6749511534ee47b62e97674bb10c3fb Author: Simon Wilkinson Date: Tue Oct 16 15:07:38 2012 +0100 rxperf: Use libtool RX library Use the libtool built liboafs_rx.la, rather than using libafsrpc for OpenAFS Change-Id: Iffc32e512b6f8dd2a89bbc9774b0477236087b0c Reviewed-on: http://gerrit.openafs.org/8243 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit df3b4ff8420b38cdc7a45757b94e9613d7a7bdfa Author: Simon Wilkinson Date: Wed Oct 17 12:13:39 2012 +0100 rx: Export some more functions Export some symbols that are required by rxperf Change-Id: I12d99a9ed1c025c838a4f80ecd61aadd19d20c4c Reviewed-on: http://gerrit.openafs.org/8245 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit a2877368045947ca28c29283ef03f1510d764d4d Author: Andrew Deason Date: Tue Sep 11 14:23:02 2012 -0500 rx: Skip rxi_CheckPeerDead if we are DALLY DALLY connections don't need to be marked dead, so just skip the whole function if we are DALLY. Change-Id: I8a70c93edb54be28cfda499bc8ce3b7b5b7db600 Reviewed-on: http://gerrit.openafs.org/8120 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4532e96bb96ab6424c7c00327c094f9b5b307f91 Author: Andrew Deason Date: Tue Sep 11 13:59:21 2012 -0500 LINUX: Ignore 'offender' in error queue processing The 'offender' is who generated the error, possibly who sent us an icmp packet (the given 'port' will be 0). What we want is the peer that is actually unavailable, which is already in the 'addr' variable we received from the recvmsg itself. Change-Id: I930293ca14f0e13ba09ee94b5a5d9cdc0f321743 Reviewed-on: http://gerrit.openafs.org/8119 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 083ec556af66c755c93f821146e06423e27cfba9 Author: Andrew Deason Date: Tue Sep 11 12:48:14 2012 -0500 rx: Check for peer deadness in rxi_Resend If we need to resend something, the peer we're sending to may be dead. Check if the peer is dead in rxi_Resend, so we don't have to wait (possibly several seconds) for the next rxi_CheckCall. Change-Id: I0ecc0b1fc23bb4194ebadcea97dd58c938af8154 Reviewed-on: http://gerrit.openafs.org/8118 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0ac9fe184a323fef212c421b844a45838f4d6e57 Author: Andrew Deason Date: Mon Sep 10 16:31:01 2012 -0500 rx: Process all errors received When we receive a buffer of errors from the error queue, loop through all of them, and do not stop at the first applicable one we find. Change-Id: Iad928e0489041b360fe705ac397836650b30091e Reviewed-on: http://gerrit.openafs.org/8116 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot commit c172d469dde64b5dfaf762c5ad52dfe842dffb02 Author: Derrick Brashear Date: Tue Oct 16 09:25:03 2012 -0400 linux: always define do_handlesocketerror even if we are not handling socket errors, have a stub function Change-Id: I1f3c1631c5ddcf10e74612e13aafbae833bd5eaa Reviewed-on: http://gerrit.openafs.org/8240 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 37ef85d44a3275c1f367eaa6d241cd6d602a472b Author: Derrick Brashear Date: Wed Oct 17 18:52:41 2012 -0400 rx: pthread sendmsg should return success, not a bytecount thanks to Marc Dionne for noticing the error Change-Id: I6e5d8b6e3aa30cb0722aff1a9e538f23f40de441 Reviewed-on: http://gerrit.openafs.org/8246 Tested-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear commit 7c0484413d9928512b934ee92b2634444dd8ae58 Author: Andrew Deason Date: Fri Sep 7 17:04:18 2012 -0500 LINUX: Allocate error queue buffer once We call osi_HandleSocketError in a loop, so make sure we process all of the errors. We were allocating a buffer to process the errors in osi_HandleSocketError itself, but we can reuse the same buffer on subsequent invocations, to reduce allocation/free pressure if we need to call osi_HandleSocketError more than once. So, do that. Change-Id: Idca2b9d21a48a868574ce6cfc5efe2efba3570a1 Reviewed-on: http://gerrit.openafs.org/8115 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cddd859d2a6a05a01c971c23dba0b43eceb6b93b Author: Andrew Deason Date: Fri Sep 7 16:58:05 2012 -0500 rx: Process error queue after noticing errors If errors exist in the socket error queue, we will notice by a sendmsg or recvmsg returning an error. If we never get an error, we don't need to check the error queue. So, only call osi_HandleSocketError after such an error has been returned, so we can avoid unnecessarily checking the error queue when there are no errors. Change-Id: I7c8aaaac42728dac7fb0634538b8cc317f0e7212 Reviewed-on: http://gerrit.openafs.org/8114 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Simon Wilkinson commit 9c2612bd33e15e77dc2cdf3051fcf43bdef22496 Author: Andrew Deason Date: Wed Aug 1 15:30:11 2012 -0400 Turn on Linux rx error queue and PMTU handling Change-Id: I17822e9463b5e34bd43e96926a168a19773b2b21 Reviewed-on: http://gerrit.openafs.org/7928 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a812d28bbf5c847812423977be1ee679cc209893 Author: Simon Wilkinson Date: Wed Oct 10 16:49:34 2012 +0100 Revert "Add some basic tests to check out fuse" This reverts commit 94bf003a720c9a883ba7ebf43ab3053d3072d3dd. The fuse tests are fundamentally broken as they stand: *) They rely on files that have not been committed to the tree. To function correctly the file fuse/conf/CellServDB must be present *) They always run, regardless of whether the fuse helper binaries are installed on the developers system, or even on whether the tree was built with fuse support enabled. *) They pass, even if fuse fails to start up *) The file fuse.sh is committed, despite being unused. This is particularly confusing, as it looks like this is where the tests are performed from (its not, testing is done in dynroot-t) *) fuse-log should be either cleaned up, or flagged as ignored in .gitignore Revert the commit until such time as all these issues can be fixed Change-Id: I5ff9a95f33c0a5d0614bb47c521a8770d92fe2eb Reviewed-on: http://gerrit.openafs.org/8230 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f0a57e9de6f361ea8ab357252dbd86d516a7cb83 Author: Simon Wilkinson Date: Wed Oct 10 14:45:03 2012 +0100 tests: Reformat loopback tests Reformat the loopback tests to match our house style - 4 spaces for first indent, a tab for the second, and so on, opening brace of a function on a newline, spaces around assignments, and so on. Change-Id: I54f168ca143e7ff46c9d82289331b8314849f848 Reviewed-on: http://gerrit.openafs.org/8229 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 072828a1f5447ef64f92b2c57b8681a4e254b0f8 Author: Simon Wilkinson Date: Wed Oct 10 14:42:21 2012 +0100 tests: Tidy up loopback adapter tests Remove the unused h_errno extern, which in turn removes the need for disabling strict prototype warnings in the Makefile Use roken.h, instead of hardcoding system libraries Change-Id: Ie654c77ff60ed14fc3b659fa3eb527535be71164 Reviewed-on: http://gerrit.openafs.org/8228 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 78ae01fb9837d79e7bbdb2918872ab106d4c7e98 Author: Marc Dionne Date: Fri Oct 12 16:25:43 2012 -0400 Linux: osi_vcache: Fix loop for the hlist case An hlist is not circular, and the end is marked by a NULL next pointer. Change-Id: Iec7ad7e3e7ee989d548233b045aa8def1ebfb1dc Reviewed-on: http://gerrit.openafs.org/8233 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3237543afafae7191635fd8e8cada1f95e8abcff Author: Andrew Deason Date: Thu Oct 4 15:49:56 2012 -0500 DAFS: VRS_r with VOL_SALVAGE_NO_OFFLINE in attach2 One caller of VRequestSalvage_r in attach2 was not passing the VOL_SALVAGE_NO_OFFLINE flag. This really should be passed for every place that manually sets vp->nUsers = 0, since then the VPutVolume_r handlers will never fire. Change-Id: I088d93a6c598a4d636224f4cf4c0d89454efcca8 Reviewed-on: http://gerrit.openafs.org/8203 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 720ff46271766ac88c704a03a5c2dfa30bcb843b Author: Andrew Deason Date: Wed Oct 3 14:44:46 2012 -0500 sys: Split up syscall.lo 'echo's Currently we echo a string to syscall.lo to generate it. However, 'echo' is often a shell builtin, and some shells (such as bash) do not interpret escape codes like \n unless the -e option is given. So, this results in syscall.lo containing a single commented line, which results in .libs/libafsrpc_sys.a not getting created, which later on causes errors. Instead, just split the syscall.lo generation into separate echo invocations, to make sure we work everywhere. Change-Id: I8a6ed42a0837086de604be0936d830f0f4558ebf Reviewed-on: http://gerrit.openafs.org/8202 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 8a9f4244dced5cacbf0daca4060fb9e0625f4a2e Author: Derrick Brashear Date: Wed Oct 3 10:32:34 2012 -0400 afsd: consolidate macos event handling code in order that this can potentially be extracted entirely to a platform-specific file, (and possibly dbus-equivalents inserted also) consolidate the macos system events handling code Change-Id: I8fc4a96dc2590778a13f27610b383ee35626871e Reviewed-on: http://gerrit.openafs.org/8201 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 0fc27471e7da0c5de4addcdec1bfbca5208072cc Author: Andrew Deason Date: Tue Oct 2 14:38:20 2012 -0500 afs: Avoid tracking file locks for RO volumes Advisory file locks for RO volumes don't make a lot of sense, since there are no possible writes to worry about. The fileserver already does not track these, so don't even bother processing them in the client. Change-Id: Ie2a20d2f7af67799cfb8d30e72aa3e52a1ecc2d5 Reviewed-on: http://gerrit.openafs.org/8197 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit be7fca06530829373149487b411611f579eae266 Author: Derrick Brashear Date: Wed Oct 3 10:27:37 2012 -0400 comerr: no need to libl on macos libl is obsolete on macos; stop linking it Change-Id: If6e184b6a13ccd3f6b175e9dfbfae9a595322159 Reviewed-on: http://gerrit.openafs.org/8200 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit a28b5e645a9699e30b21615bb0d3aa4876376ee0 Author: Derrick Brashear Date: Wed Oct 3 07:47:06 2012 -0400 configure: make use of native build assist tools possible provide a way to run native rxgen, config and compile_et Change-Id: I9d1a2b4a1d4100fdc4a042005586e8fc40f39f7b Reviewed-on: http://gerrit.openafs.org/8199 Tested-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 94bf003a720c9a883ba7ebf43ab3053d3072d3dd Author: Troy Benjegerdes Date: Sun Feb 26 22:56:06 2012 -0600 Add some basic tests to check out fuse Update makefiles to have 'make test' and 'make check' use the _nolibafs build version, since there are no tests that (currently) require the AFS kernel module to be built. Clean up fuse test copyright notice, Alphabetize configure.ac Change-Id: Icc95dd3393cd66f0d04fa5f6e8f806db60ca031e Reviewed-on: http://gerrit.openafs.org/8135 Reviewed-by: Troy Benjegerdes Reviewed-by: Derrick Brashear Tested-by: BuildBot commit bb84ed0f5609ea64f75cb4188fe76d15c160f3be Author: Derrick Brashear Date: Tue Oct 2 23:42:35 2012 -0400 config: make makefile builder be a config tool also all of our helper tools should be configured in one place, so a cross compile can override them Change-Id: I35044832257fa3389504f79207aa423e39d1ad4a Reviewed-on: http://gerrit.openafs.org/8198 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit eae608d99a5ae94624200f91af6ed818c9f6612b Author: Andrew Deason Date: Tue Oct 2 15:04:47 2012 -0500 afs: Use common cleanup code for lockctl EINVAL afs_lockctl has common cleanup code in the 'done' label. Use it here, instead of trying to duplicate it. Currently this code path appears to not be dropping the discon lock, which this rectifies. Change-Id: I136a78bc3235454db7e3d69bb79b0061cfcab265 Reviewed-on: http://gerrit.openafs.org/8196 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 5289b5bb81a90bfacbb9841ee6357c6f72358a6e Author: Chas Williams (CONTRACTOR) Date: Mon Oct 1 10:11:22 2012 -0400 bos: convert struct bnode to use opr Convert struct bnode to use the common linked list code from opr. bnode_Deactivate() was converted but is unused by the code and isn't tested. Change-Id: I0edec453f15cf19e82088e3d361483cc5833f897 Reviewed-on: http://gerrit.openafs.org/8168 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 549a5c04ee5ac78dbfde9ec96488e2ae3d5c822d Author: Chas Williams (CONTRACTOR) Date: Mon Oct 1 10:10:22 2012 -0400 bos: convert struct bnode_proc to use opr Convert struct bnode_proc to use the common linked list code from opr. Change-Id: I30753ad10387b23509be0831d378772049f4be9d Reviewed-on: http://gerrit.openafs.org/8167 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit fe32aec9d8a99db5d70440226ca4b61a78aac224 Author: Chas Williams (CONTRACTOR) Date: Mon Oct 1 10:08:36 2012 -0400 bos: convert struct bnode_type to use opr Convert struct bnode_type to use the common linked list code from opr. Change-Id: I21329aff81a91a79a1fcf525f4fdd3a22b33ec92 Reviewed-on: http://gerrit.openafs.org/8166 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d3ed12ef497f2a98d07bbd442b866b9cdc7ceeb8 Author: Chas Williams (CONTRACTOR) Date: Mon Oct 1 09:59:09 2012 -0400 bos: split part of bnode.p.h into bnode_internal.h Move the bosserver specific parts of bnode.p.h into bnode_internal.h so that inclusion of bnode.h doesn't expose bosserver's internals. Change-Id: Id58714507211331a57c36eb71c1c3937fff0dd2a Reviewed-on: http://gerrit.openafs.org/8169 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 909639448ec803ee68f41dbacdd87eb516e0354a Author: Derrick Brashear Date: Mon Oct 1 16:09:09 2012 -0400 generated target updates tweak what's needed to build helper binaries for cross-compile Change-Id: Ib476716e1e32444f0b2aeb8cb8a1e91ab49471de Reviewed-on: http://gerrit.openafs.org/8173 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 338014a231235fe25116b09c1e8978db2db1dbb3 Author: Jeffrey Altman Date: Mon Oct 1 12:03:49 2012 -0400 Windows: File Info Query Symlinks For Symlinks, always set the Reparse Point attribute and set the Directory attribute if the target is a directory. Do not return the file attributes of the target. Change-Id: I72dcde912c998e1ab3eea45426d019314e10e740 Reviewed-on: http://gerrit.openafs.org/8171 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit dd59f6f6114a436ae86b70cd0837e97eea18dde8 Author: Jeffrey Altman Date: Mon Oct 1 11:04:23 2012 -0400 Windows: Dir Enum behavior for Symlinks / MPs Comparisons of the behavior of cmd.exe, powershell.exe, and tcc.exe with regards to directory enumeration show that when Symlink file information is returned that the "reparse point" data should be reported along with whether or not the target is a directory. For mount points, the reparse point file information should always be returned and the type should always be directory. The target timestamps, file sizes, etc. should never be returned. Change-Id: I0f899229061a282d0d218155407ffc4ab62ad377 Reviewed-on: http://gerrit.openafs.org/8170 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 22d68eec6de654bdc6a8d5b005b86320a46ac8f0 Author: Jeffrey Altman Date: Wed Sep 26 22:03:03 2012 -0400 Windows: Move afsredir process type check The process type check in afsredir.sys was performed during the Process Creation callback which is processed in the context of the parent process which might not be the same type (32-bit or 64-bit) as the process being created. Change-Id: I6ae79a6dacf434a986c7bb0135b2238fcfeeb0cd Reviewed-on: http://gerrit.openafs.org/8165 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 137ea396dbbcf302bce8200e3da7d4693b464ca7 Author: Jeffrey Altman Date: Tue Sep 25 13:01:53 2012 -0400 Windows: Fix memory leak SRXAFSCB_GetCellServ In commit 19f1e0f7cf40c3da1d49c789358bd814f7e3b3eb strdup() was replaced by xdr_alloc() and memcpy(). Unfortunately, the patch was wrong and the pointer to which the result of xdr_alloc() was assigned was overwritten with zero. Change-Id: I0a9e6c03d67e2a1c811e84808fbbdd39f782ba87 Reviewed-on: http://gerrit.openafs.org/8162 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ae8527269ca091d47a1232a0469921ba7c54f65b Author: Jeffrey Altman Date: Tue Sep 25 12:59:04 2012 -0400 Windows: duplicate ExtentsResource hold All callers to AFSDoExtentsMapRegion() hold the ExtentsResource so there is no need to obtain it again within the function. Instead add an ASSERT to confirm that the resource is held. Change-Id: Id34a3d650062d6e519a66732d248c136a92e4be3 Reviewed-on: http://gerrit.openafs.org/8161 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5c348e5a9f276b45e2351e4c1adf2bafd4659484 Author: Jeffrey Altman Date: Tue Sep 25 14:32:06 2012 -0400 Windows: make static RDR_ParseIoctlPath[Parent] The RDR_ParseIoctlPath and RDR_ParseIoctlPathParent functions are helper functions within RDRIoctl.cpp. Make them static and remove them from the header. Change-Id: I5f3b68f87701e2d8423a01c236c7cb598c3ff743 Reviewed-on: http://gerrit.openafs.org/8160 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1df112db3c06b6d16a027acbfe8739410630c66e Author: Jeffrey Altman Date: Tue Sep 25 14:31:11 2012 -0400 Windows: remove reqp param RDR_IoctlWrite/Read The RDR_IoctlWrite and RDR_IoctlRead functions no longer use the cm_req_t parameter so remove it. Change-Id: I1c6f09da9e4a386f79dae1c15b0b2ccdce944d51 Reviewed-on: http://gerrit.openafs.org/8159 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 63ded5bc452bf6cdd10db4d9e1befb9a71fad539 Author: Jeffrey Altman Date: Tue Sep 25 14:18:39 2012 -0400 Windows: add cm_req_t to RDR_ioctl_t The cm_req_t structure flags store information related to the source of the request and whether the process is WOW64 or not. This information is required for proper pioctl processing. Add a cm_req_t structure to the RDR_ioctl_t structure and initialize it in RDR_SetupIoctl() which is called from RDR_PioctlOpen(). Change-Id: I351101f036f63bbb1f0d7b19e9b092b18a3e070e Reviewed-on: http://gerrit.openafs.org/8158 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ac97f8f5a6937398db7d1902ff6bab7adbc24f4a Author: Jeffrey Altman Date: Tue Sep 25 14:16:10 2012 -0400 Windows: Add bWow64 param to RDR_InitReq Instead of using the pattern RDR_InitReq(&req); if (bWow64) req.flags |= CM_REQ_WOW64; add bWow64 as a parameter to RDR_InitReq(). Change-Id: I2c02683ab857c6743b46e83dc3f9defa660263d0 Reviewed-on: http://gerrit.openafs.org/8157 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c2e4112ffe44bc5c638a79f88eab0377ec992784 Author: Jeffrey Altman Date: Sun Sep 23 14:03:19 2012 -0400 Windows: cm_ExpandSysName for 64-bit processes on 64-bit Windows, only 32-bit processes have the WOW64 request type flag set. Reverse the conditional to permit proper evaluation of the 64-bit sysname list. Change-Id: I0bbad7b275b836ecaff73c69afdde08e17f310a7 Reviewed-on: http://gerrit.openafs.org/8147 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 72f1f345ece09b1fbd113af17c9e8e25ec9dffa5 Author: Andrew Deason Date: Tue Sep 25 11:16:35 2012 -0500 RedHat: Avoid the DKMS escaping silliness Depending on the version of DKMS, the current MAKE[0] variable in the dkms.conf needs different numbers of backslashes. Commit 81a9a33e tried to address this by changing the contents of dkms.conf depending on whether or not we were on Fedora. However, the change occurred in DKMS 2.2, so if someone running RHEL tries to use a newer DKMS, this will fail. So instead of trying to guess at the level of escaping we need, just avoid needing to escape anything with backslashes. We can quote the heredoc marker to avoid variable expansion inside the heredoc, we can use a case statement instead of using backticks and local variables and such, and we can use single quotes for the outer MAKE assignment. With this, we should not need any backslashes when writing dkms.conf, so we should work with any DKMS version. Change-Id: I5484826c37da13ee383e08bbfeb473aa993e245e Reviewed-on: http://gerrit.openafs.org/8156 Tested-by: BuildBot Tested-by: Andrew Deason Reviewed-by: Derrick Brashear commit 33ca19acbd0526014da6ac7beeb91f8aa9937676 Author: Chas Williams (CONTRACTOR) Date: Mon Sep 24 15:06:10 2012 -0400 afs: casting NULL is generally unnecessary Casting NULL shouldn't be necessary in most cases. Eliminate this in favor of shorter lines and consistency. Function pointers, variadic arguments should still be cast. Change-Id: Ibcd67378556e45c2b24f7aa85a4d73c72cd88e02 Reviewed-on: http://gerrit.openafs.org/8151 Reviewed-by: Garrett Wollman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cee87bde7c1099b526c6c14367f9351e028494c8 Author: Marc Dionne Date: Wed Sep 26 21:37:33 2012 -0400 viced: Remove unused gettimeofday calls StartTime and EndTime are set with gettimeofday(), but are not used for any calcualtions or statistics, and appear to never have been used. There are platforms where gettimeofday is expensive, so remove the variables and the calls. Change-Id: I9ff8035377227cb07383ffea15b7e04f155e307f Reviewed-on: http://gerrit.openafs.org/8164 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 100cec69fbbb911762a3424a37c8a53b299136ea Author: Jason Edgecombe Date: Sat Sep 22 21:07:51 2012 -0400 TESTS: Skip the volser tests if current hostname maps to the loopback network Change-Id: I35d16ba418d0ecd67ffbd54d564a515bf551fe8d Reviewed-on: http://gerrit.openafs.org/8146 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit a060159b95c0d29afaee1e8eac5827c7f8b40e47 Author: Derrick Brashear Date: Wed Sep 26 07:37:11 2012 -0400 auth: token jar handling should realloc correctly instead of reallocing n+1 tokens, we would realloc 1 token plus N bytes Change-Id: Idb5a20b5b9becc9d48cb645bbc0bd26459220ccd Reviewed-on: http://gerrit.openafs.org/8163 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 5538633c9fc5677f2b9e0974b54153c9ccabab55 Author: Chas Williams (CONTRACTOR) Date: Wed Mar 21 20:59:19 2012 -0400 afsio: add -clear and -crypt option Allow the user to optionally not use encryption (and also allow user to ensure that encryption is being used). Change-Id: I3ad590e21f5139654b22c8284ea2634ce902a1b5 Reviewed-on: http://gerrit.openafs.org/8138 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 54e413387391f643008b70b05dadb9545e3bc900 Author: Jason Edgecombe Date: Sun Sep 16 21:01:04 2012 -0400 DOXYGEN: Move the protocol and architecture docs into their own modules Change-Id: I1021d99c2479f9157e5c5b1fef10e5d975b35f86 Reviewed-on: http://gerrit.openafs.org/8130 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 10dbf19378b3d3f38b1be9387c7e9943ef219d19 Author: Jason Edgecombe Date: Sun Sep 16 21:00:40 2012 -0400 DOXYGEN: Add a simple index page Change-Id: I26dde9ae732841f04799f7b6ff79a994c450400b Reviewed-on: http://gerrit.openafs.org/8129 Reviewed-by: Ken Dreyer Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d52398940d58ccdba4114a9975762f48cc24ad15 Author: Marc Dionne Date: Mon Sep 24 20:47:00 2012 -0400 Windows: Export a few more functions to afsauthent and afsrpc The following exports are added: libafsauthent: afsconf_SetExtendedCellInfo afsconf_PickClientSecObj afsconf_SawCell ka_PrintBytes ka_KeyIsZero libafsrpc: initialize_RXK_error_table Those functions are referenced by the bos code. Change-Id: I26898070c8e9dc7cac53f13c49dadf28d58457f4 Reviewed-on: http://gerrit.openafs.org/8154 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 70c4369e893d6770f0f7b243c3e840c32b5a2a2b Author: Jason Edgecombe Date: Fri Sep 21 23:14:37 2012 -0400 TESTS: Add a library to check for the default loopback network Change-Id: Id7bb92345e97309363fa5ddbff9147edf30ccd96 Reviewed-on: http://gerrit.openafs.org/8145 Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 58c089e642198a210462b3bf508056b56667f879 Author: Marc Dionne Date: Fri Sep 21 20:08:58 2012 -0400 bozo: fix typo in help text Fix a typo for "interface" in the help text for bosserver. Change-Id: I042fc52e46f50dd00be9fc9bf62525a0f2755dda Reviewed-on: http://gerrit.openafs.org/8144 Reviewed-by: Ken Dreyer Tested-by: BuildBot Reviewed-by: Jason Edgecombe Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Reviewed-by: Michael Meffie commit 94115df4352b872ae096977d9a77fad935864688 Author: Andrew Deason Date: Mon Sep 24 11:31:29 2012 -0500 LINUX: Avoid 'wakeup' define Make 'wakeup' a static inline function instead of redefining 'wakeup', so we can use the keyword 'wakeup' elsewhere. Specifically, 'wakeup' is used in some Linux kernel structures, so redefining it can confuse some things. Change-Id: I462903099426b4d2e940e749dd958e03a04f7eb1 Reviewed-on: http://gerrit.openafs.org/8149 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 179096d9b2c461f02236bbf670b46597ff2d4c3c Author: Andrew Deason Date: Mon Sep 24 13:03:34 2012 -0500 LINUX: Define printf/uprintf as variadic macros Instead of defining the string 'printf' itself, make printf (and uprintf) variadic macros. This avoids renaming printf to printk for things like '__attribute__((format(printf,X,Y)))'. Note that this is Linux-specific; compilers on other platforms may not support variadic macros. This avoids many warnings in the Linux kernel module build if we include Linux headers after AFS headers. Change-Id: I2b8ed67f25e93f559535e40680ecab6fe7579e9c Reviewed-on: http://gerrit.openafs.org/8150 Reviewed-by: Derrick Brashear Reviewed-by: Marc Dionne Tested-by: BuildBot commit 1046bf7904dd323e1cd1c1788870052c315ec2a3 Author: Andrew Deason Date: Thu Aug 30 17:10:36 2012 -0500 rx: More afspag-specific objects For Linux, each object in the kernel module needs to be in only one module for KBUILD_MODNAME. For AFS_RXERRQ_ENV, we pull in some additional headers that require KBUILD_MODNAME in rx. So, just add a few more afspag-specific rx objects. Change-Id: I80b4a8648141856dffce6e26d5c034dffd8dd5cf Reviewed-on: http://gerrit.openafs.org/8113 Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear Tested-by: Andrew Deason commit 0e68488ec1a8420511095b389a7d820b9e115f11 Author: Andrew Deason Date: Thu Aug 30 16:36:48 2012 -0500 rx: Do not include linux/module.h This isn't available in userspace; we don't need it, so just don't include it at all. This was introduced in 9cd98379. I had thought it fixed a build failure, but I believe now I just made a mistake during build. Change-Id: If97d8e3204b27acd053ec021ddd8cd1527dad3c5 Reviewed-on: http://gerrit.openafs.org/8112 Reviewed-by: Derrick Brashear Tested-by: Andrew Deason Tested-by: Derrick Brashear commit 347908cd0031c558c266ec412aa49200ae2b3204 Author: Andrew Deason Date: Tue Sep 11 18:46:42 2012 -0500 rx: Save errno in LWP rxi_Sendmsg Much of this code examines errno or WSAGetLastError to determine what to do. However, some other operations between the actual sendmsg call and code that examines errno may modify errno. So, save the value of errno to ensure errno reflects the actual error we got from sendmsg; this also slightly simplifies some of the logic. Change-Id: I5a8643fce5d2e29131069743b14805bbc2428805 Reviewed-on: http://gerrit.openafs.org/8110 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 27ee85123284b77004c757fec7cd6c9af3078e05 Author: Andrew Deason Date: Tue Sep 11 12:56:22 2012 -0500 rx: Split out rxi_NetSendError This logic is duplicated in a couple of places. Just extract it into its own little function for easier modification. Change-Id: Iebcc460698beaee6f1cee4b4fb633b9a10e37213 Reviewed-on: http://gerrit.openafs.org/8109 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit a7278eb5620507cd70086582cf539b4024b46194 Author: Andrew Deason Date: Mon Sep 24 14:20:07 2012 -0500 doc: Fix Solaris 11 kernel module path For Solaris 11, the module goes in drv, not fs. Change-Id: Ib297239b845977eaf7e4cdb3edaba32db6733e12 Reviewed-on: http://gerrit.openafs.org/8152 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Ken Dreyer commit 5ef5cf48f3d2ba52cf5ed428728215b5b5f8d0b2 Author: Michael Meffie Date: Fri Sep 21 15:58:29 2012 -0400 doc: solaris x86 kernel module path Add instructions for solaris x86 kernel module installation. Change-Id: Ib6756f609c21867f964a4ab03af322ee4eb1526d Reviewed-on: http://gerrit.openafs.org/8143 Reviewed-by: Ken Dreyer Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit fe72b581d7c0a5285f109109ae7ed703f1d62b6f Author: Chas Williams (CONTRACTOR) Date: Sun Sep 23 19:02:19 2012 -0400 doc: fix kindle builds of documentation Use kindlegen located by the configure stage and test for kindlegen and dbtoepub before building in all cases. Change-Id: Ieb46023ddf0725a2c93f96e29f942b71343d53dd Reviewed-on: http://gerrit.openafs.org/8148 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Ken Dreyer commit 4f42ff3c31a16c8aea8bb76227856615e0b3ccfb Author: Andrew Deason Date: Fri Aug 31 14:51:45 2012 -0500 Pretty make output for tsalvaged, lib[u]afs Change-Id: I852f862c029cad60dc7871ab22367fb266314244 Reviewed-on: http://gerrit.openafs.org/8108 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 112348b4a5721a2c0585669160b7ec7d1689eb30 Author: Andrew Deason Date: Thu Aug 2 15:02:09 2012 -0400 doc: Add quotes to bos create in DAFS QSG section In appendix C in the QSG, we give an example 'bos create'. The given -cmd arguments should have quotes, or they will be interpreted as individual arguments to 'bos create'. Change-Id: Ie8b0a69908b3419af303716acce51e8d1e97837b Reviewed-on: http://gerrit.openafs.org/7930 Tested-by: BuildBot Reviewed-by: Ken Dreyer commit aea3c71e59ec30e84ca4e7383fd3b566ce94bbb6 Author: Rainer Toebbicke Date: Wed Sep 19 12:13:15 2012 -0400 butc: clean xbsa shutdown on control C when we catch a control-c, do a clean shutdown Change-Id: I8da28c28d0a238d3642f65c381c399a883d6d4b1 Reviewed-on: http://gerrit.openafs.org/8141 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ba9cc212d782678cb32167b498efa82718b60b7f Author: Marc Dionne Date: Tue Sep 18 20:29:06 2012 -0400 quiet build: Define NOQ version of LT_LDLIB_lwp When the command is invoked within a case statement, we need the "NOQ" version of RUN_LD. Add the LT_LDLIB_lwp_NOQ variant and use it under src/sys where LT_LDLIB_lwp causes a build error. Change-Id: I5af9c6cbbe9c3cf284d8e9aabb63d53bf5b056ea Reviewed-on: http://gerrit.openafs.org/8140 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 71a5f2965d6a6ff3113e7d2f9cab7d687b502793 Author: Derrick Brashear Date: Tue Sep 18 14:46:37 2012 -0400 libuafs: enable 64 bit mode on linux already safe and being used on other platforms; might as well here too. Change-Id: I1fe4c2459caaea873e5618d0b097a142dd935791 Reviewed-on: http://gerrit.openafs.org/8139 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 16bd729a06f6f30b0d1a3eba925a0371569c5508 Author: Derrick Brashear Date: Tue Sep 18 11:41:55 2012 -0400 libuafs: honor debug vs optimize setting from configure OPTF should not be forced on if the user specified debugging. side effect: use the OPTMZ setting for the platform instead of hardcoding here. Change-Id: Ib1cd4afebbd037938e2ee18e3bfc347b3690277b Reviewed-on: http://gerrit.openafs.org/8136 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 43db9a73a2b34217b35c9d499bf685895a9e1390 Author: Derrick Brashear Date: Mon Sep 17 23:26:12 2012 -0400 afsd: roken.h includes dirent.h; get valid dirent defines on osx our workaround for #define KERNEL didn't work on OSX because roken.h included dirent.h before we got the chance. cope with it. Change-Id: I5e580aa934cec4e99d62ba105873f71b11326e2f Reviewed-on: http://gerrit.openafs.org/8132 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 7b4d0cde3fcfb0a098b3108843dfbdefd555aa17 Author: Chas Williams (CONTRACTOR) Date: Mon Sep 17 15:00:06 2012 -0400 libuafs: use the pic version of opr for perluafs perluafs is a shared library, therefore we need to use the PIC version of the opr library (just like any of the other libraries that have two flavors and get linked with perluafs). Change-Id: I597f4f40010524d94341d343d3f54648a139f760 Reviewed-on: http://gerrit.openafs.org/8131 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Jeffrey Altman commit b52d0b50ff4a8026eb4043898d8f070f960e511d Author: Marc Dionne Date: Sat Sep 15 16:02:26 2012 -0400 make install fixes for libraries Don't install several libraries that have dependencies that are not currently installed, but install static libraries. Fix rule for libafsauthent_pic.a to get the library from .libs Change-Id: I746b111edf8a6d94ad98fcf235e34b4dac1eb050 Reviewed-on: http://gerrit.openafs.org/8123 Reviewed-by: Simon Wilkinson Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit d2674bf1fd3b2bcd0111f3b60029ca3529e7d8a5 Author: Marc Dionne Date: Sat Sep 15 13:53:06 2012 -0400 rxkad: silence unused variable warnings in v5gen.c Sprinkle AFS_UNUSED attributes where the compiler complains about unused variables. Note that this file is assembled from code generated by the heimdal source. A similar fix exists in the generator code upstream, so when the file is re-generated in the future it should not be necessary to re-apply this. Change-Id: I2ef407428d90157050481d5630f6f22510d65ca3 Reviewed-on: http://gerrit.openafs.org/8122 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman commit dca06bd10493eaea7565c42417bd0dbd0dc03b82 Author: Simon Wilkinson Date: Sun Sep 16 19:54:48 2012 +0100 tests: Convert opr tests to use libtool Avoid the problems with libopr's dependencies by just converting the tests to use the libtool version of the opr library. While we're at it, make the tests pthreaded too. Change-Id: I4e570b288ea57c758c848be1d545e5ee59771ab9 Reviewed-on: http://gerrit.openafs.org/8127 Reviewed-by: Jason Edgecombe Tested-by: Jason Edgecombe Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 88fc3c6f4257561d30234651fc5ec46ea62b020f Author: Simon Wilkinson Date: Sun Sep 16 15:39:25 2012 +0100 Split up libtool support into LWP and pthread Currently, the type of library you build is determined by whether the library is build in a pthread, or an lwp build directory. However, this prevents building an LWP library in a directory that builds pthreaded clients and servers. As we want to continue to provide LWP libraries for backwards compatibility, but move over to pthreaded binaries, this causes some issues. So, split up the libtool logic, so we have Makefile.libtool, which you include if you want to build a pthreaded libtool library, and Makefile.lwptool, for building a library which supports LWP and pthreaded use. These only affect how .lo files are built - so the .o files used for non-library objects are managed with the Makefile.pthread and Makefile.lwp includes as before. Change-Id: Ib1af48342253230abab9056eb15a3f79bd77a6de Reviewed-on: http://gerrit.openafs.org/8126 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 519f2b96c7ea84e7d78c558c6602960035e4c508 Author: Simon Wilkinson Date: Sun Sep 16 17:48:08 2012 +0100 tests: Fix volser Makefile The volser Makefile had a bad path for liboafs_util, and was still directly pulling in some objects from the fileserver build. Fix it so that it uses proper libraries. Change-Id: Ic36c6a0f93c299bd04d48fa4238c4da5cbc571d4 Reviewed-on: http://gerrit.openafs.org/8125 Tested-by: BuildBot Reviewed-by: Jason Edgecombe Tested-by: Jason Edgecombe Reviewed-by: Derrick Brashear commit f1b88f0713e49ed89a230364be9f12b62f2fe46b Author: Marc Dionne Date: Fri Sep 14 19:23:55 2012 -0400 libafsauthent: fix parallel build Same logic as ee18ccbe - we have to avoid building libafsauthent.la and libafsauthent_pic.la at the same time. Add a dependency to force make to build them in sequence. Change-Id: I4b341d7688a249e0067c3917909259c813f26717 Reviewed-on: http://gerrit.openafs.org/8121 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit c4c51444ebd35fe0ceccde23512707ae693210ee Author: Ben Kaduk Date: Thu Sep 13 17:28:17 2012 -0400 FreeBSD major version numbers are multi-character Do not assume that there is only a single character before the dot. Change-Id: I45169a6faa5dbeafc4f9c57deaaad96bef8de613 Reviewed-on: http://gerrit.openafs.org/8106 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 23c23592f422ec7696f92a1c7a056c408b23692b Author: Simon Wilkinson Date: Fri Sep 14 11:42:56 2012 +0100 opr: Libtool archive should depend on symbol file There should be a dependency between the libtool archive liboafs_opr.la and the symbol map for the archive (liboafs_opr.la.sym) so the archive is rebuilt if symbols are added to, or removed from, the map file. Change-Id: Ifb0cd0a8abaa4c9b476c53cf186458ec0b8f8778 Reviewed-on: http://gerrit.openafs.org/8107 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f11cd3725a6a50d6e4f7b899a1fd7b7e0cc160ab Author: Simon Wilkinson Date: Wed Sep 12 10:59:16 2012 +0100 afsd: Add missing variable for Solaris The Solaris 11 syscall code was missing a definition for the 'error' variable Change-Id: Ia9a678435203994e1791824954d8c28c3cdefe17 Reviewed-on: http://gerrit.openafs.org/8103 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit ba043e11022e87fae3fd04fd55c223aae788463b Author: Simon Wilkinson Date: Wed Sep 12 10:20:43 2012 +0100 libafs*: Don't re-export opr/util functions On Solaris, a library can't re-export functions which come from one of its dependencies - so libafsrpc can't easily republish the 5 opr functions that are currently in the libafsrpc map file. Including the bits of the opr library that define these functions causes problems with then linking libafsrpc against libopr, which we do in a number of places. libafsauthent has exactly the same problem, with a few symbols that it pulls in from util. The affected symbols were all added relatively recently, and have limited uses outside of the OpenAFS tree, so just remove them from the export list so we are one step closer to building on Solaris again. Change-Id: If0a1105320e416ebc013ff670dddd5d247b06f6b Reviewed-on: http://gerrit.openafs.org/8102 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit b22b1ed356d885db04c0233bc82279ef6c8f40de Author: Simon Wilkinson Date: Fri Aug 31 12:18:21 2012 +0100 Stop using libafsauthent Change-Id: Ieead3704e3210a1d88500ad1efa15bd2cad93bf6 Reviewed-on: http://gerrit.openafs.org/8098 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 3c3d209a4f2a3efbd9fa1d3cd59e735a45a2d690 Author: Simon Wilkinson Date: Fri Aug 31 11:13:06 2012 +0100 libafsauthent: Build with libtool Construct the libafsauthent library with libtool. All libraries contributing to libafsauthent provide a libauthent_.la convenience library, which we use libtool to combine into shared and static versions of libafsauthent. Change-Id: I76fa61eb027862eab730c4c86ab74a7b7e03c13b Reviewed-on: http://gerrit.openafs.org/8097 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit acfa4865d9fbeb43dc36a84784d5efa8d05007c7 Author: Simon Wilkinson Date: Wed Sep 12 06:53:24 2012 +0100 opr: Add hcrypto to the library list uuid needs hc_RAND_bytes, which means that liboafs_opr has a dependency on hcrypto (and, until hcrypto is libtooled, on libroken as well). Make this dependency explicit. Change-Id: I748a43f7a2125c12b566502580e149ad1d9c1164 Reviewed-on: http://gerrit.openafs.org/8101 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 630072828230bbe5bcf5ce608b5d25f2c4ba6f77 Author: Simon Wilkinson Date: Wed Sep 12 06:51:08 2012 +0100 ptserver: Fix parallel builds It's not safe to have libtool building a blah.lo at the same time as gcc is building blah.o. A Makefile must exclusively use either the .lo or the .o form. Fix ptserver so that ptint.xdr.lo is the only one referenced, and just explicitly pull in the LWP object for the ptserver. Change-Id: I2e868d2d318c84e20bcccc0ffc462c87e4b7a2f2 Reviewed-on: http://gerrit.openafs.org/8100 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e52183033fdc83f927383ff432c9bd7e024051ba Author: Simon Wilkinson Date: Thu Aug 30 12:41:04 2012 +0100 kauth: Use libtool Modify the kauth directory so that we use libtool to build its library. Unlike most of our other directories, kauth has few pthreaded consumers within the tree, so the libtool library itself is currently unused. The libtool conversion is done as a stepping point for libafsauthent, which does include kauth objects. At the same time, we take the opportunity to modify kaserver so that it uses libkauth, rather than referencing the library objects directly Change-Id: I9d261686753b30c415f767603d44c7ce6e10eed1 Reviewed-on: http://gerrit.openafs.org/8095 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1e53d5dae07635c4ceb425b394a648363c41c229 Author: Simon Wilkinson Date: Tue Aug 28 20:10:04 2012 +0100 volser: Use libtool Change-Id: Ic70476aa7258d12aafa7b06ae380012f040c65b6 Reviewed-on: http://gerrit.openafs.org/8094 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9ed998275cae289be7403717d9c6181c42196164 Author: Simon Wilkinson Date: Tue Aug 28 08:18:45 2012 +0100 vlserver: Use libtool Change-Id: I030ec62db64b6dab856d520e68d5d727cd7b8bb3 Reviewed-on: http://gerrit.openafs.org/8093 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 47e7ecf8578422644186a07976dda40e45f27287 Author: Simon Wilkinson Date: Thu Aug 23 22:58:20 2012 +0100 acl: Use libtool Change-Id: I589fc4d9b12bb23a34ef9145cd699e9ea2c4f496 Reviewed-on: http://gerrit.openafs.org/8092 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1e7de65899e3ae30b21b804606f2876fe748d8b8 Author: Simon Wilkinson Date: Thu Aug 23 22:18:49 2012 +0100 ptserver: Use libtool to build a pthreaded libprot Use libtool to build a pthreaded version of libprot in src/ptserver. Make the tptserver directory just build pthreaded versions of the client and server, and link these against libprot Change-Id: Idc43de8c548f38584e78b35f9f1ecba3eb4b74d2 Reviewed-on: http://gerrit.openafs.org/8091 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 035a2ea4a1a26141508cf3fa5918d40b7be6fc90 Author: Simon Wilkinson Date: Thu Aug 23 21:35:35 2012 +0100 ubik: Use libtool Use libtool to build LWP and pthreaded versions of the ubik library. Both versions are built in the src/ubik directory. src/tubik is modified to only build pthreaded versions of the ubik test commands. Replace use of libubik_pthread.a with the libtool generated library. Change-Id: Id441fe00dbe801e38a108600bfbe06c292383872 Reviewed-on: http://gerrit.openafs.org/8090 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ee18ccbeeb54b76fcc3fc5952da58d1a505eef23 Author: Marc Dionne Date: Mon Sep 10 20:49:19 2012 -0400 libafsrpc: avoid concurrent libtool libtool gets confused if it is running two instances in the same directory, so make sure we build libafsrpc.la and libafsrpc_pic.la one after the other. Change-Id: Idfd16b1f4e1efe07822a300df798bf05e2df6bcd Reviewed-on: http://gerrit.openafs.org/8086 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit d72df5a18e0bb8bbcbf23df3e8591072f0cdb770 Author: Michael Meffie Date: Tue Sep 11 08:59:13 2012 -0400 cmd: exit status zero from -help Return of an exit status of zero when running commands with -help, instead of returning an error. By general convention, and in previous versions, tools do not not treat -help as an error. The AFS::Command perl modules, use -help as an introspection technique, and fail when commands run with the -help option returns non-zero. Change-Id: I6ecd95f6ccd07218a2657dbb4dbf1c13599159f4 Reviewed-on: http://gerrit.openafs.org/8087 Reviewed-by: Derrick Brashear Reviewed-by: Simon Wilkinson Tested-by: BuildBot commit 1015a097bffef8b2d56050210d47a31ad32f5858 Author: Simon Wilkinson Date: Thu Aug 23 20:48:21 2012 +0100 auth: Use libtool Use libtool to build a pthreaded version of the auth library Change-Id: I452773e7fa159c278f5a7a7d21e77b6dd44c14bd Reviewed-on: http://gerrit.openafs.org/8089 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9c66a1a8f38736063fbf30e55ad46acfba36d540 Author: Simon Wilkinson Date: Wed Aug 22 12:59:30 2012 +0100 audit: Use libtool Convert audit into a libtool library Change-Id: Ie95539596deb2cda2959f5c5ab822d291c08acc0 Reviewed-on: http://gerrit.openafs.org/8088 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 95f2b8f92814bf66a1dfea9bd449f030e2300f3e Author: Simon Wilkinson Date: Wed Aug 22 13:13:15 2012 +0100 Stop using libafsrpc Instead of using libafsrpc.a in the pthreaded server directories, use the libtool library variants instead. Change-Id: I4cdbaf5a060b3e5aa82fb0d79535cb4fdc850bcf Reviewed-on: http://gerrit.openafs.org/8074 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8662592caedbcf8e065312fe142731faabe1eb77 Author: Ken Dreyer Date: Mon Sep 10 11:20:26 2012 -0600 add a simple backport policy to README.GIT This will clarify where patches should go, and who can do backports. Change-Id: Ie3efa6522382ea0cabc5847dbc1d75d59b04a403 Reviewed-on: http://gerrit.openafs.org/8075 Reviewed-by: Andrew Deason Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 4505af800206c0857245c8192710a00bdf08e51c Author: Derrick Brashear Date: Mon Sep 10 14:43:08 2012 -0400 aix: add atomic support aix has an atomic facility. add support for it. Change-Id: Iaf1305fbafe1c0d7f0d22f14babfbea382c0b32d Reviewed-on: http://gerrit.openafs.org/8076 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 320f74653c24f334a28463f971fdf2064cc701ae Author: Simon Wilkinson Date: Wed Aug 22 09:46:24 2012 +0100 libafsrpc: Assemble with libtool Use libtool to assemble the libafsrpc shared and static libraries from objects built with libtool in each of the directories that contribute to the library (fsint, rx, rxkad, comerr, util, rxstat, sys and lwp). Each source directory controls which objects are built into the shared library by making a libafsrpc_ libtool convenience directory. These convenience directories are then merged together to produce the libafsrpc library. Change-Id: I330aeb8df4c237b408a298826363eea7357339ce Reviewed-on: http://gerrit.openafs.org/8072 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 123c2ac285fb5a4968fbf4ab3a2565022d72d02a Author: Derrick Brashear Date: Sun Sep 9 21:42:09 2012 -0400 opr: build and install pic library correctly previously we installed the same library as both the normal and pic variants. tweak to build a pic version also. Change-Id: I6b197d43184a9aa23aa65de663f8f5f08d486912 Reviewed-on: http://gerrit.openafs.org/8073 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9220bd4adc6cf58b29fcdae053edd3b6f0165891 Author: Simon Wilkinson Date: Wed Aug 22 12:45:43 2012 +0100 Don't explicitly build and link rx_pthread.o A number of pthreaded directories explicitly build, and link, with rx_pthread.o, in order to be able to send RX 'dpf' debugging messages to the server log, rather than to stderr. However, this direct linking causes build failures on some platforms, because we end up linking in a version of rx_pthread.o, twice and both versions contain identical linker symbols. As this functionality is only used for debugging, just get rid of the additional object. Change-Id: I6126891db2dcbc289f6a9f7b99c01d6af7a19089 Reviewed-on: http://gerrit.openafs.org/8071 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit c9e89088afc5989031e54cbd15e050bc92518433 Author: Simon Wilkinson Date: Wed Aug 22 09:39:59 2012 +0100 fsint: Move to using libtool Move the fsint directory over to building a libtool library (liboafs_fsint). Because libtool requires that libraries have no unresolved dependencies, we cannot include the server side stubs in the libtool library. Change-Id: Ia3f009680ac510f522b806366985e557cd6e4219 Reviewed-on: http://gerrit.openafs.org/8070 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3f63d48dab4c46389fde6920189960c1f44494a2 Author: Simon Wilkinson Date: Thu May 24 22:08:45 2012 +0100 lwp: Build a pthreaded compat library with libtool The majority of the LWP directory isn't used by pthreaded applications. However, there are three files - fasttime.c, lock.c and waitkey.c which are used within pthreaded code. Eventually, these should live somewhere other than the LWP directory. For now, just build a small pthreaded library to hold them, so we can finish up with the libtool work before considering how to move this code elsewhere. Change-Id: I66281f7cd838c048fd982bbd0f756a16a10862d1 Reviewed-on: http://gerrit.openafs.org/8069 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit f29887631da6567b952c89c7cf0379f910863559 Author: Simon Wilkinson Date: Thu May 24 21:57:55 2012 +0100 rxstat: Use libtool Change-Id: I4fd533691cf191b37c1f80038651b45efd142133 Reviewed-on: http://gerrit.openafs.org/8068 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 972c45c0833171bb401ffe6d10719f050cc0cf4b Author: Simon Wilkinson Date: Thu May 24 11:55:26 2012 +0100 rxkad: Add a libtool library Add liboafs_rkxad.la, a libtool version of librxkad.a Change-Id: I414dada02d202d8bdba4234f92d445b560dbb297 Reviewed-on: http://gerrit.openafs.org/8065 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9953a23699044e9e8e5b70e83058578ba862a7cb Author: Simon Wilkinson Date: Sun Sep 9 10:19:53 2012 +0100 rxkad: Use rxi_Alloc not osi_Alloc rx exposes the rxi_Alloc function to be used for memory allocation in security classes, not osi_Alloc which is private. Using rxi_Alloc means that allocations are counted in the general rx statistics. Modify rxkad so that it uses rxi_Alloc. This also restores symmetry in the allocator - the memory that's allocated by rxkad_server is already freed using rxi_Free in rxkad_DestroyConnection Change-Id: I3321355f2470974d3570dd911f06ea91c21d1c9d Reviewed-on: http://gerrit.openafs.org/8067 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4fc7850a0c618443e3eb636ac5fe2f0e3202451b Author: Marc Dionne Date: Sat Sep 8 15:43:17 2012 -0400 comerr, cmd, opr: fix library install targets Fix a couple of issues in the install targets following the libtool changes: - don't install liboafs_comerr or liboafs_opr, they're not ready to be exposed to the outside world - fix the libcmd.a install target to use INSTALL_DATA and the correct library name Change-Id: I2bf241cfff419d51bf170fdc871248e9b0c7ab33 Reviewed-on: http://gerrit.openafs.org/8063 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 22ee485b5d3f7d70e8326967be9b705352338c3a Author: Simon Wilkinson Date: Thu May 24 11:26:51 2012 +0100 Sys doesn't depend on auth Nothing in sys depends on auth headers, so remove the dependency Change-Id: Ic7d9b8e66c03f87d2de95166865d39feab8717af Reviewed-on: http://gerrit.openafs.org/8064 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5563ff6674ddac87265d800878774532f6fa0dae Author: Simon Wilkinson Date: Thu May 24 11:24:47 2012 +0100 sys: Use libtool for pthreaded library Create a pthreaded version of libsys.a, called liboafs_sys.a On AIX, the sys library is special because it includes references to two syscall stubs - lpioctl and lsetpag. This means that we can't link the library with -no-undefined, as the references to these stubs are only resolved at run time. Change-Id: Iaae5923fe4eec7bc3f006e29df4e26e4ba8e5418 Reviewed-on: http://gerrit.openafs.org/8061 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 564fe1e32989211312ccec56c8a8407e2cceea51 Author: Simon Wilkinson Date: Thu May 24 11:08:48 2012 +0100 rx: Build libtool library Build a pthreaded, libtool, version of librx.a called liboafs_rx.la. librx.a remains for LWP applications to use. With this change, all RX objects are built in both the LWP and pthread cases, so some #ifdef guards are required to protect code that isn't relevant in a given build. Currently, all of our pthreaded objects use libafsrpc to get RX functionality, so this change is fairly minimal outside of the RX directory. Change-Id: I8e629e2319fb1964058e70c3c0c3ed548b09b22d Reviewed-on: http://gerrit.openafs.org/8058 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit bdfe025b646036788095e39159e0566bb32007fa Author: Simon Wilkinson Date: Thu May 24 10:26:21 2012 +0100 usd: Convert to using libtool Turn the libusd library into a libtool object (it has no pthread/LWP differences, and so can just become a pthreaded library), and include it as such in butc and the volser. liboafs_usd.la is the libtool object, libusd.a is preserved as a static object for backwards compatibility. Change-Id: I25c3d0f429415527fe529c3d3e5afbad9490ea45 Reviewed-on: http://gerrit.openafs.org/8057 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 012b878576a1e7632622041d656e3aada51550d9 Author: Simon Wilkinson Date: Thu May 24 09:14:18 2012 +0100 util: Convert to using libtool Create a pthreaded version of libafsutil, named liboafs_util.la, and use this library in all of the pthreaded binaries that we build, replacing both inclusion of libafsutil.a, and direct compliation of pthreaded versions of the util source files. libafsutil.a is provided for legacy LWP applications, and the convenience library libafsutil_pic.a remains until we address the way in which the user space cache manager is built and linked. Change-Id: Ibdc3d6e2fe56ca6f5b882cf03991d1a2e32c62b2 Reviewed-on: http://gerrit.openafs.org/8056 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 772e957b7196a214bcb39f06e9c864c6e5a02ac5 Author: Derrick Brashear Date: Fri Sep 7 16:47:43 2012 -0400 uuid: hashes are positive ints switch to unsigned Change-Id: I2a2dbde211d1de2c73bcf5fd0c9ef1704d0e0000 Reviewed-on: http://gerrit.openafs.org/8060 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d36be5b8be5ac248b88224606c09257efab0718e Author: Simon Wilkinson Date: Wed May 23 21:43:57 2012 +0100 cmd: Convert to using libtool Convert the libcmd and libcmd_pic libaries to being built using libtool. Historically, these have been built as LWP code, but they have no LWP dependencies, and no LWP-specific code within them. So, make cmd a pthread-only library. In addition to the libtool library liboafs_cmd.la, we build the legacy libcmd.a and libcmd_pic.a as convenience libraries. libcmd64.a (a 64bit variant, used solely by kdump), remains built through "normal" means. Update pthreaded users of libcmd to use the new liboafs_cmd.la. For now, non-pthreaded users are left alone. Change-Id: Id8445949754d1942f6e8752ae182b4e6f86fe94f Reviewed-on: http://gerrit.openafs.org/8055 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 11e0ce535d094579c58247bd6274e058fb7cd71c Author: Simon Wilkinson Date: Fri Sep 7 13:51:29 2012 +0100 comerr: Fix a couple of libtool problems The comerr libtool patch was submitted before buildbot had a chance to verify it. Fix a couple of problems that buildbot identified: *) On AIX liboafs_comerr needs to link against roken *) On OpenSuSe the LWP CC command has a space in it, so needs to be quoted before being passed in to lwptool Change-Id: I885099f57ef670ed58d532162b1cb70316744b28 Reviewed-on: http://gerrit.openafs.org/8059 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d6d2f2845072e75cdf1e21bd5d28aba70610bce7 Author: Simon Wilkinson Date: Tue May 22 08:37:08 2012 +0100 comerr: Convert to using libtool Convert the libafs_comerr library so that it uses libtool. comerr uses a pthread lock to protect the error tables, so it needs to be built as both an LWP, and a pthread library (previously, we've just built it as LWP, which is probably broken on some platforms, as it won't define -D_REENTRANT) libafscom_err.a remains as the LWP variant, and all pthreaded code is modified to use the libtool liboafs_comerr.la library. Change-Id: Id421cc97ad8681b42af7a5eb3cb512e1e1ce9a90 Reviewed-on: http://gerrit.openafs.org/8054 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 61d417c1a3770f2a53ef883f9ec2ed077184ab1d Author: Simon Wilkinson Date: Fri Sep 7 11:43:21 2012 +0100 lwp: Fix stupid mistake in lock.h My earlier change to lock.h got the sense of the opr_Verify test wrong, so we would assert() whenever the lock call succeeded. Fix this, so things work again. Change-Id: I7e2fda473343c7b541d6ca120ef0977adcf35f62 Reviewed-on: http://gerrit.openafs.org/8053 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit fe2641e35b9cf540132fdba828bdc097392a899e Author: Derrick Brashear Date: Thu Sep 6 14:27:13 2012 -0400 tests: deal with one more unsigned warning C90 wants this unsigned hint before it will dtrt Change-Id: Ic60b0336df7e8c4373582ffa352f4042ebc021c1 Reviewed-on: http://gerrit.openafs.org/8050 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit f230eda87f33c31a3f69fc6c83cf2e77bbecaed2 Author: Derrick Brashear Date: Thu Sep 6 14:28:04 2012 -0400 rx: initialize mutexes from globals in order to work around stupidity from macos linker. same fix as was needed in 0559a23d38f98280e2eb1c1e2fc91ae7a1798537 Change-Id: Idb78abd74eef45cb3c9b212647dd6722c98e0cd5 Reviewed-on: http://gerrit.openafs.org/8051 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit ef7cc7e3f50c7d443a84fbab6bf21a85e9796c5c Author: Derrick Brashear Date: Thu Sep 6 14:26:32 2012 -0400 regen: look for glibtoolize also macos uses the g prefix to avoid conflicting with a system tool called libtool. Change-Id: I867f5c4aa7e7c21bf47087b05a58299e11a5b70a Reviewed-on: http://gerrit.openafs.org/8049 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit ed0624c32e671f8ae391a61ff8b870ecde740216 Author: Ken Dreyer Date: Thu Sep 6 12:24:25 2012 -0600 doc: fix examples of direct volume access Fix the Unix examples to use ":volume" instead of "#volume", and add a couple more examples. Change-Id: I2e7907b128248343d99136552ab791b9bf0246ca Reviewed-on: http://gerrit.openafs.org/8052 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit d77a99106de3ee758f532497c05a7994f96422b8 Author: Marc Dionne Date: Wed Sep 5 20:45:01 2012 -0400 tests/opr: fixes for the uuid-t.c tests It's always good to have a plan. Also, use correct mask when checking for DCE bit. Change-Id: I4ab72aeb89efbd63d2d15fdc57aea8d2c1eb13d9 Reviewed-on: http://gerrit.openafs.org/8047 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 1f55bc7f08a2e0442e556542fece375746275d34 Author: Marc Dionne Date: Wed Sep 5 20:18:09 2012 -0400 tests/auth: fixes for the opr libtool changes Add a missing line continuation backslash, and use the correct location for libafs_opr.la Change-Id: I52e44d36d9e1a9a0b3cd81c463f952072d4cbb48 Reviewed-on: http://gerrit.openafs.org/8045 Tested-by: Jeffrey Altman Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 0dac4de8eee84a43ef06c56dfc867c2a1b9a9f0c Author: Marc Dionne Date: Wed Sep 5 20:25:55 2012 -0400 Linux: drop GLOCK before calling dput Holding the GLOCK when calling dput can result in a deadlock when the kernel calls back into afs_dentry_iput. It should be safe to drop the lock here. Change-Id: I8966aea7336b39b4c3ec265a53d820fc6135eeaf Reviewed-on: http://gerrit.openafs.org/8046 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 777e03103f5eb05012ea1f7f23624515e4ed6bb4 Author: Andrew Deason Date: Mon May 7 11:15:24 2012 -0500 tests depends on viced Some of the tests code (specifically, that in tests/volser) depends on objects in src/viced being build (specifically, vldbint stuff). So, make 'tests' depend on 'viced', so they are built before we get there. Change-Id: I572c490cf7bd6c84beb8966783c38869b371a85e Reviewed-on: http://gerrit.openafs.org/7367 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 97dfe2b73c753bafedf8961ff4219ee4efdb350c Author: Derrick Brashear Date: Tue Apr 17 00:39:37 2012 -0400 tests: modernize tests to compile in warning-as-errorland the tests haven't been loved as we've been killing warnings. clean up. Change-Id: I9c36114d3172c4a6347f5e890df6edb5caf796b4 Reviewed-on: http://gerrit.openafs.org/7232 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 35d5be2adf2456e26aa6b10935352dc19eb6b3f2 Author: Andrew Deason Date: Fri May 18 17:55:09 2012 -0400 afs: Do not avoid DNLC if fakestat is set Currently in afs_lookup we avoid putting an entry in the DNLC if 'force_eval' is unset, in order to avoid populating the DNLC with mountpoint symlinks (we want the target of the mountpoint to be in there instead, the root dir). However, if -fakestat or -fakestat-all are enabled, 'force_eval' is always false, since we only set it to true under certain circumstances when evaluating mountpoints. To fix this, populate the dnlc for non-mountpoints, even if force_eval is unset. Change-Id: Ia2fef1bea9a08182715d587517f81074147aa4e7 Reviewed-on: http://gerrit.openafs.org/7431 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 238b88624a8fef39557d397cc336c88bd8efc5b1 Author: Andrew Deason Date: Tue Aug 21 17:03:30 2012 -0500 LINUX: Avoid symlink-y resolution limits Implementing the d_automount or follow_link function pointers for our directories means that we can hit symlink resolution limits during lookup, since we look like a "symlink". We can hit these limits pretty easily if there are just too many directories in the lookup path. Our pseudo-symlink directories cannot contribute to an infinite resolution loop, since our destination is always an actual directory, not a symlink that will result in more redirection. So, decrement the total_link_count counter when our d_automount or follow_link code is reached, so we do not contribute to hitting the max resolution limit. Note that this is not related to recursive symlink lookup (link_count) but only to the iterative symlink limit (total_link_count). Our lookups are not recursive here, and we are not causing more recursive lookups like a normal text-based symlink would do. Change-Id: Id6d2edd614388ac0890eb7591caec25d375964ce Reviewed-on: http://gerrit.openafs.org/8009 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit b9a10641dd75fed9bbcd27f6ddbb2b9246f25fe7 Author: Derrick Brashear Date: Wed Sep 5 13:41:48 2012 -0400 opr: export uuid packing routines in the kernel these are actually kernel-safe. allow their use Change-Id: Id0b9e21701dcdf7e43f75a5a9b240cb7579a8d7b Reviewed-on: http://gerrit.openafs.org/8044 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit d01ef1ccfb75bdb649abf5586b786bae0f3eeb1a Author: Simon Wilkinson Date: Fri Aug 17 14:52:16 2012 +0100 Tidy up library includes Tidy up the way that library inclusion is performed in the tptserver, tvlserver and tvolserver Makefiles by splitting the library list into common, client and server, using the appropriate list for each binary, and removing duplicate library or object includes. Change-Id: I5bde3f8b4105372c22984ccd486b145b434ae82e Reviewed-on: http://gerrit.openafs.org/8042 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f258e7dddeb4331d2cf4649541c1a3adfa7a416a Author: Mark Vitale Date: Mon Aug 27 15:11:32 2012 -0400 vos: convertROtoRW - prevent VLDB corruption vos convertROtoRW incorrectly marks the first VLDB entry as the new RW if the converted RO is not in the VLDB. Correct this by creating a new valid RW site in the VLDB entry. Change-Id: I683ac10db90c2c41717c11c0d86eadc81a935e52 Reviewed-on: http://gerrit.openafs.org/8037 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8c785b74c001e2cbfd1bafb35d2c18c55f287985 Author: Derrick Brashear Date: Wed Sep 5 09:58:12 2012 -0400 opr: add time initializer macro add a macro that can be used to initialize an opr_time Change-Id: Ib73fc03d8ba333a054fa073153edafb130b2292b Reviewed-on: http://gerrit.openafs.org/8043 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 03b87dffee1383c3cd5b1fed0ac3116fd8564187 Author: Michael Meffie Date: Thu Aug 30 11:48:34 2012 -0400 bozo: dont lie when binding to any address Do not log the bosserver listening to just the loopback when it is actaully listening on any address. The loopback address is still written to the bosserver.rxbind file in this case to give local scripts an simple way to contact the bosserver. Fixes the log message introduces in commit 9133aa6ed3a7fe2ae55b2d3242366ae277c7f726 Change-Id: I48f3ff5a1f9a20881df11a41baf3da29e1d02576 Reviewed-on: http://gerrit.openafs.org/8022 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit dd48cd3c67cd0a6d71f6f9bea5fd34dcddeefeeb Author: Marc Dionne Date: Tue Sep 4 19:48:12 2012 -0400 crypto: Fix assert macro Commit ab977738b inadvertently changed osi_Assert to opr_Assert for kernel code, causing the kernel build to produce an unloadable module with undefined symbols. Change-Id: I792359974ef21db97267847dfdf6c4b17c84328a Reviewed-on: http://gerrit.openafs.org/8039 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 50a6b047093092a72e925d143fe0d4c7587c2386 Author: Marc Dionne Date: Tue Sep 4 17:09:00 2012 -0400 viced: Make use of unused variable Commit c2d724dc introduced the now variable that was set but never used. Use it in the remainder of the function where time(NULL) appears, which was probably the intention. Change-Id: I9cc25caf20dcfa466865c7fbf67893b022fdcc3e Reviewed-on: http://gerrit.openafs.org/8038 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 8b84d9538c83261f65cb9b6fc51c0225798571e6 Author: Simon Wilkinson Date: Mon May 21 18:04:32 2012 +0100 opr: Convert to using libtool Convert opr so that it uses libtool. For backwards compatibility we still build libopr.a, but we do so as a static convenience library. As libopr.a may, in the future, be converted to an LWP library, change all of the pthreaded binaries so that they link against the libtool library liboafs_opr.la Change-Id: Icee04ff4745334f06ffba16df5bb07fc9dcc0b54 Reviewed-on: http://gerrit.openafs.org/8034 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit b650106e301ecefe2f5c8f4a34081af1f5f74901 Author: Mark Vitale Date: Tue Sep 4 09:06:44 2012 -0400 vos: convertROtoRW incorrect warning when RO not in VLDB vos convertROtoRW will issue an incorrect warning about a partition mismatch if the RO to convert is not in the VLDB. Only check the partition if the RO is in the VLDB. Change-Id: Ib2726bc5bf6697898ad26dc1d817143da3286ba3 Reviewed-on: http://gerrit.openafs.org/8036 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 69f26ece3c4545ecc9099641f7a507796fe9dc77 Author: Simon Wilkinson Date: Mon May 21 08:57:05 2012 +0100 Add libtool support Add support for using libtool to the Unix build system to build both pthreaded and lwp libraries. For purely pthread libraries, this just provides convenience macros to invoke the standard GNU libtool from the OpenAFS build system. For libraries that have lwp variants, we provide an initial wrapper script - lwptool, which handles building a non-PIC LWP object before asking libtool to build the pthread variants. For a given source example.c, example.o is the non-PIC pthread object, .libs/example.o is the PIC pthread object, and .lwp/example.o is the LWP object. To use libtool for a particular library directory, add the line include @TOP_OBJDIR@/src/config/Makefile.libtool to the file's preamble. Makefile.pthread, or Makefile.lwp should be included as normal to indicate whether the libraries in this Makefile are pthread only, or should be built for both pthread and LWP objects. The variables LT_current, LT_revision and LT_age may be used to control the version of the shared objects produced. They have the same meaning as that documented in the Versioning section of the libtool manual. The LT_objs variable should be set to a space separated list of the .lo objects included in the library. Note that there should _never_ be a dependency on the .o form of these objects in the Makefile, as this breaks parallel builds. LT_deps is a list of the libtool dependencies of the library, and LT_libs is a list of the external (non-OpenAFS) library dependencies. A file called .sym should be created which contains a newline seperated list of all of the symbols exported from this library. LWP library names remain the same as always. To distinguish the pthreaded static and shared libraries these LWP libraries should be linked using libexample.a: $(LT_objs) $(LTLWP_LDLIB) $(LT_objs) Shared libraries should be linked using libexample.la: $(LT_objs) $(LT_deps) (note that the pattern rules in the included Makefile take care of the build rule here) If necessary, static convenience libraries can be produced using: libconvenience.a: $(LT_objs) $(LTLWP_LDLIB_static) $(LT_objs) PIC convenience libaries can be linked using: libconvenience_pic.a: $(LT_objs) $(LTLWP_LDLIB_pic) $(LT_objs) Libtool libraries should be installed using the $(LT_INSTALL_DATA) macro Binaries linking agains libtool libraries should be linked using the $(LT_LDRULE) or $(LT_LRDULE_static) options, with library paths in the built locations relative to the top of the tree. For example example_test: example_test.o $(top_builddir)/src/example/libexample.la $(LT_LDRULE) example_test.o \ $(top_builddir)/src/example/libexample.la Change-Id: I32b162e8443119e8115febc532c5b5a0ec8fed32 Reviewed-on: http://gerrit.openafs.org/8033 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0b31aba6a6aa9440bfa4e957d6e90cd6ae3c8b16 Author: Simon Wilkinson Date: Wed Aug 22 09:31:03 2012 +0100 util: Don't use rx-internal locking macros The MUTEX_INIT, MUTEX_ENTER, MUTEX_EXIT and MUTEX_DESTROY macros are intended for RX internal use only (they're an abstraction interface so that the same locking code can be used in userspace and in the kernel). They aren't appropriate for general purpose use. Just use pthread calls directly for the serverLog locks. Change-Id: I8373eaa097c36f7d3a4c9b0501fc5e897372582e Reviewed-on: http://gerrit.openafs.org/8031 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 7b1af325f12acc61cffd78b1b5ba580940c9b610 Author: Simon Wilkinson Date: Sun Jul 10 13:50:03 2011 +0100 lwp: Don't depend on RX locking macros The lwp library should be independent of RX (in fact, bits of it are a dependency for RX). So, LWP cannot use the MUTEX_ENTER, CV_WAIT, and so on macros that RX defines. Just implement these natively within the pthreaded bits of lock.c to remove the dependency. Change-Id: I4cdb8313e791f253e84bbc4e256087e46a4c59bd Reviewed-on: http://gerrit.openafs.org/5396 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ab977738b1542bee2dd780285ec90ebeebdc32c1 Author: Simon Wilkinson Date: Wed Sep 7 14:59:17 2011 +0100 Further rationalise our usage of assert() This patch futher improves our usage of assert() and friends. The intention is to bring clarity to which forms of assert are used in which situations, and to solve the problem of assert(X), or osi_Assert(X) being used in a situation where X has side-effects. It introduces two new assertion macros opr_Assert() and opr_Verify(), and clarifies the usage of osi_Assert() and assert(). *) opr_Assert is a direct equivalent of assert(), with the exception that its output can be redirected to a log file when used in server code. It is the preferred version of assert for libraries, and server side code. Note that whilst opr_Assert doesn't currently become a no-op when NDEBUG is defined, the intention is that it will do so at some point in the future. *) opr_Verify(X) asserts if the value of X is false. Unlike assert() it will always run X, regardless of whether the value is checked or not. The eventual intention is that when NDEBUG is defined, opr_Verify(X) => X *) osi_Assert is an assertion macro intended for use in kernel code, or in mixed kernel/userland code. When code is built for userspace, osi_Assert(X) => opr_Assert(X) *) assert is the system's own assert macro. It should only be used in client code. Whilst a header (opr_assert.h) is provided to map assert() to opr_Assert(), its use is discouraged Change-Id: Ie6d61305686bdc7193cc8690e6f4fbe363211faf Reviewed-on: http://gerrit.openafs.org/5395 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 04c750b2fe3879126054f92804b37ad3b1b6340c Author: Simon Wilkinson Date: Thu May 24 09:12:13 2012 +0100 lwp: Fast time doesn't need util With the rise of roken, the fasttime file no longer depends on util Change-Id: I2a1391d13bb39321666889dcfc2fbf43b181c749 Reviewed-on: http://gerrit.openafs.org/8030 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit c2d724dc5b849340f37bb2af9d3f139c72903621 Author: Simon Wilkinson Date: Thu May 24 10:55:07 2012 +0100 viced: Don't use fasttime For pthreaded builds, the FT_ routines are just wrappers around gettimeofday() and time(). As viced is now an entirely pthreaded directory, improve readibility, and reduce our dependencies, by just calling the operating system routines directly. Change-Id: I3812ac31bc5eb7d2fcbe47d037d4af3d489d3b81 Reviewed-on: http://gerrit.openafs.org/8029 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 14141123da0c098fc168772277b14f114bf4af5d Author: Simon Wilkinson Date: Tue Sep 4 12:33:02 2012 +0100 Fix aliasing problems in tptserver Commit f2db78a346112f5320efc6f0b6b9fe4ae0d893d3 disabled strict aliasing for ptutils.c and ptprocs.c when built in the ptserver directory. Similarly disable aliasing checks for these files when built in the tptserver directory. This doesn't actually fix the significant problems with these files, but doing so is going to require completely reworking the way that supergroups is implemented, so just disable these optimisations in the compiler for now. Change-Id: I6857ba83238a2c98a6540c795426f1a4038b70b3 Reviewed-on: http://gerrit.openafs.org/8035 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit e9e9719bba91ebc6a1362c6613552a70353aec29 Author: Simon Wilkinson Date: Sun May 20 17:43:10 2012 +0100 log: Relocate pagsh Move the pagsh utility out of sys, and into log. This moves it closer to other token and PAG related utilities, and resolves a circular dependency between sys and auth. Change-Id: Ibbbfc0e3bebc9ecb70f05b137e10e65ff9e4aff6 Reviewed-on: http://gerrit.openafs.org/8028 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 1e76c59ea52b35f4d478fdbe85456160b1e9f8ec Author: Simon Wilkinson Date: Sun May 20 12:57:00 2012 +0100 auth: Relocate NetRestrict support functions Pull the NetRestrict and NetInfo support functions out of libutil, and into libauth. This starts to concentrate all of our configuration file parsing functions into the same place. It also gets rid of a circular dependency. NetRestrict parsing relies on functions from rx, so with this in libutil, we had the dependency chain util->rx->util Change-Id: I250d4d8264da8db61f603a06d1b7fdab44384cd3 Reviewed-on: http://gerrit.openafs.org/8027 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6705646e8d6d12c165a159ca7b1318e2fd92a085 Author: Simon Wilkinson Date: Sat May 19 20:36:12 2012 +0100 Use rk_rename from roken Rather than using our own renamefile() implementation on Windows, pull in rk_rename() from libroken wherever a rename which unlinks the destination file is required. Change-Id: Ied8ac26b90a0983283b02704328da123bdd4f4b2 Reviewed-on: http://gerrit.openafs.org/8026 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8ab7e73fe2933aa3910b94fe28f6adf3e5c214fd Author: Heimdal Developers Date: Fri Aug 31 13:14:51 2012 +0100 Import of code from heimdal This commit updates the code imported from heimdal to 4a438db29d361b7e5f47b86ced1482a96cde86ea (switch-from-svn-to-git-3008-g4a438db) New files are: roken/rename.c Change-Id: Ib32975e9ec7f3d6abf5557cfd37fb40f248d00f0 Reviewed-on: http://gerrit.openafs.org/8025 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 7c26b43413d08c732c017c28503b5635f0e45be2 Author: Simon Wilkinson Date: Sat May 19 20:29:00 2012 +0100 roken: Add rename.c to list of imported files Change-Id: I835bf47625b7f0b3e025df4388416d88f3c52506 Reviewed-on: http://gerrit.openafs.org/8024 Reviewed-by: Jeffrey Altman Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 81c172343c17644a496dbe0d2ab48b7925c11cb4 Author: Derrick Brashear Date: Fri Aug 31 08:09:31 2012 -0400 update libafsdep to include external without being in 3rd party dirs everything below src/external is managed out of other trees, put our libafsdep at the top Change-Id: I5f8e37afca30934f2f7befb17d1b19f4e3d12601 Reviewed-on: http://gerrit.openafs.org/8023 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit e5ba359f64b5d8d874a31a50694398c17f27cfa1 Author: Andrew Deason Date: Wed Aug 29 14:14:39 2012 -0500 LINUX: Detect non-vectorized aio functions In kernels before 027445c3, the functions generic_file_aio_read and generic_file_aio_write, as well as the fs operations aio_read and aio_write, do not deal with iovecs but rather just use a single buffer. Detect this, so our aio_read and aio_write implementations have the correct signatures. This removes several warnings on such kernels. Change-Id: I70aa0d43bac5545d83710806b58f36d13d7f6cc8 Reviewed-on: http://gerrit.openafs.org/8020 Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5daa08ea263b2a82b4a85abd61d72d4d1f48bbb6 Author: Michael Meffie Date: Fri Aug 17 13:25:17 2012 -0400 LINUX: make d_automount work properly on rhel5 kernels Recent centos/rhel 5 kernels (2.6.18-308.*) started providing the d_automount operation, but renamed the DCACHE_NEED_AUTOMOUNT flag to DMANAGED_AUTOMOUNT. Change-Id: I74811f8967d52ce482316b110e9dd616a4869a7f Reviewed-on: http://gerrit.openafs.org/8006 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear commit 74c1881dff1593f4a8920ba8d8a2400760899fa5 Author: Andrew Deason Date: Wed Aug 29 11:39:01 2012 -0500 LINUX: Use struct vfs_path on RHEL5 Some revisions of the kernel from RHEL5 (2.6.18-308.* and possibly others) renamed 'struct path' to 'struct vfs_path'. So, use 'struct vfs_path' when it exists. This introduces the afs_linux_path_t typedef, which is defined as either a struct path, or struct vfs_path. Change-Id: I88c31125dbc1ab2998a521e3c57ed532bf2d5bb7 Reviewed-on: http://gerrit.openafs.org/8019 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear commit f87d49cd17fbf6aa9465faadac823ed8d0510a16 Author: Andrew Deason Date: Thu Aug 30 08:06:33 2012 -0400 autoconf: add AC_CHECK_LINUX_TYPE macro add a macro which looks for a given type in a given linux kernel header file Change-Id: Id3b0bcf65241c635f0109ed370b3079da8cd5656 Reviewed-on: http://gerrit.openafs.org/8021 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear commit 911f751d1edfb18ddd5f6a699746ba14730d553d Author: Michael Meffie Date: Wed Aug 15 17:19:07 2012 -0400 vldb_check: fix cross-linked mh entries When run with -fix, consolidate server numbers in vl entries which point to the same multi-homed entry. Use the lowest server number from the set of server numbers which point to the same multi-homed entry. Remove unreferenced address entries which are duplicate multi-homed indexes. Two passes of vldb_check -fix may be required; first to fix the vl entry server numbers; then to remove the duplicate address entries. Change-Id: I794cec4c176e8aab98a236a9700f58b1269a99bb Reviewed-on: http://gerrit.openafs.org/7999 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 579048cb1ec24b09a869928ceb521c8db4201a43 Author: Andrew Deason Date: Wed Aug 29 11:34:06 2012 -0500 LINUX: Indent osi_machdep.h maze This one isn't so bad, actually, but it still benefits from some indentation. Change-Id: I08de26df7da79dfa506f033e0b8bc1d33cad441b Reviewed-on: http://gerrit.openafs.org/8018 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 87df877ae26405206c9157197d1f65974b4b4587 Author: Derrick Brashear Date: Fri Aug 24 15:04:40 2012 -0400 libafs: actually set hasno64bit flag if we're starting a 64 bit data op, we should also end it, and vice versa. Change-Id: I1edef140f0c96d73f87759a80318a004196f22d5 Reviewed-on: http://gerrit.openafs.org/8013 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c2b13458498e8c27aa6eb1f2a777cf9bfe4488df Author: Christof Hanke Date: Fri Aug 24 05:18:31 2012 +0200 out-of-tree-build: extend configuration, namely libafsdep-files and configure-libafs.ac so that building the kernel-module on linux in a separate obj-directory works. Change-Id: Ie1664aa161fade012df7d23367eb7876912448e3 Reviewed-on: http://gerrit.openafs.org/8012 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3c489db55811dfe3fdf5e555bf229989e5b58aa6 Author: Mark Vitale Date: Mon Aug 20 17:39:06 2012 -0400 vos: convertROtoRW susceptible to VLDB changes during override prompt vos convertROtoRW obtains a VLDB entry, then peforms some setup logic (including a possible user prompt) before obtaining a volume lock. This exposes the code to possible time-of-check/time-of-use issues. After obtaining the volume lock, get a second copy of the VLDB entry and compare it to the first copy; if it has changed, fail the conversion with an error message asking the user to re-issue the vos convertROtoRW command. Change-Id: I9c1a634cea2e22188869d54b00b7831aed12b1cd Reviewed-on: http://gerrit.openafs.org/8008 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 185699e631ec3548bb6d1e68302d4a652632d3e6 Author: Christof Hanke Date: Wed Aug 22 16:39:13 2012 +0200 fileserver: add volume number to error-messages in physio. If things go wrong in ReallyRead() or ReallyWrite(), the admin would like to know which volume to salvage. Change-Id: Ic822412fec56ac5bb68f04d80713d94cbf977e71 Reviewed-on: http://gerrit.openafs.org/8010 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8b6926e43f31a30a95e5883fd4b9e72924b3371d Author: Marc Dionne Date: Tue Aug 14 19:37:00 2012 -0400 Linux: include kthread.h before afs includes We need to include kthread.h before the afs standard includes to avoid clashing with the printf -> printk mapping. Change-Id: I965916515bd14a5a08b0f280cf8e7f9935d8aa50 Reviewed-on: http://gerrit.openafs.org/7988 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ec48dca871ef98adb69792a34047c6be5818f1b2 Author: Marc Dionne Date: Tue Aug 14 18:26:24 2012 -0400 Linux 3.6: lookup inode operation API change The nameidata argument is replaced with an unsigned int flags argument. Change-Id: Ife07bb50ae7d747bd6256ea8238c4e19dbb5ee3f Reviewed-on: http://gerrit.openafs.org/7987 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 7413cd09a53f89882a46fd100bf6c501348f2188 Author: Marc Dionne Date: Tue Aug 14 18:08:51 2012 -0400 Linux 3.6: revalidate dentry op API change The nameidata argument is dropped, replaced by an unsigned flags value. The configure test is very specific; kernels with the older API with a signed int flags value should fall through. Change-Id: I5939b089b023fe81e3824ac3f920c4b6a261d39a Reviewed-on: http://gerrit.openafs.org/7986 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 020e32779c103817ca89caa51259fb53bc3dde79 Author: Marc Dionne Date: Tue Aug 14 17:28:50 2012 -0400 Linux 3.6: create inode operation API change The nameidata argument is dropped and a flag is added. Change-Id: I33692fc506e7eb9b8935a27ff3d10b713dfa6e5e Reviewed-on: http://gerrit.openafs.org/7985 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c633a92a1bc7881f18ee641082ff2efe7da1a8cb Author: Marc Dionne Date: Tue Aug 14 17:11:08 2012 -0400 Linux: fix variable used to test for the iop create API Use correct variable when testing for the create API to use. This is just for looks - there is no effect since mkdir and create were changed in the same kernel release. Change-Id: I9e43cc80d3817ee8a6c339c4ae98a1a2ab0851a1 Reviewed-on: http://gerrit.openafs.org/7984 Reviewed-by: Alistair Ferguson Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6bea047fb404bde828c6358ae06f7941aa2bc959 Author: Marc Dionne Date: Mon Aug 13 21:55:25 2012 -0400 Linux 3.6: d_alias and i_dentry are now hlists The d_alias pointer is now the head of an hlist. This means the iterator is a different macro and has no "reverse" version since hlists have no direct pointer to the list tail. inode->i_dentry gets the same treatment. Adjust where we use it. Change-Id: Ibcdd8ab6f8a571a8f94c646949ebe0503f075574 Reviewed-on: http://gerrit.openafs.org/7983 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8766a65e97eb90cb6c97ccd35181c441ece14f8a Author: Marc Dionne Date: Mon Aug 13 21:36:15 2012 -0400 Linux 3.6: dentry_open API change dentry_open now takes a path argument that combines the dentry and the vfsmount pointers. Add a configure test and a new compat inline function to keep things cleaner in the main source file. Change-Id: Ia29422d60d438cf4c795840566d4610649aa1f10 Reviewed-on: http://gerrit.openafs.org/7982 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 049c485b4a39ba510035788b4959d839ef668c55 Author: Marc Dionne Date: Tue Aug 14 16:34:42 2012 -0400 Linux 3.6: kmap_atomic API change kmap_atomic no longer requires a KM_TYPE argument. Test for this and adjust the affected code. Change-Id: I3a9e0018124d40be51cc509ac00d9250a5e8e76d Reviewed-on: http://gerrit.openafs.org/7981 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0a8256a26fafb490b454f2a857b0c15d859572c5 Author: Marc Dionne Date: Mon Aug 13 20:32:08 2012 -0400 Linux: bypass: consolidate copy_page macros into a single function The copy_page(s) macros are very similar; combine them into a single function that can be used for all cases. This will make it easier to add some pre-processor logic around the kmap_atomic calls to adapt to Linux API changes. Change-Id: I6daf7cb8ce49b743cc1b4532da91d9625a90d0ca Reviewed-on: http://gerrit.openafs.org/7980 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit bf1131fd33e71a18a0aef1cb21038144286fd28a Author: Michael Meffie Date: Thu Aug 16 18:04:22 2012 -0400 vos: use the roken max macro Use the max macro provided by roken. Fixes builds on solaris. Change-Id: Id429fe816284a1017082054e02a830a2a952c26b Reviewed-on: http://gerrit.openafs.org/8004 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 99238baed75205fd7a1885ed6b8fc8505d4faf95 Author: Heimdal Developers Date: Thu Aug 16 17:26:07 2012 -0400 Import of code from heimdal This commit updates the code imported from heimdal to 4a438db29d361b7e5f47b86ced1482a96cde86ea (switch-from-svn-to-git-3008-g4a438db) Upstream changes are: Michael Meffie (1): drop __restrict some more, to please old compilers Change-Id: Ibe62c9abd661793d11f379c13cc3b93f198a1e8d Reviewed-on: http://gerrit.openafs.org/8003 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6e2dd6e65cae4157538c29fb4362da4d15406b0e Author: Jeffrey Altman Date: Wed Aug 15 00:53:21 2012 -0400 Windows: disable short names on Win7 and 2008 R2 After listening to a presentation from Microsoft's file system team and speaking with anti-virus vendors, it is not only safe to disable ShortNames on non-boot volumes in Win7 and 2008 R2 but it is a definite win for performance, stability and security of the system. Change-Id: I706a8a17b0ae76189aeebaf254c8c70739d12f09 Reviewed-on: http://gerrit.openafs.org/7989 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a72c9bc861cb47d956b80fd81dde59b6f4c13ea0 Author: Garrett Wollman Date: Mon Jul 30 22:16:40 2012 -0400 afs_server: afs_SetServerPrefs() can never be called with null The one and only call site never calls afs_SetServerPrefs() with a null pointer, and some but not all of the paths through the #ifdefs assume this. Remove code that checks for this; it confuses both humans and the static analyzer. Change-Id: Ie3f7319cebde9ec3078af2defcebb80692aa95f2 Reviewed-on: http://gerrit.openafs.org/7912 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 3bb8e4c396d8894c7c0f71f121f5844f940516bf Author: Simon Wilkinson Date: Tue Jul 17 17:20:13 2012 +0100 opr: Add opr_jhash_opaque Add a function which can be used to obtain a hash of an arbitrary opaque string of arbitrary length Change-Id: I9e6aa29fa06a54976b81eda399c8838b73007962 Reviewed-on: http://gerrit.openafs.org/7978 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit beb8f07496f59a19621bb0db14b401107888de35 Author: Michael Meffie Date: Sat Jul 28 13:17:55 2012 -0400 vlserver: use the logging function to log Use the logging function to log instead of printf. Change-Id: I377474881830152c93122bd3112e355ab5fd56ad Reviewed-on: http://gerrit.openafs.org/7895 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 6f6bfb31acb0cfbe166d4df9f06a12bbdec0f496 Author: Simon Wilkinson Date: Tue Jul 17 16:50:59 2012 +0100 opr: Add UUID handling functions Add a set of functions to the opr library to handle creating and manipulating UUIDs. The opr_uuid_t type is held as a 16 octet character string, which comprises the UUID encoded into network byte order. This is the primary form for manipulating UUIDs with this library, as it avoids any nbo/hbo problems. For applications which require raw access to the UUID components, the opr_uuid_unpacked structure is provided, and opr_uuid_pack/opr_uuid_unpack can be used to convert to and from this format. Finally, functions to print the UUID as a string, and parse a UUID from a string, are provided. When printing, we use the standard UUID format of 000000-0000-0000-0000-00000000. However, the afsUUID library used to print UUIDs as 000000-0000-0000-00-00-00000000, so we also accept this format. Change-Id: I78ef79b7ab8ae15fb955c6495118722875c94f8d Reviewed-on: http://gerrit.openafs.org/7977 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b251b4057252163f3fad640cb5574c8dea9babc3 Author: Simon Wilkinson Date: Tue Jul 17 17:15:15 2012 +0100 opr: Convert jhash to use AFS types Convert the jhash.h header so that it uses afs types (afs_uint32) rather than stdint types (uint32_t), so that we can use it in kernel Change-Id: I65138c7d1ab8d22c71b3f1722b334dcb20c9b204 Reviewed-on: http://gerrit.openafs.org/7976 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 575d92b96cdd13b6935e7b5183f90a6d357d5b15 Author: Simon Wilkinson Date: Tue Jul 17 17:12:51 2012 +0100 hcrypto: Export hc_RAND_bytes Export the RAND_bytes function from hcrypto, so that we can have access to hcrypto's random number generator from generic code. Change-Id: Ie46bdf0b7818b10f0311ae3029c27a15382ffd7a Reviewed-on: http://gerrit.openafs.org/7975 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 2758aa7171063ac9a3c9943ad04115d21dfd8cb4 Author: Simon Wilkinson Date: Mon Jul 9 10:27:17 2012 +0100 rx: Add the add_and_read function to our atomics Add rx_atomic_add_and_read, which lets us get the new value out of an atomic addition operation. Change-Id: If74b1357390329b8c59042d3154491a103fe0d6c Reviewed-on: http://gerrit.openafs.org/7974 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b440d8ffcbb0ac58ecaa34a9c60fe27a0fc91026 Author: Tom Keiser Date: Tue Apr 10 16:26:42 2012 -0400 libafs: use kthread_run when available Use the kthread_run interface on linux to create kernel threads. This interface allows all the cpus to schedule afsd threads, instead of just inheriting the cpu affinity of the main afsd thread. Written by Tom Keiser. Change-Id: I69eb852d168bd85e9aa7ec075013c0346207dbcf Reviewed-on: http://gerrit.openafs.org/7915 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 355b8c73ed5adc5c182cf29561cc360ef4674f9e Author: Michael Meffie Date: Sat Jul 28 11:37:59 2012 -0400 vlserver: fix vldb header initialization Avoid creating new vldb files with zeroed header data. The code path is as follows; The call to Init_VLdbase makes several passes. On the first pass, the header is found to be empty, and so a write lock is obtained on the second pass. On this second pass, UpdateCache creates a newly initialized header and writes it to the db. The rd_cheader is set to the newly created header data, and the wr_cheader is still cleared at this point. When the transaction on the second pass ended in Init_VLdbase, the data is committed and vlsynccache() is called. In this call to vlsynccache(), the cleared write header buffer (wr_cheader) is copied over the newly initialized rd_cheader buffer. Init_VLdbase then returns to the caller, and if the caller writes to the db, the header on disk is then cleared. Instead of initializing the read header buffer when rebuilding the db header, initialize the write header buffer. When the ubik transaction is ended, the call to vlsynccache() updates the contents of the read header buffer with contents of the new/rebuilt header. This error was introduced with commits: a0f416e3504929b304fefb5ca65e2d6a254ade2e 1f532d099b8b084d43dd0140890448464325b602 Change-Id: If9c178bf28c55c50311554b12ffff9404785d052 Reviewed-on: http://gerrit.openafs.org/7894 Reviewed-by: Derrick Brashear Reviewed-by: Alistair Ferguson Tested-by: BuildBot commit fdd3b0fb1f8e6948c651d7f1822d17a78668e5ff Author: Michael Meffie Date: Thu Jun 28 17:12:24 2012 -0400 vldb_check: remove unreferenced mh entries with -fix When running vldb_check with -fix, clear any mh extent entries which are set but are not referenced by an address entry in the IpMappedAddr table. These unreferenced entries already generated a warning. This commit adds the feature to clear the unreferenced mh entries using vldb_check -fix option. Change-Id: I941d714c825d7990083ecd15fd7bd9cd3b5917b3 Reviewed-on: http://gerrit.openafs.org/7616 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 08e803bce3375bb69a01715b026d844b7a8e0ab3 Author: Michael Meffie Date: Fri Jun 29 18:10:31 2012 -0400 vldb_check: warn about cross-linked mh entries Warn if an mh extent entry is referenced by more than one server number in the IpMappedAddr table. The serveraddr table is used to determine which server numbers have IP addresses. If, for some reason, multiple server numbers reference the same mh entry, currently, the correct serveraddr value is calculated only for the lowest server number in the set of server numbers which reference the same mh entry. Handle this case, and warn about the duplicated values in the IpMappedAddr table. Warn about IpMappedAddr entries which reference non-existent mh blocks. Change-Id: Ife5bb44747fff922ae6536edbfd95d0fb98c303b Reviewed-on: http://gerrit.openafs.org/7615 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit aaa1844b8f806513661d16c6429d4d1b890471f2 Author: Jeffrey Altman Date: Mon Aug 13 17:56:02 2012 -0400 Windows: AFSProcessUserFsRequest NULL dereference Protect against an Irp with a NULL FsContext2 field. These represent Irps that are not intended for our device since they do not have an AFSCcb associated with it. Change-Id: I2cf6b60e022df5074482544ef3142374149e38d6 Reviewed-on: http://gerrit.openafs.org/7971 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 165c9e7465378f26db546c5f78fc4eeca0ba094a Author: Jeffrey Altman Date: Sun Aug 12 22:51:54 2012 -0400 Windows: reset volume NOEXIST flag In response to fs checkvolumes the NOEXIST flag should be reset. It should also be reset if the volume location update fails because of a commumicaton (or other) error with the VLDB server. The volume's lastUpdateTime is refreshed on error. Change-Id: I0bb5e61b9eb8a9613d47a32acda35b79aa71c293 Reviewed-on: http://gerrit.openafs.org/7969 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 69fd66abe7465e605c4b1460298514c3638c7864 Author: Jeffrey Altman Date: Thu Aug 2 21:13:45 2012 -0700 Windows: sdk install missing headers Change-Id: Ifda4df6b736ca70e2cbe56e9d789436066c12bdb Reviewed-on: http://gerrit.openafs.org/7933 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5a707645b7d14f37f3d7fd8d06685f3940631a44 Author: Jeffrey Altman Date: Thu Aug 2 21:12:25 2012 -0700 Windows: remove sdk sample token.c The sdk sample is no longer applicable. Change-Id: I9ab240429c73fece70f62f6ebc8ed284aa0071ac Reviewed-on: http://gerrit.openafs.org/7932 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b10a0af8b3a88c4170403679b9c179258a225abe Author: Jeffrey Altman Date: Fri Aug 10 18:04:49 2012 -0400 Windows: document command prompt lnk limitation Command Prompt shortcuts cannot be used when stored in AFS. Change-Id: I5e26d92bbcaac8708eb8deb8d06164ef65308230 Reviewed-on: http://gerrit.openafs.org/7955 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ecb3568210777fab98c51811aecaa1d2a085bc0b Author: Jeffrey Altman Date: Wed Aug 8 16:42:47 2012 -0400 Windows: Freelance Discovery configuration Add new "FreelanceDiscovery" configuration option to permit Freelance dynroot mode to be used without the automatic discovery of cells and generation of mount points. Change-Id: I5520c3b3e2388b984c7120212d4f0167dc2f2bc3 Reviewed-on: http://gerrit.openafs.org/7950 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b48d45006cdfe1734935f54277c0bc27459a404e Author: Jeffrey Altman Date: Wed Aug 8 13:54:48 2012 -0400 Windows: disable short names on Windows 8 Add "ShortNames" option to control whether 8.3 compatible short names are generated for objects stored in AFS. Set the default to on for all operating systems prior to Windows 8 and Server 2012. Change-Id: I27b4631334e2739da5c6485b49efa3ae12d880a9 Reviewed-on: http://gerrit.openafs.org/7949 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1d2a050e99e1feb9a5cee9956b48eb56bd9ad95d Author: Peter Scott Date: Tue Aug 7 09:07:41 2012 -0400 Windows: FileNormalizedNameInformation take one Add a response to FileNormalizedNameInformation requests. Respond with the long file name. As yet there is no translation from short name to long name for full paths. Change-Id: I9a88985cb72ebf4ce648cada62522f769f50044b Reviewed-on: http://gerrit.openafs.org/7948 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0af079f2d03d1b76bd4221cb56b27091b5635fd0 Author: Peter Scott Date: Mon Aug 6 15:15:57 2012 -0400 Windows: FSCTL_SET_PURGE_FAILURE_MODE Windows 8 adds FSCTL_SET_PURGE_FAILURE_MODE. Failure to respond with success prevents anti-virus filters from scanning the file system. For now just return success. Change-Id: Ibb4822e1a9db13912980f4100519b69f9bff9a75 Reviewed-on: http://gerrit.openafs.org/7947 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 831763ce6633d5377f5476651a8685f0673751de Author: Peter Scott Date: Mon Aug 6 15:12:12 2012 -0400 Windows: disable short names in redirector option If requested during redirector initialization, disable short name processing. Future versions of Windows (8, Server 2012, and beyond) will no longer require short names. Change-Id: I14b20afd919ed9dd8dc48dd7997089b5748a8896 Reviewed-on: http://gerrit.openafs.org/7946 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d8e9d2f2bc0f95642836bca2d66bb09379884142 Author: Peter Scott Date: Mon Aug 6 12:59:35 2012 -0400 Windows: Consolidate Device Flags Move Device Flags to common/AFSRedirCommonDefines.h Change-Id: I1f54b1bcf6f9057cc56260c61c86dc3203891924 Reviewed-on: http://gerrit.openafs.org/7945 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2332ee3aa8e21738ed4aa42b53edd4e2ae0a2984 Author: Derrick Brashear Date: Mon Nov 21 12:06:59 2011 -0500 ihandle: don't keep reallyclosing future fds given that we can mark something invalid for future use, ever, once we have done so for all fds, we ih_reallyclose is done. don't persist the setting to the detriment of new fds Change-Id: If82368dad79841a5d68f45a608b2645b32f951e7 Reviewed-on: http://gerrit.openafs.org/6101 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 1a1e87dcdf972519cd21970f7c78709e40f8e1e9 Author: Michael Meffie Date: Thu Aug 2 17:24:02 2012 -0400 libafs: revert init req to use the real uid The commit to use wrappers for creditial structure access inadvertently changed the user id to be the effective uid instead of the real uid, when no PAG is present, on linux. Revert this so setuid programs continue to work. See commit eb8e55bba7740a87e07ef07bb4b789e6d4e36f0d Change-Id: I5d42b8caf90a042192ed39f26e55d70c9531f2e9 Reviewed-on: http://gerrit.openafs.org/7931 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0c77c0acabe0a0588ab0a9efab0124ee1e15ef6a Author: Mark Vitale Date: Thu Aug 2 18:37:05 2012 -0400 vos: convertROtoRW may create 2nd RW on a fileserver If an RW is already present on disk on the target server (any partition), 'vos convertROtoRW' will still convert the RO, creating a second RW on the server. Detect this and refuse to convert the RO by returning EXDEV (invalid cross-device link). Change-Id: Ide15a7c39f2a975fd8597e497094b6a67b448e4f Reviewed-on: http://gerrit.openafs.org/7934 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9cd983799e622c9acf5dd6e0b9ae3a3a75eaa8ce Author: Andrew Deason Date: Thu Aug 2 11:58:12 2012 -0400 rx: Process ICMP unreachable errors When a machine receives ICMP errors, we can detect them in AFS_RXERRQ_ENV environments. Many of these errors indicate that a machine is not reachable, so we are guaranteed to not get a response from them. When we get such an error for a particular peer, mark all relevant calls with an RX_CALL_DEAD error, since we know we won't get a response from them. This allows some calls to dead/unreachable hosts to fail much more quickly. Do not immediately kill new calls, since obviously the host may have come back up since then (or the routing/firewall/etc was fixed), but only calls that were started before the current error was received. Note that a call doesn't actually notice until the next rxi_CheckCall, since directly killing each of the relevant calls would be rather slow. So, we don't notice a dead peer immediately, though we notice much more quickly than we used to. Reorganize the error queue processing a little bit to make this easier to do. Change-Id: I403540e0677fe2d432901e4ecc19f7f385610b7f Reviewed-on: http://gerrit.openafs.org/7929 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 407cfd281eab375512881945999b7e13ba93936e Author: Andrew Deason Date: Wed Aug 1 16:31:09 2012 -0400 LINUX: Fix error queue processing Receiving error queues in the Linux kernel is a little different from userspace. When we encounter a cmsg that is not CMSG_OK, we need to break out of the loop, and not just continue, since we can keep trying to process the same cmsg over and over. In addition, on successful return, the msg_control buffer has been modified to point to the next available buffer space, and msg_controllen contains how many bytes are remaining. So, we need to adjust the msg_control and msg_controllen values to get something more familiar. Change-Id: I7cc768ea31379915974431d2a3c1fec5e0ac71bb Reviewed-on: http://gerrit.openafs.org/7927 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d55df0ac8351b1518d2c3cde6e3938b98b3f21f7 Author: Andrew Deason Date: Wed Aug 1 15:56:27 2012 -0400 LINUX: Avoid SO_ERROR for RXERRQ_ENV SO_ERROR is for receiving errors from some nonblocking operations; it has little relevance to our network operations. For Linux, use a similar structure as userspace error detection, instead of SO_ERROR. Change-Id: I2188b1a023592d44bec62f6d07666dc19732222c Reviewed-on: http://gerrit.openafs.org/7926 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 403f72ec7620c8c5d39d860edd7d8e775e2776e6 Author: Andrew Deason Date: Wed Aug 1 15:19:02 2012 -0400 rx: Create AFS_ADAPT_PMTU and AFS_RXERRQ_ENV Currently we have the ADAPT_PMTU define, which turns on functionality in Linux to detect PMTU-related ICMP errors for Rx. However, this is really turning on two separate pieces of functionality: the PMTU processing, and the processing for ICMP errors in general. So split this out into two defines: AFS_ADAPT_PMTU, and AFS_RXERRQ_ENV. The former is for processing PMTU discovery, and the latter is for processing ICMP errors. Both of these are left disabled due to issues in the error processing. Although PMTU discovery is the only functionality which makes use of ICMP errors, this will change in the future. Change-Id: Ia334c68ce5eb3fa01c01a8a1c52a0e0a2e41b2c0 Reviewed-on: http://gerrit.openafs.org/7925 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d51694dfdb85503cd4fce39b5d2f15a82a37a427 Author: Andrew Deason Date: Wed Aug 1 15:14:23 2012 -0400 LINUX24: Remove ADAPT_PMTU code ADAPT_PMTU on Linux 2.4 doesn't really seem worth it. Remove it so we don't have to duplicate code. Change-Id: Id430e4caa7ee601bd6103541888e2a0029e0ab58 Reviewed-on: http://gerrit.openafs.org/7924 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3cf4c1fbad712984074a916897b77841c3e24752 Author: Andrew Deason Date: Wed Aug 1 15:11:48 2012 -0400 rx: Formatting fixes Some minor fixes to preprocessor indentation and other minor formatting things in rx.c and rx_user.c. Change-Id: Ia7bfda68b40893191a91ac9161cfe513a83c1989 Reviewed-on: http://gerrit.openafs.org/7923 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a3759e0af8717f478a32420b8c8d125fae15cd25 Author: Andrew Deason Date: Wed Aug 1 14:57:06 2012 -0400 rx: Remove ADAPT_MTU and MISCMTU Ever since 5bcf626ddaf92e199c4b46c11ad276013a47db52, ADAPT_MTU has been unconditionally defined. MISCMTU has always been unconditionally defined, and not used anywhere. Remove both of these, assuming they are always defined. Note that ADAPT_MTU != ADAPT_PMTU. Change-Id: Ie870bde8f84e59e1fe2a09806d8b68936d15f65e Reviewed-on: http://gerrit.openafs.org/7922 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 09f5a1e6053e6db3df581543875512d8cff259ae Author: Michael Meffie Date: Wed Aug 1 11:42:34 2012 -0400 bozo: avoid canceling the sigkill timer for hung processes A sigkill signal is sent to fileserver processes when a timeout is exceeded for shutting down processes for the fs/dafs bnode. (Currently 30 minutes for the fileserver, 1 minute for the other server processes.) If the bnode goal is set to run before this timeout expires, the timer is incorrectly stopped, and a wedged process is never killed. Fix this by not canceling the timer when a fs/dafs process has been signaled to shutdown, regardless of the current goal. Change-Id: I2eca8bcb4bac690f3ef671ca4cf375164ff34d5e Reviewed-on: http://gerrit.openafs.org/7920 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 1d8f3742661f07ab1923182883e2a2ea376151cd Author: Andrew Deason Date: Fri Mar 30 14:56:52 2012 -0500 libafscp: Add afscp_LocalAuthAs Add the function afscp_LocalAuthAs to libafscp. This allows the caller to generate credentials based on the KeyFile on local disk, in order to appear as an arbitrary user. Based on code written by YFS. Change-Id: I9c2da8b3460a000be8e6073eb0925dc82fcc1de3 Reviewed-on: http://gerrit.openafs.org/7917 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 351d3b8a19314027b30cdc499ef48c95ba7903b6 Author: Andrew Deason Date: Tue Jul 31 14:40:41 2012 -0400 LINUX: Always hold afs_xuser for unixuser read We were failing to hold the afs_xuser lock when we entered our unixuser traversal for the first time (when the given position is 0). This means we can release the lock without acquiring it, causing all kinds of weird behavior. Just always grab afs_xuser on entry. We could possibly do some tricks to avoid grabbing this lock until after we've printed the column headers, but it does not seem worth it. Change-Id: I68782098b5af2feb56887bc577511da2983d4f21 Reviewed-on: http://gerrit.openafs.org/7916 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e3cf97b5b5ae06cbd7862dbfcc09f3d1f45c24c1 Author: Derrick Brashear Date: Mon Jul 30 09:52:24 2012 -0400 krb5 profile config support create openafs-client.conf and openafs-server.conf in respective ETC dirs. enable afsd, ptserver, vlserver and fileserver option parsing from it [afsd] dynroot = true dcache = 800 cachedir = /var/db/openafs/cache Change-Id: I4bae437d7c8f54daa5dadfaeb875cdd185809d61 Reviewed-on: http://gerrit.openafs.org/7903 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d785abd5ec9302bdc1b3c33368246e573e0cd65d Author: Andrew Deason Date: Fri Apr 6 14:56:07 2012 -0500 LINUX: Do not lookup immediately recursive mtpts On Linux, having a mountpoint in a volume root that points to the same volume can cause serious problems. By 'immediately recursive', I mean a situation like the following: fs mkm mtpt vol fs mkm mtpt/mtpt vol If there are multiple dentry aliases for the directory (which is possible if the directory is a mountpoint), an 'rmdir' on the recursive mountpoint can cause the client to deadlock. Since the 'rmdir' code path in Linux locks the parent directory inode to perform the rmdir, and locks the child directory inode after performing a couple of sanity checks. For an immediately recursive mountpoint, these two inodes are the same, and so we will deadlock. Change-Id: Icb9bf8a3dd77a2ef6b88856b0d41556541bb1d00 Reviewed-on: http://gerrit.openafs.org/7742 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit de381aa0d39e88a1ca0c8ccbb2471c5cad5a964c Author: Andrew Deason Date: Fri Jul 6 16:37:39 2012 -0500 Linux: Make dir dentry aliases act like symlinks Currently, we try to invalidate other dentries that exist for a particular dir inode when we look up a dentry. This is so we try to avoid duplicate dentries for a directory, which Linux does not like (you cannot have hardlinks to a dir). If we cannot invalidate the other aliases (because they are being used), right now we just return the alias. This can make it very easy to panic the client, due to the sanity checks Linux performs when dong things like 'rmdir'. If we do something like this: mkdir dir1 fs mkm dir1/mtpt vol mkdir dir1/mtpt/dir2 fs mkm dir1/mtpt/dir2/mtpt2 vol cd dir1/mtpt rmdir dir2/mtpt2 For the 'rmdir', we will lookup 'mtpt2'. Since 'mtpt' and 'mtpt2' are mountpoints for the same volume, their dentries point to the same directory inode. So when we lookup 'mtpt2', we will try to invalidate the other dentry, but we cannot do that since it is the cwd. So we return the alias dentry (for 'mtpt'). The Linux VFS layer then does a sanity check for the rmdir operation, checking that the child dentry's parent inode is the same as the inode we're performing the rmdir for. Since the dentry we returned was for 'mtpt', whose parent is 'dir1', and the actual dir we're performing the rmdir for is 'dir2', this sanity check fails and we BUG. To avoid this, make the dentry alias act like a symlink when we encounter an uninvalidateable dentry alias. That is, we allow multiple dentry aliases for a directory, however, when the dentry aliases are actually used, we redirect to a common dentry (via d_automount where possible, and follow_link elsewhere). This means that such mountpoints will behave similarly to symlinks, in that we 'point' to a specific mountpoint dentry. This means that if we have multiple different ways to get to the same volume, and all are accessed at the same time, all but one of those mountpoints will behave like symlinks, pointing to the same mountpoint. So, the '..' entries for each path will all point to the parent dir of one mountpoint, meaning that the '..' entry will be "wrong", but for most cases it will still be correct. In order to try to make the 'target', pointed-to directory consistent, we add a new field to struct vcache: target_link. This points to the dentry we should redirect to, whenever that vcache is referenced. To avoid (possibly not-feasibly-solvable) problems with refcounting, this pointer is not actually a reference to the target dentry, but just serves as a pointer to compare to. FIXES 130273 Change-Id: I990131ce95cefe8336e83c7ebfb48aed1d685109 Reviewed-on: http://gerrit.openafs.org/7741 Tested-by: BuildBot Tested-by: Andrew Deason Reviewed-by: Derrick Brashear commit 9b0a7f5d13115fe5760db16587fe81dd35a5a0ef Author: Derrick Brashear Date: Tue Jul 31 11:47:58 2012 -0400 dirpath: fix macos alternate client etc dir support we set a proper client etc dirpath but did not apply it to children. do so. Change-Id: I56da943838a13859a239e5edf4219c6400abfe35 Reviewed-on: http://gerrit.openafs.org/7904 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit bf45586c9a3aac23a131e096d581e1149540f602 Author: Garrett Wollman Date: Mon Jul 30 22:05:04 2012 -0400 afs_server: delete code that has been ifdef'ed out for years The comments in afs_SetServerPrefs() said "clean up, delete this". The oldest one is a decade old. Removing these #ifdefs will make following the rest of the spaghetti #ifdefs a bit easier. Change-Id: I187ccf2889a5244457218b109404be8b1cf1990e Reviewed-on: http://gerrit.openafs.org/7911 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 77f258a71dde5bc8f82b5d6f24836cfee4e9bcce Author: Garrett Wollman Date: Tue Aug 9 00:28:27 2011 -0400 libafs: afs_CacheFetchProc can't be called without a dcache pointer An inspection of the only call site suggests that afs_CacheFetchProc() can't be called with a null dcache pointer, and code further down in this function dereferences adc unconditionally (assuming rxfs_fetchInit() doesn't crash first) so remove the conditional here. Probably more of these parameters can and should be included in the AFS_NONNULL. Change-Id: Ic87517376085b0d5bc7631b5558411259ae986f4 Reviewed-on: http://gerrit.openafs.org/5180 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 070e90a92175eb91b3709598859fabb0c843d0a9 Author: Jeffrey Altman Date: Mon Jul 30 15:19:57 2012 -0400 doc: Windows Release Notes Integrated Logon Expand on support for integrated logon details. Explain the new capabilities for per-user configuration and name mapping. Change-Id: I6aef3f99cb54aa964f9a6dbc3992031d6199e97d Reviewed-on: http://gerrit.openafs.org/7905 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit da9f42d044725ae128feffcfbeaab67b31aaab44 Author: Jeffrey Altman Date: Mon Jul 30 00:43:01 2012 -0400 doc: Remove USA vs International from AdminGuide OpenAFS does not have separate distributions for the United States and the rest of the world. Nor are there any restrictions on the capabilities of the Update Server. Change-Id: I834d86764bb3d8df4cce62b9cbaa33bff455bc30 Reviewed-on: http://gerrit.openafs.org/7902 Tested-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 227cff3dd657967fa895317ad53e5c772c17aaec Author: Michael Meffie Date: Sun Jul 29 22:15:14 2012 -0400 vlserver: remove an unused global Remove the unused global variable extentaddr. Change-Id: I3a7aec78dddcdf4e56a9ed432d650a1693e7c16e Reviewed-on: http://gerrit.openafs.org/7900 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 71dc077831d339fc5822f2c2c79b65afe14b12f8 Author: Derrick Brashear Date: Sun Jul 29 19:09:22 2012 -0400 opr: tweak nonnull macro to use nested parens throws an error on windows in some cases otherwise Change-Id: I977b63908fb64a9711f9ba9ca22aeb04882fadf4 Reviewed-on: http://gerrit.openafs.org/7899 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8c01141ccaa538b182ee79ec2d8ed5ec12b58f11 Author: Simon Wilkinson Date: Sun Jul 29 15:14:11 2012 -0400 Windows: Rename cm_btree struct data Rename the "struct data" in cm_btree.h to something less generic in order to avoid conflicts with other code. Change-Id: I0580be084d508c195d767152af4f9a461cf0407e Reviewed-on: http://gerrit.openafs.org/7898 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit b725a28eac2d9a94344b2524f995a98e60ecc2ea Author: Garrett Wollman Date: Sat Jul 28 01:10:09 2012 -0400 volser: restructure GetNextVol and clients to remove duplicate code There are several odd-looking but stylized loops involving GetNextVol() which can be radically simplified if only GetNextVol() would return a meaningful value. Move all of the code that skips non-volume-header files in the directory into GetNextVol and have it return a truth value (instead of always returning zero) that indicates whether it saw something that looks like a volume header. Then all the odd while loops and strcmps just collapse into while(GetNextVol(...)). GetNextVol() had external scope, but there are no callers in the tree that use it outside of volprocs.c, and it's not part of a public library interface, so make it static. While here, don't strcmp() past the end of a filename that begins with 'V' but is too short to be a valid volume name. Change-Id: I214b33c46714959d700608b3d3718c79d3792878 Reviewed-on: http://gerrit.openafs.org/7893 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cac7bcda084879a876d93eb0480c2f7c76c25a4a Author: Garrett Wollman Date: Sat Jul 28 00:18:00 2012 -0400 afscp: avoid null dereference in _GetSecurityObject error case Handle the possible error return from krb5_get_host_realm in the same way as the other error cases (using an anonymous security object); otherwise "realm" would be left null. Change-Id: I5ce7a614a3e272b3a9903a8e95545a8116d1af3c Reviewed-on: http://gerrit.openafs.org/7891 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 2460396391a17b6dc44c493d21fe921604a16cda Author: Garrett Wollman Date: Sat Jul 28 00:26:44 2012 -0400 pam: Use the right password variable in pam_sm_chauthtok() "password" is known to be null at this point. Use "prompt_password" which is obviously the one intended. Change-Id: I4ab566f93c4978438df2c2875d619177ad8f5bdd Reviewed-on: http://gerrit.openafs.org/7892 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit fdb4ec2e2767359eb6b5309a0342492c70d206e4 Author: Garrett Wollman Date: Fri Jul 27 19:50:42 2012 -0400 butc: don't pass NULL to strcpy in RcreateDump volumesetNamePtr can return a null pointer in certain error conditions. Check for this and return BUDB_BADARGUMENT rather than dumping core. Change-Id: If0ce509c964211ffa591d8e095b7c32c51ae7bc3 Reviewed-on: http://gerrit.openafs.org/7890 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5237d3d232f22aaf4f67f3a8727a293f4058a7ae Author: Andrew Deason Date: Thu Jul 26 16:40:03 2012 -0500 LINUX: Hold GLOCK for proc traversal The functions that traverse unixuser structures for display via /proc (uu_start et al) call various libafs functions hold and release locks, etc. To do any of that, we need GLOCK. Amongst other issues, we can panic if we try to acquire a contested lock without GLOCK, since we assert glock is held when we sleep for the lock or try to wake other waiters. The same goes for the legacy CellServDB proc file. So, hold and release GLOCK as appropriate. Change-Id: I9ec2051bc5d914521d12a9d20d28da1076c090fc Reviewed-on: http://gerrit.openafs.org/7885 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear commit 23f2f1232b03ed02f87582c12b4c4e8474bc9b5d Author: Andrew Deason Date: Thu Jul 26 15:58:45 2012 -0500 LINUX: Fix osi_proc.c formatting osi_proc.c had a few formatting issues: - Several function definitions did not have the function name at the beginning of the line - A few preprocessor directives were not indented - A few areas used a tab character for each indentation level, as opposed to 4 spaces, then 1 tab, as the rest of the tree has - Struct definitions were aligned using tabs, not spaces, causing misalignments when the indentation was fixed Fix these. Change-Id: I8d6b511473b89c42abd759553ec77332407daff0 Reviewed-on: http://gerrit.openafs.org/7884 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear commit e02fd4d358f20bcf001f0486afe1750d4013dea3 Author: Jeffrey Altman Date: Mon Jul 16 17:29:54 2012 -0400 rx: protect against ACKs with serial as prevPacket patchset 4e71409fe1305cde4b9b341247ba658d8d24f4d0 introduced a check in rxi_ReceiveAckPacket for out of order ack packets which relied upon the value of the previousPacket field. Unfortunately, some versions of RX store the previous packet's serial number in the field instead of previous packet's sequence number. Modify the check to only discard out of order ACKs if the previousPacket sequence number is within the valid window. Change-Id: I72885a8c1aaa69eb263335be1827545f2b4c3e09 Reviewed-on: http://gerrit.openafs.org/7785 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 300dd717fa57df77175807cf7cf6be36cb1f9fef Author: Jeffrey Altman Date: Thu Jul 26 18:35:48 2012 -0400 rx: better rxi_FindRpcStat check for end of queue patchset 1f0cf8b2b4bb6e36d8d82323a15ced72d91db0ec tested for an empty queue but what is really required is a test for end of queue after the queue_Scan(). If the queue_Scan() completes at the end of the queue, in other words, pointing at the list head, then return NULL because no match was found. Change-Id: I444531d3cfa85b4691eaa8960da0266de82a03a3 Reviewed-on: http://gerrit.openafs.org/7886 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ee2b9c2d3ee22dfbc8fd2eb2cc470ae853d4e19a Author: Jeffrey Altman Date: Wed Jul 25 01:55:27 2012 -0400 rx: protect against invalid params in rx_Copy*RPCStats Protect against: . rxi_Alloc() failure Change-Id: I3334855e261bb40d5720fd376e62028760f0cee5 Reviewed-on: http://gerrit.openafs.org/7873 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3fc800be9c702c1a40869908831a9895602909cb Author: Andrew Deason Date: Wed May 9 18:45:51 2012 -0500 vos: Minimize release impact for new RO sites Currently, if a new RO site is added with 'vos addsite', the only way to populate the new site with data is a 'vos release' (excepting hacks using 'vos restore' and 'vos addsite -live', etc). Due to safeguards in 'vos' ensuring that RO sites always all contain the same data when marked as up-to-date in the VLDB, such a release always incurs some amount of data to be transmitted to all sites, as well as remote sites being brought offline briefly, even when the RW data has not changed in very long time. To alleviate this situation, make 'vos release' detect if new, unpopulated RO sites have been added, and if the RW volume has not changed since the release of any existing RO sites. If both of these conditions are true, do not update any of the existing sites, but only transmit volume data to the sites that did not already contain RO volumes. Change-Id: If343d241a18e788c3619876f5d494d2ebf425cb8 Reviewed-on: http://gerrit.openafs.org/7393 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 93aa733909e72da4a67ef8422070f417cd12b1d8 Author: Garrett Wollman Date: Wed Jul 25 00:41:05 2012 -0400 tabular_output: don't leak table struct on error exit The caller is almost certainly going to exit when we return, but all the same, don't leak the table description structure in the error exit. Makes the static analyzer happier. Change-Id: I55e986a3601968751921ee38badf5bb86cd3174f Reviewed-on: http://gerrit.openafs.org/7870 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit ff217dec93c9b46a2f161bea5439d5a41337bf51 Author: Garrett Wollman Date: Wed Jul 25 00:22:10 2012 -0400 afsdump_extract: clarify logic to avoid freeing local buffer Sometimes vnodepath is set to a local buffer. Sometimes it is set to malloc'ed storage. Simplify the logic for freeing vnodepath by checking explicitly for this condition rather than the state of other variables. As a bonus, avoids a false (?) positive from the static analyzer. Change-Id: I3772cb97698acc5a6ac1f438977c673e6fea7722 Reviewed-on: http://gerrit.openafs.org/7869 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 24d2d3ea83bdadee3d8a8b477be10e9ced178b6d Author: Michael Meffie Date: Thu Jun 21 23:44:31 2012 -0400 vlserver: always use the hostaddress table in GetAddrsU Use the hostaddress (IpMappedAddr) table when looking up hosts by IP address and when listing addresses by index, instead of accessing the multi-homed extensions directly. The existing vos client calls the old GetAddrs rpc to first retrieve a count of the number of addresses expected. This count is the number of addresses in the hostaddress table. If there are unreferenced entries in the mh extension blocks, then vos can return an incorrect or incomplete list of addresses. To be consistent with the rest of the host address processing, use the hostaddress table in GetAddrsU to lookup hosts by index or by IP address. The hostaddress table is already used when looking up addresses by UUID. Change-Id: I01aa29ae7d24d48bcd245f0320e329435f61548e Reviewed-on: http://gerrit.openafs.org/7878 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 7649a66a6193e2fd8a709bf701fcbb07774d2d33 Author: Garrett Wollman Date: Sun Jul 22 23:20:01 2012 -0400 afs_conn: make release_conns_vector() actually work release_conns_vector must never have been called before with a non-null parameter, because it could not possibly work. The first line of the loop is a null pointer dereference, and if that were fixed, there's also a modify-after-free bug as well. It's not clear how what the old version was trying to do; this version makes a stab at doing something sensible but might be less than required. (Note that this would be much simpler if converted to queue(3) macros or a similar standard linked-list data structure.) Change-Id: I4c0fb7ed1ee977dcc0b4dfb32557882679069731 Reviewed-on: http://gerrit.openafs.org/7838 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit d0db811939df4eda268ae2ae54a1dc0194653ed9 Author: Garrett Wollman Date: Tue Jul 24 22:29:00 2012 -0400 pruser: AFS_NONNULL annotations for functions that deserve it Change-Id: I68e74affcb3235d93e684a04a56ef44798a42406 Reviewed-on: http://gerrit.openafs.org/7861 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3f691e663cc55ffb89386e53535030c659cb2fc2 Author: Garrett Wollman Date: Wed Jul 25 00:06:05 2012 -0400 kauth: ka_CellToRealm's "realm" parameter cannot be null Annotate ka_CellToRealm with AFS_NONNULL to indicate that its "realm" parameter cannot be null; it does not make sense to call this routine without this parameter. (The static analyzer inlines the call to ka_ExpandCell and concludes that "realm" might be null; the annotation will prevent that and avoid a false positive.) Change-Id: Id7fac19cf4eb4bdb1decde81d951b8bcd96fce71 Reviewed-on: http://gerrit.openafs.org/7865 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit f6d7a4b426f55db366113bbdda4da71570310410 Author: Andrew Deason Date: Wed Jul 25 16:08:41 2012 -0500 afsd: More pthreads damage We need MT_LIBS for -lpthread and such. HP-UX needs this, and probably other platforms; otherwise we complain about missing pthreads symbols. Change-Id: If7486cabfc20ef4238087f0285c25d9f8602703a Reviewed-on: http://gerrit.openafs.org/7880 Tested-by: BuildBot Tested-by: Andrew Deason Reviewed-by: Derrick Brashear commit cf03e0a4748e122fd1bf2ec9d00e539b70f3eb3f Author: Andrew Deason Date: Wed Jul 25 15:48:34 2012 -0500 crypto: Use our strcasecmp in kernel A few pieces of heimdal we use in the kernel call strcasecmp (hcrypto/evp.c, krb5/crypto.c). The strcasecmp function does not exist in all kernels (specifically, it does not exist in at least Linux 2.4, 2.6.9, and probably not on Solaris pre-10). Since we have our own copy of strcasecmp (called afs_strcasecmp), just use that for now. Ideally we would have some kind of configure test for detecting the presence of the function in the kernel, and use the roken implementation when we don't. We currently have the framework for neither of those in place at the moment, though, so just get by with this for now. Change-Id: Ia96b17596da6cb168c80c92486fa049c05205da4 Reviewed-on: http://gerrit.openafs.org/7881 Tested-by: BuildBot Reviewed-by: Michael Meffie Tested-by: Michael Meffie Reviewed-by: Derrick Brashear commit 97e241fdc68e0759d4b2762ee050f8bdde57a2e0 Author: Andrew Deason Date: Thu Jul 26 09:47:35 2012 -0500 afs: afs_strcasecmp args are const We do not modify our args, so declare them const so we are usable with const strings. Change-Id: I2d60044014e51e2a52638b76ca50a5c2fc6980c0 Reviewed-on: http://gerrit.openafs.org/7882 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 97146a8ed8497e8bfe3ea24eb0fe4685430fdcf3 Author: Garrett Wollman Date: Tue Jul 24 23:41:02 2012 -0400 ptuser: avoid implementation-defined behavior in CreateIdList() CreateIdList() is an internal subroutine of pr_IDListExpandedMembers(), used to flatten a hash table of protection IDs into an array that can be passed to pr_IdToName(). If for some reason the hash table had no entries, it would call malloc(0) and, depending on how the the implementation defines this, either return a PRNOMEM error (wrong!) or else allocate a minimum-sized buffer which pr_IdListExpandedMembers would then promptly leak. Compromise between the two behaviors by not allocating any memory in this case but returning success, and in the caller check for an empty list and avoid the pointless RPC to translate no IDs into no names. pr_IDListExpandedMembers() will return success, as it previously did in the non-PRNOMEM case. Change-Id: I8a042bde3e98f5cf248358f37f2e875d6b5b298d Reviewed-on: http://gerrit.openafs.org/7863 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 2e7939ea4653ba3634445b1710aed1206f44f7ca Author: Garrett Wollman Date: Tue Jul 24 23:54:56 2012 -0400 kauth: don't call lcstring with a null source argument This code was probably never executed, but now that lcstring() has an AFS_NONNULL annotation, the static analyzer indicates the potential null-pointer-dereference. Change-Id: Idb41c2af1cb38bc5c084d4912614e0a553d4aa5a Reviewed-on: http://gerrit.openafs.org/7864 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit a573697da3fed9509f98e087b65b1fb7a60bc9a0 Author: Garrett Wollman Date: Wed Jul 25 00:49:25 2012 -0400 rxgen: avoid an unimportant memory leak in docppline() If cpp emitted # 1234 "" docppline() would leak a small buffer. Just free it. The static analyzer will thank you. Change-Id: I34ae6e228469a900139375f2a4758855922cf0ef Reviewed-on: http://gerrit.openafs.org/7871 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 3c9a9b49602c4e624662d25f4573ec0e78ed2b7d Author: Andrew Deason Date: Wed Jul 25 11:59:44 2012 -0500 rx: Initialize kernel rx_atomic_mutex Change-Id: I9a63fbee0e5a0f9df31b8e2440e91a03af54151f Reviewed-on: http://gerrit.openafs.org/7876 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 410a55addfcd055ac666f9bc5450b238648d07bf Author: Andrew Deason Date: Wed Jul 25 10:45:16 2012 -0500 rx: Raise minimum Linux atomics version to 2.6 Linux 2.4 does not have atomic_dec_return. If we switch to a dec_and_test-like API, then we could use the Linux 2.4 atomics. But for now, just raise the minimum to 2.6, and for 2.4 and below just use the generic atomics implementation so we can build. Change-Id: Ie584bd420839dbcbe3158fe7b50df633cb7eba6d Reviewed-on: http://gerrit.openafs.org/7875 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6dd0bc6bed79013fe1737f3e9016066ee74958fd Author: Andrew Deason Date: Tue Jul 24 18:18:13 2012 -0500 LINUX24: explicit dir buffers fallout Fix fallout from 0284e65f97861e888d95576f22a93cd681813c39 Change-Id: I40a16fee3bb3835690f7ff7328f70d3454fd1198 Reviewed-on: http://gerrit.openafs.org/7874 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3638ef30d0de7d82d919b046ec87986ad09442d3 Author: Derrick Brashear Date: Wed Jul 25 00:17:46 2012 -0400 macos: next version header add header for next macos Change-Id: I9078b77587197b38ff705663c73a7f930efeec7a Reviewed-on: http://gerrit.openafs.org/7868 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 5f60992bfe17b74526bf7d26c5e0df2a2d1c4833 Author: Jeffrey Altman Date: Tue Jul 24 13:56:02 2012 -0400 Windows: NPAddConnection3 debugging Define Add3FlagsToString() and use it when generating debug output from NPAddConnection3(). Change-Id: I73251890659ea5a833b5f67d26129053c625b58a Reviewed-on: http://gerrit.openafs.org/7860 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 16b671cf3bddfc1c8cd9f760f99320ac21e583ac Author: Jeffrey Altman Date: Tue Jul 24 13:53:49 2012 -0400 Windows: Correct exceptions in AFSRDFSProvider Correct two errors in the generation of debug strings that were triggering invalid memory access exceptions. Change-Id: Ie5ee3289e2fa74809067f05931c3aa568c2be9d0 Reviewed-on: http://gerrit.openafs.org/7859 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 78f1e230ce2b7167981e2f327bfdb5d50c94a95f Author: Garrett Wollman Date: Sun Jul 22 22:57:41 2012 -0400 afs_bypasscache: parameters of afs_ReadNoCache can't be null The first two parameters of afs_ReadNoCache() are unconditionally indirected through, and all existing callers appear to guarantee that these parameters are in fact non-null, so annotate the function declaration to so indicate, and remove the one test that checks whether avc (the first parameter) is null. I suspect that acred cannot be null either, but this code does not appear to depend on that, so it's not included in the non-null annotation. Change-Id: I496c868ffcbc9b894f91578019bc30bf7b14fefd Reviewed-on: http://gerrit.openafs.org/7837 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 21878c61ddef84af50fc5c8aacd87cadc3e2dade Author: Garrett Wollman Date: Tue Jul 24 01:17:47 2012 -0400 ptuser: use the "prname" typedef rather than "char[PR_MAXNAMELEN]" There's a typedef for this type, so use it in function prototypes rather than the more complicated declarator. Change-Id: I75a9b4e72201e6b2072dba14185579f9c4aa61be Reviewed-on: http://gerrit.openafs.org/7858 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 5e0c59284ac3307fd47b5d6a1fa5589362085ced Author: Derrick Brashear Date: Tue Jul 24 00:26:56 2012 -0400 afsd: fix pthreads damage ah linker fun. clean up from 98f86cfc53fc987fdaed2f5bb733b5b5d21bfda9 Change-Id: Id78debe0c9ddec0ce5f3fd2b95e16802a132845f Reviewed-on: http://gerrit.openafs.org/7855 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8ff703fcbb93399f12fb3210b729f82fb43f0ed1 Author: Jeffrey Altman Date: Sun Jul 1 22:31:04 2012 -0400 Windows: No VLDB server blocking probes Now that we have background probes, use them for VLDB server probes. Change-Id: Ib160ec5ae702065f410e85ae949ae13a02c425e8 Reviewed-on: http://gerrit.openafs.org/7854 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ceeb0474578914a64cc938e52533e6c7911396b2 Author: Jeffrey Altman Date: Sun Jul 1 22:27:13 2012 -0400 Windows: NOPROBE means probe in background thread It is important that down servers be detected as soon as possible. When it is not possible to perform a blocking probe, perform a probe in a backgrond thread. Change-Id: If73856359ba894c5c302c11fd50aaa76cd2fcf28 Reviewed-on: http://gerrit.openafs.org/7853 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a738c8dcff8410d82b631a0e71c23b8447db9a0d Author: Garrett Wollman Date: Mon Jul 23 22:07:38 2012 -0400 ptuser: pr_SNameToId/SIdToName: if RPC response empty, force error If the prserver returns an empty response to ubik_PR_NameToID or ubik_PR_IDToName, but doesn't otherwise give an error, force a PRINTERNAL error return so that the client knows that the the return parameter was not updated. Existing callers seem to expect this, as pr_SNameToId is often called without initializing the variable which receives the result and checking only for the error code. PRINTERNAL is a new error code. Change-Id: I3e598a22deb39792a0f208ac09b3c1991d6f1e58 Reviewed-on: http://gerrit.openafs.org/7836 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 98f86cfc53fc987fdaed2f5bb733b5b5d21bfda9 Author: Derrick Brashear Date: Sun Jul 22 09:18:28 2012 -0400 afsd: switch to pthreads kill one more lwp dependency. Change-Id: I9a878d7b0e1ab50770c6162f6bd380119b7a4292 Reviewed-on: http://gerrit.openafs.org/7828 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit a3b6a940f84a35aa3ae0d3ee6963ef4086f3a3a4 Author: Derrick Brashear Date: Mon Jul 23 22:25:19 2012 -0400 afsd: cleanup syscall cleanup sadly ead743db5d57afa175f5dc0828b76881bcbcbf54 missed a few bugs. fix them here. Change-Id: I03d52543fb096f75ccf6dbde4f7526a7c0c576bb Reviewed-on: http://gerrit.openafs.org/7852 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 736e0dbeec54e19801e96ba93d471bd5a995f4f3 Author: Jeffrey Altman Date: Sun Jul 22 01:19:57 2012 -0400 Windows: get rid of _strdup and use rk_strdup Do not use the _strdup() C RTL function. Use strdup() so that rk_strdup() roken replacement can be used. Change-Id: Ifd2808a078b514468aee52ef76a9b51e606a2c88 Reviewed-on: http://gerrit.openafs.org/7848 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 907dbac89cfde3d3663c14fa17ca5ac9ced5a846 Author: Jeffrey Altman Date: Fri Jul 20 10:19:07 2012 -0400 roken: rk_strdup rk_wcsdup exports Change-Id: Iee3670ddf86599dd81f1247a9f8cfafcbc6e1e8f Reviewed-on: http://gerrit.openafs.org/7847 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit cabfe32c335002d2cfc77481c33d091cc7fd0dda Author: Heimdal Developers Date: Mon Jul 23 17:27:56 2012 +0100 Import of code from heimdal This commit updates the code imported from heimdal to b8a53329fc8bf2fe8c4f4058512f828d7654e3f8 (switch-from-svn-to-git-3003-gb8a5332) Upstream changes are: Jeffrey Altman (2): Windows: rk_strdup allocator Windows: rk_wcsdup allocator Nicolas Williams (1): Fix bug in _krb5_expand_path_tokensv() Change-Id: I08abb25b4f4136bccb3eaf8d8c44851ce748f395 Reviewed-on: http://gerrit.openafs.org/7842 Reviewed-by: Derrick Brashear Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 5dce817d40bc69684451e88fe8a0f1078f1f3880 Author: Simon Wilkinson Date: Wed Jul 18 10:22:07 2012 +0100 ptserver: Make ptclient build again Make the ptclient utility build again, and add it to the ptserver Makefile so that it is built by default and, hopefully, won't bitrot again. Change-Id: I888a9d4392b62ecb2d7556694400a2853658052a Reviewed-on: http://gerrit.openafs.org/7841 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 0eca3c1822683ccf1b559eb8e455688c5bdc1fc9 Author: Simon Wilkinson Date: Mon Jul 16 20:09:04 2012 +0100 auth: Fix GetTokenEx with NULL cellName If GetTokenEx is called with a NULL cellName, it means use the local cell. To do this with the legacy interface, a 0 length string must be used for the cell instance of the ktc_principal passed to GetToken. Fix this so that we do so, rather than attempting to strcpy(..., NULL) which never ends well. Caught by clang-analyzer Change-Id: I53d9bdf0fc280ee073a2fb7693659269df29c2eb Reviewed-on: http://gerrit.openafs.org/7840 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 1f0cf8b2b4bb6e36d8d82323a15ced72d91db0ec Author: Jeffrey Altman Date: Sun Jul 22 20:40:41 2012 -0400 rx: rxi_FindRpcStat must test for empty queue When queue_Scan is executed on an empty queue the queue element variable, in this case 'rpc_stat' is the queue head, _RXQ(q), and not NULL. Callers of rxi_FindRpcStat() expect NULL on failure to find or create an rx_interface_stat object. Correct the behavior by testing for an empty queue and return NULL immediately if the queue is empty and the caller is not requesting creation. Change-Id: I9952d7aaf357e039e87f6b8b17cb1a00208d6465 Reviewed-on: http://gerrit.openafs.org/7835 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit ead743db5d57afa175f5dc0828b76881bcbcbf54 Author: Simon Wilkinson Date: Wed Sep 7 18:31:32 2011 +0100 afsd: Tidy up system calls Tidy up the way that we do system calls from afsd, by making afsd_syscall a va_arg function, using a structure to pass system call information around, and simplifying the #ifdef ladder that converts our platform independent system calls into something platform specific. This fixes all of the warnings in afsd which required the -Wno-error option, the only warnings remaining are related to daemon being deprecated on Darwin. Change-Id: I357c7d175b5327007d50d213c6181881c842050e Reviewed-on: http://gerrit.openafs.org/7188 Tested-by: BuildBot Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 748a3e29b624d10e90af43cb0dc65a4f96c0310e Author: Jeffrey Altman Date: Mon Jul 23 01:38:03 2012 -0400 Windows: cm_UpdateVolumeLocation volp locked When calling cm_UpdateVolumeLocation the volp->mx must be held. cm_Analyze() did not obtain the mutex as required. Change-Id: Ida69105879a78692a367cd4439bee8e4bea751ff Reviewed-on: http://gerrit.openafs.org/7839 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 82865811e49aae8b7b8ff9f5d995dc32518b9eb8 Author: Michael Meffie Date: Thu Jun 7 13:54:20 2012 -0400 libafs: avoid flushing already freed dcaches in flush volumes When flushing volume data, skip flushing dcache entries which are already freed. Change-Id: I74d7e055e833dc91214dd9d544af3781f74db59b Reviewed-on: http://gerrit.openafs.org/7539 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fd707e3014945b99539db9ea5198859713e33251 Author: Marc Dionne Date: Thu Jul 19 22:23:20 2012 -0400 vol: set correct bit in bitmap after VGrowBitmap Set the correct bit after the bitmap is expanded with VGrowBitmap so we don't allocate it twice and trigger a salvage. Change-Id: Iee307a0913d4402c2d5a32d493ff489b35778811 Reviewed-on: http://gerrit.openafs.org/7793 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 91d7cd931a0362b5055c37fc7adc3f5d6015b573 Author: Garrett Wollman Date: Fri Jul 20 18:35:56 2012 -0400 uafs: avoid type-punning in get_user_struct() There's no need for type-punning here; usr_getspecific() is a macro that just assigns to the variable whose address we provide, so the cast was just unnecessary (and erroneous) obfuscation. This is the only caller of usr_getspecific(), so if it needs to be more complex in the future, it should probably just be open-coded here. Change-Id: I81286cbce9a00908aa87073b728b07d8bcc8d1d1 Reviewed-on: http://gerrit.openafs.org/7799 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d3761b9e6265df47e38e166983711a591ef48b31 Author: Derrick Brashear Date: Sat Jul 21 00:27:49 2012 -0400 ubik: don't force an error just because calliter is early returning in this case, racing another ClientInit caller is not fatal. clean up from 56b5b9a1c51c2197923aa373c180a834edabe4f6 which was my fault. Change-Id: I81d3298a775ed46972779b4121498560883fee01 Reviewed-on: http://gerrit.openafs.org/7803 Tested-by: BuildBot Reviewed-by: Garrett Wollman Reviewed-by: Derrick Brashear commit e39d6ca55af79b917e459a09893606e79ba50375 Author: Garrett Wollman Date: Sat Jul 21 01:35:15 2012 -0400 strcompose: NULL must always be cast when passed to a variadic function The C standard allows NULL to be defined as a bare "0", which will be passed to variadic functions as an int. If the function expects a pointer type, demons fly out of your nose. strcompose() is such a function, so make sure that all of its callers cast NULL appropriately. (None of them did.) This may be an opportune time to change all of the callers to spell it opr_strcompose() as well, and avoid using a reserved identifier, but this change does not do so. Change-Id: Ia9007a48102da4d0a85a48b41a44e83102304b49 Reviewed-on: http://gerrit.openafs.org/7805 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 466ba9cb60816a455c15e7c3dba5f325f005f2fe Author: Garrett Wollman Date: Sat Jul 21 01:22:02 2012 -0400 opr: constify various string functions and mark them AFS_NONNULL() All of these string functions require at least one non-null argument. Mark them as AFS_NONNULL() so that the compiler and static checker can find erroneous uses. The "source" arguments of lcstring and ucstring can be const, so do so. (This doesn't affect anything in the tree right now.) While here, note a few unfixed issues with these interfaces.) Change-Id: If2a8dd4d617795560e92c09ee604780f90edce6a Reviewed-on: http://gerrit.openafs.org/7804 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cb807db4505a8d4a4c904d32a59ad168d4650e4c Author: Derrick Brashear Date: Wed Jul 18 00:02:16 2012 -0400 libafs: getattr should include S_IFDIR on fake dirs on macos, VDIR is not useful as part of a directory mode. it's just not. on aix, solaris, we presumably want to pass S_ISDIR, so do so Change-Id: I04ee49857febf1cf96d30bd6a8271f99192630c8 Reviewed-on: http://gerrit.openafs.org/7789 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 30e26c07d42d8e8208c51719bc823e387d5919ee Author: Jeffrey Altman Date: Mon Jul 2 10:26:05 2012 -0400 Windows: Recompute server rank periodically After VL_ProbeServer and RXAFS_Getcapabilities RPCs call cm_RankServer() to recompute the server ranks based upon the updated peer statistics. Change-Id: I84687e12f1c1bd323a95c5ffcc73b95d400bd1f5 Reviewed-on: http://gerrit.openafs.org/7827 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a3e2bd0d0183fab913264b04c6772f000367cb73 Author: Jeffrey Altman Date: Fri Jul 20 02:57:35 2012 -0400 Windows: Clear peer RPC stats on IP addr change When an IP address change has been detected, clear the peer RPC statistics used for server ranking. Change-Id: Ie9e3f4553f9d0b22d4876b729ce0028e762efb33 Reviewed-on: http://gerrit.openafs.org/7826 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c0d652dcdead56c53c622ade5df0f50e8aefd0f2 Author: Jeffrey Altman Date: Fri Jul 20 02:55:20 2012 -0400 Windows: server rankings by RPC statistics Use VL_ProbeServer for VLDB servers and either opcode_RXAFS_GetCapabilities or opcode_RXAFS_GetTime for File servers. Change-Id: I67c3ad88ac3dd07ac1c0e44d462853d068bf50c8 Reviewed-on: http://gerrit.openafs.org/7825 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c1081a3ab5dc7e5c83ad84dd0b5c795969745d7d Author: Derrick Brashear Date: Sat Jul 21 00:17:14 2012 -0400 rxgen: per-opcode stats allow access to per-opcode stats Change-Id: I17639cf23acac23acfb9cb7dc07a7c5c81d4ff89 Reviewed-on: http://gerrit.openafs.org/7802 Tested-by: BuildBot Reviewed-by: Jacob Thebault-Spieker Reviewed-by: Derrick Brashear commit c3767f1e90b7ba61efcb25e022d27f35d1accc2b Author: Derrick Brashear Date: Sat Jul 21 00:07:41 2012 -0400 rxgen: emit opcode defines in header define an opcode-name-specific define with the numeric value of the opcode Change-Id: I34e6eb57ac2c57319a83b0279cc9115050a39c4f Reviewed-on: http://gerrit.openafs.org/7801 Reviewed-by: Jacob Thebault-Spieker Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 417df0d495a8636aec6959b074a35885e20022c9 Author: Garrett Wollman Date: Sat Jul 21 00:04:58 2012 -0400 xdr: fix two old FIXMEs related to signed/unsigned arithmetic It's implementation-defined whether the C '>>' operator, when applied to a signed integer, is sign-extending or zero-filling. If you want unsigned arithmetic, you have to ask for it explicitly. One assumes the reason for the shift is to avoid overflow if the returned size/count is later converted to a signed int, in which case maybe it would be better to use INT_MAX here. This is the minimal change necessary for correctness. Change-Id: I6e848110963b5e1832a11d052d84884f10903e2e Reviewed-on: http://gerrit.openafs.org/7800 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 860812931f3adf07c85ac2a56deb149b9c0d33bb Author: Jeffrey Altman Date: Sat Jul 21 12:17:46 2012 -0400 Windows: AFSTearDownFcbExtents loop conditional If there are extents in the list with a non-zero ActiveCount, those extents will be skipped and the list 'le' will never become empty. Add an additional condition to ensure that the loop is only executed once for each extent in the list. Change-Id: I48adf7c49282181d0a34135ac50f7fa1a165c735 Reviewed-on: http://gerrit.openafs.org/7810 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6b0bc2f6ff6ffecb4dd158ba5d2021d46bad7da0 Author: Jeffrey Altman Date: Sat Jul 21 12:02:20 2012 -0400 Windows: memory leak AFSInitPIOCtlDirectoryCB In an error occurs during AFSInitPIOCtlDirectoryCB processing the nonpaged pool allocation would be leaked. Change-Id: I092538202d84bd65476ba21a68e210d5f626ead2 Reviewed-on: http://gerrit.openafs.org/7809 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit af1bdc2b7758615ac22505128415a4f10a1f8f10 Author: Jeffrey Altman Date: Sat Jul 21 12:00:21 2012 -0400 Windows: memory leak AFSRemoveVolume Do not leak the VolumeCB->ObjectInformation.Specific.Directory.PIOCtlDirectoryCB->NonPaged allocation and the associated lock object. Change-Id: Ie6455c49fdcee578ab31355df1b2237f27a92e1d Reviewed-on: http://gerrit.openafs.org/7808 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fe61f35d35003121c94b717a1dd79119c9073adc Author: Jeffrey Altman Date: Sat Jul 21 11:52:22 2012 -0400 Windows: AFSExFreePool -> AFSExFreePoolWithTag Replace AFSExFreePool() with AFSExFreePoolWithTag() which is a wrapper around both ExFreePool() and ExFreePoolWithTag(). If a 'Tag' value, is provided, ExFreePoolWithTag() is used. Otherwise, ExFreePool(). Specify allocation tag values wherever possible. Path name buffer tags are not specified because they are allocated using multiple tags. The same is true for network provider string buffers. This is being done in order to debug a memory corruption issue. Warning: this is a change to the AFSRedir->AFSRedirLib interface and therefore both drivers must be updated with a reboot and not simply restarting the service. Change-Id: Id5c0503141d1077d6c2beae5d28602160105a312 Reviewed-on: http://gerrit.openafs.org/7807 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 8a11435eed2d3d1d1aef0ebb92822b34299b2e4d Author: Jeffrey Altman Date: Sat Jul 21 11:57:40 2012 -0400 Windows: Freeing SeQueryInformationToken allocations Memory allocated by SeQueryInformationToken() must be freed with ExFreePool() and not AFSExFreePool(). Change-Id: Iece2c37d5dc524204cbf3d8d6869148e1a0ce88e Reviewed-on: http://gerrit.openafs.org/7806 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3ec1bdf9c74bd250d49065fa84475a5123461744 Author: Jeffrey Altman Date: Fri Jul 20 10:20:02 2012 -0400 rx: fix abort on missing service patchset 1fbe83f9aacfc36a9c426ba1fd18ad7c72869dc1 introduced the possibility that a NULL connection pointer could be dereferenced. Prevent it. Change-Id: Ic813642c8073cedc3e4df578c1b06fecd22cfbdf Reviewed-on: http://gerrit.openafs.org/7794 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit bbf92017b084a8ba8df81effe06d11421cdf4bb0 Author: Jeffrey Altman Date: Mon Jul 16 16:53:32 2012 -0400 rx: rxi_ReceiveDataPacket do not set rprev on drop In KERNEL builds if there are no available packet buffers the new packet is dropped on the floor. In that case, the call's rprev field should not be updated because the packet was never "received" for delivery to the application. Remove a dead comment from the same block of code. Change-Id: I12a2b1618a430880d18efee48e6348e6f9ba8119 Reviewed-on: http://gerrit.openafs.org/7784 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 91f17adf01e54302b0c8d86df5627214f0bdf5d0 Author: Jeffrey Altman Date: Fri Jul 20 01:00:38 2012 -0400 Windows: avoid memory overrun during extent release While tearing down extents, if an extent is found to be in use it will be skipped. Must use 'ulReleaseCount' as the index into the released extent array. Change-Id: Iaf8a82c77ac8f4ddb30b35f43a4ce7a70f4a32a8 Reviewed-on: http://gerrit.openafs.org/7796 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 7ec46ced616f7af72fa3ce1d60304ae475977a28 Author: Jeffrey Altman Date: Fri Jul 20 00:59:33 2012 -0400 Windows: more roken.h include corrections Change-Id: I02d4347b870ff1e06b4f144bedb37d50c697c5ba Reviewed-on: http://gerrit.openafs.org/7795 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 14c98f9df9fd7686f6fc453edaf70168e19e6da9 Author: Jeffrey Altman Date: Fri Jul 20 02:54:18 2012 -0400 windows: add afsroken to afssvrcpa NTMakefile Change-Id: Iae17ad514bc9ce9a6786e820105a413b31a419ff Reviewed-on: http://gerrit.openafs.org/7797 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 281b5385855e98c9aa989bfba91451c56a1b73f1 Author: Garrett Wollman Date: Fri Jul 20 18:11:38 2012 -0400 uafs: avoid unnecessary type-punning There's no need to declare a separate buffer and initialize a structure inside it when we can just instantiate the structure directly. Change-Id: Idbcad31343ce7f074015f5921a4997d3f6c9799a Reviewed-on: http://gerrit.openafs.org/7798 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 6060374216bb899280d619b1b5834ffcb6dad2d7 Author: Derrick Brashear Date: Thu Jul 19 11:30:02 2012 -0400 macos: no bulkstat i have a bulkstat refactor in mind, but this *still* isn't safe on osx. disable as is on 1.6 Change-Id: I9446a6307e4890e4f7a78ab7fc054d84c39c992b Reviewed-on: http://gerrit.openafs.org/7792 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 56b5b9a1c51c2197923aa373c180a834edabe4f6 Author: Garrett Wollman Date: Sun Jul 15 22:07:05 2012 -0400 ubik: refactor error exits in internal CallIter() Originally, the first store to "code" was dead here. Refactor the error exits to follow the non-error exit path, which has the effect of making the store to "code" live again (and also makes it less likely that any new cleanup code will be unintentionally omitted). In the ubik_ClientInit recovery case, handle the possibility that aproc() returned zero and return UINTERNAL rather than letting the caller think that this operation succeeded. Change-Id: Idc198aa7a6e21975faaca9f159e822c9e3f66d98 Reviewed-on: http://gerrit.openafs.org/7776 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 33a761ebd11e33b5e111e67204218e8f67bef431 Author: Derrick Brashear Date: Tue Jul 17 15:34:07 2012 -0400 macos: get more packets if requested analogous to eead07418f13cd87a90770f03ea5118c546d8f1a for ukernel, this is for macos' upcall procedure Change-Id: Ia9d6108d8bb45b9bd33fe9a3af761dfe15248c6e Reviewed-on: http://gerrit.openafs.org/7788 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 50009267bb6deaa431042dc99ac6e5d913b1412a Author: Derrick Brashear Date: Tue Jul 17 00:15:56 2012 -0400 macos: native apps need 64 bit support the installer bundle, prefs pane and backgrounder all need to be 64 bit mode since the system uses them as plugins Change-Id: Ic2242ed8c993b7ed0a7c15ada78b625799bb446a Reviewed-on: http://gerrit.openafs.org/7787 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 3dd230e8595e2b9635d6ec412a145ae3be229b7a Author: Derrick Brashear Date: Mon Jul 16 22:32:55 2012 -0400 macos: fix growlagent icon handling the whole of the api used for icon handling when you steal it from a resource fork is deprecated in new macos. fine. we'll just make an app bundle by cheating, move andy into a standalone icns file, install him into the "bundle" and open it the macos way. Change-Id: I94b3fdb5fdb08b28400bd0f6f6a18a07840124df Reviewed-on: http://gerrit.openafs.org/7786 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit e359aa5c617e668535bc28eb88a139f1ae85851f Author: Derrick Brashear Date: Mon Jul 16 15:55:54 2012 -0400 libafs: pointopoint not supported in ukernel afs_server.c:1054: error: 'struct usr_in_ifaddr' has no member named 'ia_dstaddr' well, for now, bye bye! Change-Id: I3246a52e0bbdcfb92045de7e21febe0e65255db2 Reviewed-on: http://gerrit.openafs.org/7783 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e6aa586a996e32b3def4b8108815730fcfbf1463 Author: Derrick Brashear Date: Mon Jul 16 15:16:53 2012 -0400 macos: future-proof MakefileProto.DARWIN.in if new cases show up which match the current ones, they just work. darwin60 and older were already killed from the tree, kill here also Change-Id: Id246e13985c4752e99f606efd009bc5ce2871691 Reviewed-on: http://gerrit.openafs.org/7782 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 25556cf0015c9930adcd8a36d06f3008625db993 Author: Derrick Brashear Date: Mon Jul 16 15:09:11 2012 -0400 macos: actually link in shlibs we need shlibs in /usr/lib, actually install the links Change-Id: I172da1d043f70f7335c5d0aaaa9a301eef542243 Reviewed-on: http://gerrit.openafs.org/7781 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit f25734e9226232e03a397e0eded9a873ea0dfaa8 Author: Garrett Wollman Date: Sun Jul 15 22:47:51 2012 -0400 afs_vcache: remove redundant assignment in afs_FlushAllVCaches() Don't do in the body of the loop that which the loop itself already does. Change-Id: I41b5cbee86ab783d59024d8961c933525a5128d7 Reviewed-on: http://gerrit.openafs.org/7780 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 4a6a95fdb4ffb8f2681beb5e4e62ddd378baf75d Author: Garrett Wollman Date: Sun Jul 15 22:16:27 2012 -0400 afs_server: remove 3 dead assignments in LoopServers, move live one The assignments to conns, rxconns, and conntimer are all dead, so remove them. The assignment to nconns is live, but rather far from the for loop that actually uses it; move it to just before the loop. Change-Id: I8daf642630cc2d468ba7db42de46b69cd88fac28 Reviewed-on: http://gerrit.openafs.org/7777 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 73ff09513013ae3c6b29b1b7b0a6e76b4fd260f7 Author: Derrick Brashear Date: Sun Jul 15 03:03:00 2012 -0400 macos: next version support support things beyond 10.7 Change-Id: I7a50f569fd43e0e1ed3c74f0480a8e2521df1bc5 Reviewed-on: http://gerrit.openafs.org/7763 Tested-by: BuildBot Reviewed-by: Andrew Deason Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit a27a8a66c2c27a62afa566679ef9cf424e758d9f Author: Michael Meffie Date: Tue Jun 26 15:09:07 2012 -0400 vldb_check: off by one host address table error Fix several off-by-one errors when traversing the IpMappedAddr table in vldb_check. The last index (254) was not checked in several places. Change-Id: Ida5039fefa1fa55f6f647dee4ed3a26dd84a85d0 Reviewed-on: http://gerrit.openafs.org/7614 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 36c6c46bd081e0278611c3bb6ae25dd765f10648 Author: Michael Meffie Date: Thu Jun 7 12:58:54 2012 -0400 libafs: use afs_ResetVCache in flush volume data Remove some code duplication by using afs_ResetVCache in the flush volume data pioctl. Adds a flag to ResetVCache to avoid unneeded calls to purge dnlc when reseting all the vcaches in a volume. Adds freeing of vcache link data in the flush volume data pioctl. Change-Id: Ib94e6b4d28078a03d2ffd217998bbc345c4968e4 Reviewed-on: http://gerrit.openafs.org/7538 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit cc4552c9a1ca4a12d3d7f64d98185f8d2025834d Author: Garrett Wollman Date: Sun Jul 15 21:53:17 2012 -0400 util: eliminate dead store in hostutil_GetHostByName Change-Id: Ibf6712ec239a5f4d163c145f5444c086277e4445 Reviewed-on: http://gerrit.openafs.org/7774 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0b69ca34eb55f9d0a53e5f6b2e6155c7824b2fde Author: Garrett Wollman Date: Sun Jul 15 15:41:25 2012 -0400 rx: dead initialization in rxi_RestoreDataBufs Don't initialize iov only to overwrite it immediately below. Change-Id: I5b5660f31e02094a8871a0726dbd5be7ae6f9ea6 Reviewed-on: http://gerrit.openafs.org/7770 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e319f0ed8bf110d3b614f8e1feca73e6601b4a2d Author: Garrett Wollman Date: Sun Jul 15 15:44:42 2012 -0400 vol: dead initialization in VWalkVolumeHeaders() Actually, all of the initializers in this small function are dead. Change-Id: If89fe3222ec39b34233f92f3aafd458f5723b0c5 Reviewed-on: http://gerrit.openafs.org/7771 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6422be38fc8084a58b70412e3cfe087a4e1e57b8 Author: Garrett Wollman Date: Sun Jul 15 22:00:04 2012 -0400 rx: eliminate dead variable sdl in rx_getAllAddr_internal() Near as I can tell, sdl is only assigned once, and is never read. Change-Id: I145be12aef902db3ad149be39c1db360775d4456 Reviewed-on: http://gerrit.openafs.org/7775 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e194a8b7f811a995e8f7147a12ac4be6e96f873f Author: Garrett Wollman Date: Sun Jul 15 14:09:11 2012 -0400 util: LogCommandLine: argc is an int, so assert that it's positive In practice, argc should never be negative, but by convention it's a signed int, so change the assertion to require it to be positive rather than merely nonzero to get some help to the static analyzer. Change-Id: I2d6c00b8ad2f8d573d717f1e2b88a4bb902f125c Reviewed-on: http://gerrit.openafs.org/7765 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f4b2ad4dc974b441819d0113efbb81c537b8ed97 Author: Garrett Wollman Date: Sun Jul 15 14:18:12 2012 -0400 budb: don't malloc(0) on error condition in GetText() malloc(0) is non-portable (may return a pointer to no space, or it may return NULL. Just set the result to NULL without bothering to call malloc(), as is done earlier in this function. Change-Id: Ic3562e722113a1409ec7c30bd571e9470b3e092b Reviewed-on: http://gerrit.openafs.org/7766 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0527cc793054e582ea8be8c0dc76df9e2ca0ab1b Author: Garrett Wollman Date: Sun Jul 15 14:54:47 2012 -0400 util: in util_newTable, don't leak Table on error It is unlikely that this memory leak actually matters as the caller will normally just exit. This whole source file could stand to be reformatted. Change-Id: Ic5cb52a73ac09ae492c6e6ab606dfaf92a1ab8bf Reviewed-on: http://gerrit.openafs.org/7767 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 53c432d1feba6454af4526b4d797b45a6f205eac Author: Garrett Wollman Date: Sun Jul 15 15:01:29 2012 -0400 rx: don't leak a connection hash table in unlikely error condition If getsockname() returns an error (which shouldn't be possible), rx_InitHost would leak a connection hash table (which probably doesn't matter because the caller will just exit anyway). Make the analyzer happy by freeing the memory anyway. Change-Id: If8e78ebfb787d2dc1c0b9f95f91b6e7510c9e307 Reviewed-on: http://gerrit.openafs.org/7768 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 3af6beea4b03bd4dd62b23a6a0df149037b456c0 Author: Garrett Wollman Date: Sun Jul 15 15:13:55 2012 -0400 volser: don't derefernce null pointer in copyVnodes() split_volume() can call copyVnodes() with parVnode == NULL, so guard the one reference to parVnode (a memcpy()) to avoid a fault. Change-Id: I631a78bcfa6a7a465e997a6714849ca0d2d86f86 Reviewed-on: http://gerrit.openafs.org/7769 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit d2d591caf2c9b4cf2ebae708cc9b4c8b78ca5a5a Author: Jeffrey Altman Date: Tue Jul 3 15:58:01 2012 -0400 viced: RXAFS_GetVolumeStatus remove access check The AFS file server had always performed a PRSFS_READ permission check on the volume's root directory (1.1) vnode before responding succesfully to the client. A successful response contains the following volume state information: 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 other services so it is odd that it is hidden from anonymous cache managers. As sites begin to tighten the ACLs on volumes due to privacy and security concerns this READ permission check is begin to cause problems for Windows clients that rely upon the quota and block counts to determine whether or not it is likely to be safe to perform an extending write. In many environments volumes are being configured such that the root directory is 'l' for all and only the subdirectories provide for 'ridw'. Under these situations the user is able to read/write the data but cannot determine how much free space is available. Since all of the data returned by RXAFS_GetVolumeStatus is publicly available, the patchset removes the access check entirely. Change-Id: Ic8a8d755b0ed61789a49243827083ae97c137560 Reviewed-on: http://gerrit.openafs.org/7705 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit d2ef4a6e1f685564ed51e8c1bc82642b406e936a Author: Garrett Wollman Date: Sun Jul 15 22:34:42 2012 -0400 bozo: small-notifier: don't ignore return from system() Nobody can possibly be using this program, but even so, don't ignore return values. Unfortunately, the return value of system() is a bit complicated to interpret. Change-Id: I6edbbb7c010b4e534de9033b91849e2d54bf4b25 Reviewed-on: http://gerrit.openafs.org/7778 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b9b575c8807e00aa5c1b5c1f26f57982a860d8c3 Author: Garrett Wollman Date: Sun Jul 15 22:42:10 2012 -0400 budb: remove dead assignment in verifyFreeLists() Change-Id: I1c4b6e9f4961395815ca379dd031a309b53d5364 Reviewed-on: http://gerrit.openafs.org/7779 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c29c302347ba93bd3dc5f88f9c235cb89a0413b8 Author: Garrett Wollman Date: Sun Jul 15 21:35:21 2012 -0400 afs_server: spell IFF_POINTOPOINT consistently The interface flag has one fewer T than normal English usage would suggest, so this code was never compiled on systems that don't have the normally-spelled version as an alias. Change-Id: I7ae4ab45eda937d122894828ec8fdc104f43392f Reviewed-on: http://gerrit.openafs.org/7772 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ce1917c801b8338629723b4ccf38b336e873aef1 Author: Garrett Wollman Date: Sun Jul 15 21:47:35 2012 -0400 volser: dead store in UV_MoveVolume2 Change-Id: Iee66b99388c7deb0109aaf676ad28ec9c27e6409 Reviewed-on: http://gerrit.openafs.org/7773 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 59e0efd22e9a36102a7aa6a544f89f6f2cd3edea Author: Garrett Wollman Date: Sun Jul 15 11:56:15 2012 -0400 FBSD: don't reference libc_r; no release OpenAFS works on still uses it libc_r is the old user-mode threading library. Modern versions of FreeBSD don't include it, and the conditionals here that (nearly always) override it with the correct library, libpthread, are true on every version of FreeBSD for which OpenAFS might plausibly be compiled. So just use the correct library all the time. Change-Id: I8f813814973cec3173f44636523c3bf0bee27b3e Reviewed-on: http://gerrit.openafs.org/7764 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6b8c43559073caa7f0b9db25bab4812606740e7d Author: Jeffrey Altman Date: Fri Jul 6 16:04:28 2012 -0400 Windows: add cm_ServerListSize() cm_ServerListSize returns the length of a cm_serverRef_t list. Change-Id: I6dc1e5e2c23efffe9d6c210ba1c8702d00aabe8f Reviewed-on: http://gerrit.openafs.org/7759 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 2dbe1316a17716e57013cf41e7b19ec898b94cbf Author: Jeffrey Altman Date: Fri Jul 6 16:02:38 2012 -0400 Windows: add cm_IsVolumeReplicated() Given a file id indicates whether the volume it is located on is replicated or not. Change-Id: Icae0a387fc26e2a76b4b6f87fdb5c330da31a96b Reviewed-on: http://gerrit.openafs.org/7758 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit a9be0735b5e23adefc5fd57083ca206e61820bab Author: Jeffrey Altman Date: Mon Jul 9 09:34:22 2012 -0400 Windows: Redesign of server preferences Server rankings should be composed from three values: 1. administrative preferences 2. network address locality 3. peer performance (rtt and congestion window) This ensures that local subnet servers are always preferred. Add a new rank for down servers so they are always sorted las in cm_serverRef lists. Change-Id: Id00e151fc1acd65db558571e6a3a0e7cfbf3c6ca Reviewed-on: http://gerrit.openafs.org/7757 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 65a5e3ce92c47a87c3dca54cec456ae0337c78ef Author: Michael Meffie Date: Wed Jul 4 17:54:02 2012 -0400 vlserver: fix logging of ip addresses Remove the spurious dates surrounding IP addresess in the VLLog. Instead of multiple calls to the logging function for a given log line, format a string containing the addresses and call the log function once. Changes the log output from, ... The following fileserver is being registered in the VLDB: ... [Tue Jul 4 14:11:43 2012 192.168.10.128Tue Jul 4 14:11:43 2012 ] ... It will create a new entry in the VLDB. to, ... The following fileserver is being registered in the VLDB: ... [192.168.10.128] ... It will create a new entry in the VLDB. Change-Id: I6c4ac2dcc60fe4c5ced79017b91049f0c327e935 Reviewed-on: http://gerrit.openafs.org/7750 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman commit f70952a347dff39bd445f8361224e1c622a5b1cf Author: Jeffrey Altman Date: Tue Jul 10 00:13:04 2012 -0400 Windows: cm_SyncOp waiting logic Use interlocked increment and decrement to track the waiters and use the wait queue itself to determine if there are waiters instead of the CM_SCACHEFLAG_WAITING flag. Change-Id: I9c570cb228d73253989932149346ecfc45804267 Reviewed-on: http://gerrit.openafs.org/7752 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 80732b94ef8a8fd239d8f77d8e10f0d770f0ec24 Author: Jeffrey Altman Date: Tue Jul 10 00:09:14 2012 -0400 Windows: remove unused CM_SCACHEFLAGs CM_SCACHEFLAG_CALLBACK and CM_SCACHEFLAG_STATD were cleared at various points and tested at various points but never set. Remove them. Change-Id: I018c51febf01e1311dc38e3779e8c8880890f20a Reviewed-on: http://gerrit.openafs.org/7751 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6fb3b7aa317a6429daf86b140785875a70686bac Author: Jeffrey Altman Date: Sat Jul 7 14:11:23 2012 -0400 Windows: not all short rx_Read[v] reads are fatal When performing a RXAFS_FetchData[64] RPC, a short read from rx_Read[v] is not a reason to stop processing the call unless it is the first read and the file server FetchData offset bug has been detected. If not, only stop processing if the rx_Read[v] return value is <= 0. Change-Id: I5b10ce7903686fa3d9c251e6c92c4bcec376ed40 Reviewed-on: http://gerrit.openafs.org/7749 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 606d9554e2880c2978675b7eae3fa5f53bd07c3d Author: Jeffrey Altman Date: Mon Jul 9 00:49:13 2012 -0400 Windows: record mount point string data version The Windows cache manager stores the mount point or symlink target string in the cm_scache_t object. If the string is the empty string then the target needs to be resolved. Otherwise it is considered up to date. With this approach, care must be taken to ensure that the string is erased whenever the data version changes. This patchset records the data version of the mount point target string in the cm_scache_t object. Being up to date is determined by comparing the current data version of the object to the mount point string version. A match and the string is up to date. Change-Id: I4dfdc1af5894548afb35e84e77f7f607674bd7af Reviewed-on: http://gerrit.openafs.org/7745 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit df46bb407a9073374337f4b8e4291e18c74e548c Author: Jeffrey Altman Date: Sun Jul 8 02:00:17 2012 -0400 Windows: initialize afsStatus and callback structs In cm_GetBuffer, cm_GetData, cm_VerifyStoreData Change-Id: I4bb965ead41f99c6c677cce35a784b53b1f6b310 Reviewed-on: http://gerrit.openafs.org/7744 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 8115841e2fc9d827a7207ddc18e5c84e466ed7e7 Author: Jeffrey Altman Date: Fri Jul 6 15:07:13 2012 -0400 Windows: cm_MergeStatus unknown interface numbers Ignore status information if the interface number is unknown. Currently only version 1 is recognized. Change-Id: I02618ef81e42ad5b6ef903e2f25598dfb7053ca4 Reviewed-on: http://gerrit.openafs.org/7743 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 234bedae6ef506ec1ff53854a22548e892db3f11 Author: Andrew Deason Date: Wed Jun 20 16:28:51 2012 -0500 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 Reviewed-by: Derrick Brashear commit 5800b7f23cf04525a6d570f4d97a9842d73a4cb8 Author: Andrew Deason Date: Thu Jun 28 23:16:33 2012 -0500 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 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman commit 9be78ab820476e27b31440dc2f6ba425d21d5436 Author: Jeffrey Altman Date: Fri Jul 6 00:29:59 2012 -0400 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 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 9bc068edc890991b5d384108ce972c12d3c18975 Author: Jeffrey Altman Date: Thu Jul 5 16:55:03 2012 -0400 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 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d5f067aa735968d4da6685f0883ca978d5e6795c Author: Jeffrey Altman Date: Thu Jul 5 16:52:51 2012 -0400 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 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f4baf7cf99ef52f3ce9d6a7ee577cd9140a8bdc5 Author: Jeffrey Altman Date: Thu Jul 5 21:13:21 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7f646382f633fb83d2054298cd5ce12a7bfa250c Author: Michael Meffie Date: Thu Jun 28 17:24:49 2012 -0400 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 Reviewed-by: Andrew Deason Reviewed-by: Jeffrey Altman commit 828ef9c39a14af265796755718c10b63513f952c Author: Andrew Deason Date: Thu Jun 28 18:56:47 2012 -0500 doc: Add fs bypassthreshold man page FIXES 130050 Change-Id: I0ffc7b93ed9dd93765a25efd60fe3430a86366cf Reviewed-on: http://gerrit.openafs.org/7602 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 52f3878da4b8f5356e7799f2659d41cade0dbdee Author: Jeffrey Altman Date: Thu Jul 5 18:25:09 2012 -0400 Windows: remove used 'deltas' from cm_CheckServersMulti() Change-Id: I9dd5e72a8fe748a06aa4d008888a41017d60570c Reviewed-on: http://gerrit.openafs.org/7725 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3b3b620a03b56dba7f0696f8175b9fb2c8fbd6ae Author: Jeffrey Altman Date: Thu Jul 5 18:22:24 2012 -0400 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 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4e3400414f676b9a0033f041f81671534ffdab99 Author: Jeffrey Altman Date: Thu Jul 5 18:21:51 2012 -0400 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 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2575d87824fbf5d0e1a5fcb3a1b49949d6fbe2ee Author: Jeffrey Altman Date: Thu Jul 5 18:16:09 2012 -0400 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 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ef5686b1a11e1a6ba4590b09170306190d6c7393 Author: Jeffrey Altman Date: Thu Jul 5 18:06:13 2012 -0400 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 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5b9e9265a0df707e9fb79842ab5aa94b59b8e88e Author: Jeffrey Altman Date: Thu Jul 5 14:54:04 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c3ce54e6b7be8c2996a0fda2d7ad9780fca2f0ef Author: Jeffrey Altman Date: Thu Jul 5 14:33:50 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f73aebbe8772e62bf8930d70e9edab2f82ff8984 Author: Jeffrey Altman Date: Thu Jul 5 11:03:35 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 561b9ce80938d316223f2b313f8224fe06af9d5a Author: Jeffrey Altman Date: Tue Jul 3 15:38:33 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 261ec65f20df46ed043d16a869d042cf61c6eda7 Author: Jeffrey Altman Date: Tue Jul 3 12:51:27 2012 -0400 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 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit c3485a35b7a548d850d55dde4634ba78e5330aa9 Author: Jeffrey Altman Date: Tue Jul 3 12:49:53 2012 -0400 Windows: HaveCallback vs OfflineRO Is Valid commit f716962ab41847af4450d0a361f5de9195b32ed0 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 64a37fa9f916cd1e8f0ec9bb252fda13aa8b4cd4 Author: Jeffrey Altman Date: Tue Jul 3 12:42:52 2012 -0400 Windows: cm_DiscardSCache volumeCreationDate commit f716962ab41847af4450d0a361f5de9195b32ed0 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 673127f6928c9c2fb5a3b0400fa36d4afcf1e5df Author: Jeffrey Altman Date: Fri Jun 29 00:35:49 2012 -0400 Windows: add missing items to 'clean' rules Change-Id: Ibf7ce081d789a5940033ecdcfd62515824176368 Reviewed-on: http://gerrit.openafs.org/7653 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 17584782a4d76facf5a89a3eeeebfcc23582b3e8 Author: Jeffrey Altman Date: Mon Jun 25 23:06:30 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 712c0c1d0e506a9010d7a5cc93dfd49bee006d41 Author: Jeffrey Altman Date: Mon Jun 25 01:38:41 2012 -0400 Windows: afscreds import lsa before renew expiring Change-Id: I53d3d000a0970089417d7855fda7a97ba4e61000 Reviewed-on: http://gerrit.openafs.org/7649 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0834e40bd7444ba1f1770c60b387cf513b279a4b Author: Jeffrey Altman Date: Mon Jun 25 01:33:02 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 91795c659087371f941231e51fe284de010e60b1 Author: Jeffrey Altman Date: Mon Jun 18 22:03:21 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 76ae0f01b32d3e87273ff6d2c9c20eec59e22e16 Author: Jeffrey Altman Date: Mon Jun 18 21:58:26 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 79f68de80e56179cfc5158fdcb51c34cfa864802 Author: Andrew Deason Date: Fri Jun 29 12:36:36 2012 -0500 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 Tested-by: Andrew Deason Reviewed-by: Jeffrey Altman commit 4707174938b92df189697a2b7e463438c37c1ed0 Author: Jeffrey Altman Date: Sun Jul 1 22:19:08 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4929b0cb0b57a803a84673fe0faf619d088ed910 Author: Jeffrey Altman Date: Thu Jun 28 22:29:19 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 03dfcce05aabf2ceecdb84528fc837176c52af77 Author: Jeffrey Altman Date: Wed Jun 27 01:00:20 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f3f282265a3d9e3c968fd06793e6d1a91337f443 Author: Jeffrey Altman Date: Sun Jun 24 10:16:42 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 53413685ce56c5adba7b095265a62a5088977de2 Author: Jeffrey Altman Date: Sun Jun 24 10:12:51 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit dddd393198bc066e0fea478baf719c97cd51ec53 Author: Jeffrey Altman Date: Sat Jun 23 15:04:29 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5a6cf1494613b83332e4fad01980bb636c510a88 Author: Jeffrey Altman Date: Sat Jun 23 11:11:47 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d95d4fcca997ea3f8bfbf4a2c1f22c402446aad8 Author: Jeffrey Altman Date: Fri Jun 22 16:51:00 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 349c1f53383ee26eb13729d703b0b9e89865ec0c Author: Jeffrey Altman Date: Fri Jun 22 16:46:23 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 05ac74528b30d36c195ff8f4df343fa72082a213 Author: Jeffrey Altman Date: Fri Jun 22 00:25:26 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4785361388d21c46dd30332d89bb201522ee1a6c Author: Jeffrey Altman Date: Thu Jun 21 19:37:25 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 056399bb0d2186bae96223c7f7665e1bc0aed82f Author: Jeffrey Altman Date: Thu Jun 21 19:34:58 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 877053a8cd419c6a6470972f18c4adc7ddb0f163 Author: Jeffrey Altman Date: Thu Jun 21 19:29:26 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ae25cf277c8d70da0e6666316baf98d5c117a03b Author: Jeffrey Altman Date: Wed Jun 20 00:05:44 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e0b9b89dd98d0bf449556e3f28b479dd61e7eb95 Author: Jeffrey Altman Date: Tue Jun 19 18:48:31 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7fd1dc6c887c3bf786632901bc72b8250298a98f Author: Jeffrey Altman Date: Mon Jun 18 21:55:49 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 187af8d11350c2ff509244f216c72bdd4b88451a Author: Jeffrey Altman Date: Mon Jun 18 21:49:18 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c8b1f007b530c072ee1f5654833f68e45a2eafd5 Author: Jeffrey Altman Date: Mon Jun 18 21:48:05 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ae5aba17cc5d45805f7d263fd645fba0d3bb5116 Author: Jeffrey Altman Date: Mon Jun 18 21:45:39 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7adb93cf51d56936d51b70758a959342728fea56 Author: Jeffrey Altman Date: Mon Jun 18 21:39:51 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 43d53bed6f591257fee55c343699ee1d3b223ff6 Author: Jeffrey Altman Date: Mon Jun 18 21:37:49 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e513799232f72ce9deabe5097f06f42d4ce09bf2 Author: Jeffrey Altman Date: Mon Jun 18 10:10:32 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d7690835aca12b3d38722a8dafa6efbfb1f549ee Author: Jeffrey Altman Date: Thu Jun 7 09:23:26 2012 -0400 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c639b08ebc1b202b571b245bb5eee075300b2ec0 Author: Steve Simmons Date: Wed Jun 27 17:28:36 2012 -0400 Added build of cscope index to Makefile Add ability to do 'make cscope' at the top of the distribution tree and get 'cscope.out' built in ./src. Index file is removed in 'make clean'. cscope.out is now ignored in src/.gitignore Change-Id: I2ae4eea0fce46a87a6b9d5a992fcb7288f6b5655 Reviewed-on: http://gerrit.openafs.org/7594 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 300cbb28b08c2fd3709942cc6c48e7d9369a3394 Author: Andrew Deason Date: Thu Jun 28 15:43:27 2012 -0500 doc: Correct volume size CAUTIONS notes 2 terabytes is 2^41 bytes, not 2^31 bytes. Also clarify that volumes can be much larger than this. FIXES 130188 Change-Id: Id667b2827900dbe447828d773c7b90e9611288a2 Reviewed-on: http://gerrit.openafs.org/7598 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fcaa53a6d7289665b64037a0d96ae4c6cbf4f776 Author: Andrew Deason Date: Thu Jun 28 17:47:32 2012 -0500 doc: Fix whitespace errors Change-Id: I3bbdf1075279d970bc011277b1f79291a5ba62a6 Reviewed-on: http://gerrit.openafs.org/7599 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3ff8ef499c56008f4d2ebf5b81e08e98eb0c0826 Author: Andrew Deason Date: Thu Jun 28 15:30:40 2012 -0500 doc: Consolidate CAUTIONS notes about volume size Change-Id: I264906fb3f61db62c483982f613654a9a897f417 Reviewed-on: http://gerrit.openafs.org/7597 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5e91c3b5d1a70f7af2e04ac74d98ae6b407f169c Author: Jeffrey Altman Date: Mon Jul 2 01:56:35 2012 -0400 Windows: export roken allocators Use rk_alloc, rk_calloc, rk_free, rk_realloc instead of Windows C RTL allocators. The OpenAFS source tree has a bad habit of allocating memory in one module and freeing it in another. This is not a problem for POSIX but is disaster on Windows. This change ensures that all OpenAFS modules share the same allocator. Change-Id: Ia57f1ba351e8dc24e7fbba87bbc9595bcf001ed6 Reviewed-on: http://gerrit.openafs.org/7625 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 9c0b7be87de83493ca1d5a01326982ce5c8c131b Author: Heimdal Developers Date: Mon Jul 2 15:00:30 2012 +0100 Import of code from heimdal This commit updates the code imported from heimdal to 3fe55728404c602884f16126e9cc60fc5a3d8f20 (switch-from-svn-to-git-2993-g3fe5572) Upstream changes are: Andrew Bartlett (1): Revert "make paranoia check less paranoid" - check that key types strictly match Jeffrey Altman (3): do not include stdint.h unprotected Windows EAFNOSUPPORT defined by VS2010 roken: Use a common allocator for all windows Love Hornquist Astrand (2): add rk_getpwnam_r move windows compat errno constants to after is included Nicolas Williams (7): Fixes to make Heimdal -Wall -Werror clean Make krb5_kuserok() pluggable and add features (including MIT config compat) Generalize token expansion to allow for context-specific tokens Address code review comments (use krb5_enomem()) Make master build on Windows Fix a compiler warning in lib/roken/snprintf.c on 32-bit Ubuntu Move base into lib Roland C. Dowdeswell (3): Turn on -Wextra -Wno-sign-compare -Wno-unused-paramter and fix issues. Provide support for enctype aliases for ease of use. Additional changes to make -Wshadow build on Ubuntu 10.04. Simon Wilkinson (1): hcrypto: Use correct size for memset in md2 New files are: roken/realloc.c roken/win32_alloc.c Change-Id: I8129ad5677fd7e3a3d3daa78eadf436bbc63adc2 Reviewed-on: http://gerrit.openafs.org/7612 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit e05a63045230e732d6abb1f4baf8ed5275e19e69 Author: Simon Wilkinson Date: Mon Jul 2 14:50:10 2012 +0100 roken: Import Windows allocator changes Roken now supports using a single allocator across all of the objects which include that roken library. Two additional objects are required to support this, so add them to the list of symbols that we import. Change-Id: If43537f06a6cdc6ea4dea278cdc1db1e6970f955 Reviewed-on: http://gerrit.openafs.org/7618 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 0e327b4982d630508446aaa2cc0999d899cc8a31 Author: Jeffrey Altman Date: Mon Jul 2 11:52:34 2012 -0400 cmd: add krb5_enomem() definition Heimdal's expand_path.c now makes use of a new function krb5_enomem() which is a wrapper around krb5_set_error_message(). Add a dummy implementation to src/cmd/krb5_locl.h so that expand_path.c can build within the OpenAFS tree. Change-Id: I9616604dfd7e0844b7e09576c76d844b1cb678dc Reviewed-on: http://gerrit.openafs.org/7624 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit a41ab064962ef4865dfa5023c4b314c6f935ed64 Author: Jeffrey Altman Date: Mon Jul 2 11:49:54 2012 -0400 Windows: HAVE_UINTPTR_T The Windows build has a definition of uintptr_t. Add HAVE_UINTPTR_T to the Windows config.h file. The sources imported from Heimdal make use of it. Change-Id: I6d01dd9eb67c1e7f7ef257f0ac06d89d656f8bd8 Reviewed-on: http://gerrit.openafs.org/7623 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 7c2399115153609edc87a4c487d18e7f8b41dcba Author: Jeffrey Altman Date: Mon Jul 2 01:42:35 2012 -0400 Add HAVE_INT64TOINT32 test in stds.h Windows SDK v6.0 and above include a platform specific definition of Int64ToInt32. Use the platform definition when available. Change-Id: I8081ed1c33d2ac11287ebaa1eaef1f77682575cf Reviewed-on: http://gerrit.openafs.org/7622 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 6f779c18678d4d9549c2977c2c3c9d15a0f13524 Author: Jeffrey Altman Date: Mon Jul 2 10:36:22 2012 -0400 Windows: remove unused defines from param.h Remove #if 0 disabled definitions and those for strtoll and strtoull as they are not used anywhere in the tree. strtoll and strtoull will conflict with the next roken.h update. Change-Id: Ieea394abf6046be9b5974464890b7af945c00153 Reviewed-on: http://gerrit.openafs.org/7621 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 754180b61ee4cb84bd21046afd813b0dc03fad54 Author: Jeffrey Altman Date: Mon Jul 2 01:35:43 2012 -0400 Windows: link to afsroken.dll All binaries must be linked against afsroken.dll. Change-Id: I74f392a8aaadfe67f24d01a8d65df6a6228fd952 Reviewed-on: http://gerrit.openafs.org/7620 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 3078c4a59240540b085799495270872bc9393912 Author: Jeffrey Altman Date: Mon Jul 2 01:32:25 2012 -0400 Windows: roken.h ordering The order of include files must be afsconfig.h afs/param.h afs/stds.h roken.h Change-Id: Ie9f6476b9be143416105d1eec3a512a87cf66383 Reviewed-on: http://gerrit.openafs.org/7619 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit d8397c7c320cd8557e4a24a9ff84b029c07b165e Author: Jeffrey Altman Date: Mon Jun 11 14:45:15 2012 -0400 Windows: afslogon is only an authentication provider afslogon.dll is just a Authentication Provider DLL. It does not provide network file system browse and mapping functions. Therefore, do not include the "ProviderPath" registry value when the AuthentProviderPath variable is sufficient. Change-Id: I92848e614906c3e35b882dd70570bddfaa44d36f Reviewed-on: http://gerrit.openafs.org/7550 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 0c6a2a7b359b7b0432c94287485ed1ed26d5f253 Author: Derrick Brashear Date: Fri Jun 29 10:04:10 2012 -0400 viced: null-terminate server list for ubik when we set up the vlserver connection, we could potentially use uninitialized memory as ubik connections. don't. Change-Id: Idefa71874c7402c927fbf148f994f9422183208a Reviewed-on: http://gerrit.openafs.org/7610 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear Tested-by: BuildBot commit 44ca4aa90ef101fb13b3b5327ca19381b5464fb3 Author: Ben Kaduk Date: Wed Jun 27 22:04:24 2012 -0400 Patch up FreeBSD-10 support The auto-guessing code for sysnames produces *_fbsd_100, so we can't just claim that we'll be *_fbsd_1000 for kicks. Revert back to the old behavior so as to be less disruptive. Change-Id: Iddbff8f6e03a1bd0cf140b6eaad1de72ad3b76b4 Reviewed-on: http://gerrit.openafs.org/7595 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 6ea7a84bdcc533ad3420b651a7c3c001b8c1cc6c Author: Simon Wilkinson Date: Tue Jun 26 17:42:39 2012 +0100 viced: Remove localcellname Commit 8a040cfd848410b75b4e5ac5498f00f073932598 removed all of the code which relies on the localcellname variable being set, but didn't remove the variable itself. So do so. Change-Id: I34bb0d321712b6712633cf42a1d89140a0146501 Reviewed-on: http://gerrit.openafs.org/7588 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit eed293b295f9d29baa4add36a1c504f5bdeb8df0 Author: Simon Wilkinson Date: Tue Jun 26 17:43:29 2012 +0100 viced: Make private host stuff static The function initInterfaceAddr_r is internal to the host.c file, so make it static to make this clear. Change-Id: I4dd2de5a7071e68f103bb56347551a3e535d2fd9 Reviewed-on: http://gerrit.openafs.org/7587 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 3b45a13a74936ed5f0e19a2766072fbd25c27022 Author: Simon Wilkinson Date: Wed Jun 27 10:51:37 2012 +0100 viced: Make the config directory path global Store the location of the configuration directory in a global variable, rather than hardcoding it in multiple locations in the file. This makes it easier to write unit tests for portions of the fileserver, and is a step towards producing a fileserver that can be run from within the test suite. Change-Id: I0ee1d9bed084472b1e29b9c559a8726f867f91e4 Reviewed-on: http://gerrit.openafs.org/7585 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 7034b980f7381fd99aa53f85a27a7260432c0c41 Author: Simon Wilkinson Date: Sun Jun 17 22:20:40 2012 +0100 vol: Make some functions static Make all of the functions in partition.c that are only used in that file static. Change-Id: I12e0980578b79459f50b6f4a46d2c423847e18a9 Reviewed-on: http://gerrit.openafs.org/7586 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c7ff0d28bf68533a74664e4f6a7ac0d946ac2893 Author: Simon Wilkinson Date: Tue Jun 26 21:04:41 2012 +0100 tests: Abstract out code for a test RPC service Lots of our tests want to start a test RPC server, and then run commands against it. Start to abstract out the code to do this by pulling the code to start a test RPC server into its own function in the common test directory. Change-Id: Ie7fa1fa1984113f3722def17a9fd4b98993bd6ff Reviewed-on: http://gerrit.openafs.org/7584 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 6f9443e702745d1e371eb72ad7fcba5cac47f3db Author: Simon Wilkinson Date: Tue Jun 26 21:16:28 2012 +0100 Unix builds: Reference krb5 libs in standard way Use $(LIB_krb5) and $(LDFLAGS_krb5) to reference the Kerberos library and linker flags, rather than directly using an autoconf substitution. This brings us in line with the way other libraries are handled. Change-Id: Icda16833abea32440a5c307c39eb06b32613b06a Reviewed-on: http://gerrit.openafs.org/7583 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 387fe294f663abd9c92cd007869e2e9e8cc11d69 Author: Andrew Deason Date: Tue Jun 19 14:42:23 2012 -0500 viced: Clear all client CPS on FlushCPS Currently the fileserver only finds the first applicable 'client' structure (via h_ID2Client) for a FlushCPS operation, and invalidates the CPS for it. However, there may be many 'client' structures in memory for the given viceid, since we may have many connections for the same user (possibly from different hosts). So, modify FlushCPS to find all relevant client structures, and invalidate the CPS calculation on them. Change-Id: I46532984cc470f41c83fb8c686766e4a4d49edd0 Reviewed-on: http://gerrit.openafs.org/7574 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cb64dea75a114f6ebcba174be4e71c7fb5f85658 Author: Andrew Deason Date: Mon Jun 18 17:01:24 2012 -0500 cacheout: Perform authenticated RXAFS_FlushCPS Fileservers may now require RXAFS_FlushCPS calls to be made with administrator tokens. So, try to make the call with admin tokens, and provide the usual -noauth and -localauth options. Change-Id: I8b3fc28b9151eb07eda858a0d7e6bd123a107d14 Reviewed-on: http://gerrit.openafs.org/7573 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 568adf7d18eb17a42caa263aabc92a686f0ae121 Author: Andrew Deason Date: Fri Jun 15 16:58:42 2012 -0500 viced: Restrict RXAFS_FlushCPS to administrators RXAFS_FlushCPS currently can be run by anyone, including unauthenticated users. Forcing CPS calculation can be a relatively resource-intensive operation, though, if done frequently enough, and only should need to be done by administrators. Thus, only let administrators use it. Change-Id: Iaedd1e72e542b637070930bf1a0a9eba83a9ab64 Reviewed-on: http://gerrit.openafs.org/7572 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 7a875f639f61966f2d327f929305091d2678e99a Author: Andrew Deason Date: Fri Jun 15 16:55:16 2012 -0500 viced: Rename fs_rxstat_userok The fs_rxstat_userok function can be used for other purposes; give it a more general name. Change-Id: Ic94e8121ac8b856b288712d486e34556be8250d6 Reviewed-on: http://gerrit.openafs.org/7571 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit d4bab02f023f53041c3ac58fd75cffd27ec92df0 Author: Andrew Deason Date: Mon Jun 18 15:06:49 2012 -0500 doc: Consolidate NetRestrict format docmentation We were specifying exactly the same format in two different places; consolidate them into one place. In addition, explicitly say there are is no way to specify a range of addresses, in case some people are confused by the previous versions of this man page that erroneously said you could use 255 as a wildcard. Change-Id: I18d96ee9e6c43dfb62719323fa7eb8d9f254e273 Reviewed-on: http://gerrit.openafs.org/7565 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4ae005062e2c927b77ea23d95934d5af463878b3 Author: Andrew Deason Date: Mon Jun 18 15:02:09 2012 -0500 doc: Remove reference to NetRestrict wildcards Commit 80fc888a9223050481de932233fe7121a48df194 got some of this, but forgot the other reference. We don't support these anywhere, so remove it here, too. FIXES 125340 Change-Id: I536336634beb835c9e1c93e23f8d7329fa821c96 Reviewed-on: http://gerrit.openafs.org/7564 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 58e7d52d0066a9f237971f39e7acdde02761172a Author: Ben Kaduk Date: Fri Jun 22 21:33:50 2012 -0400 Catch up on fbsd releases Pull in the changes needed to even have a chance at supporting FreeBSD 8.3, 8.4, 9-stable, and 10-current. Conditionals for changed interfaces in a follow-up commit. Change-Id: I4765679f6cef0555ce6d02ad281e127869d8924c Reviewed-on: http://gerrit.openafs.org/7581 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e1ff7148cce62f7c34614dc1ac1edc909dea1c55 Author: Andrew Deason Date: Thu May 24 14:53:59 2012 -0500 cmd: Avoid premature OptionAsString free Only free the previously-set string value if we're actually going to change it. This avoids the scenario where a caller does something like: char *str = strdup("defaultval"); /* ... */ cmd_OptionAsString(as, OPT_foo, &str); resulting in 'str' pointing to freed memory when the relevant option is not specified, or there is some other error. Change-Id: If1f94d5eb39cc4dba9a4195ff20850ff81737eb9 Reviewed-on: http://gerrit.openafs.org/7475 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 1fbe83f9aacfc36a9c426ba1fd18ad7c72869dc1 Author: Derrick Brashear Date: Fri Jun 1 13:16:31 2012 -0400 rx: abort on missing service currently rx does not send an abort if a service does not exist; it quietly ignores the packet. provide a hint we have done so. Change-Id: Id3533afd46ed21765d4d2aab630a896b21c945de Reviewed-on: http://gerrit.openafs.org/7563 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit a3ef19e1995a1d3d05c8f3b2decf4301359d8375 Author: Andrew Deason Date: Sun May 20 17:05:12 2012 -0500 FBSD: Add osi_fbsd_checkinuse Add the osi_fbsd_checkinuse function, which contains code common to the FreeBSD osi_TryEvictVCache and osi_VM_FlushVCache. Implement the latter two in terms of osi_fbsd_checkinuse. This commit should incur no behavior changes. This is just a reorganization so future commits can change the implementations of osi_TryEvictVCache and osi_VM_FlushVCache. Change-Id: I42df9d6efb7b573bd933d0bf04924f668a3608da Reviewed-on: http://gerrit.openafs.org/7432 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit dda5cc0c5f7172aa4edf58c0f876c8bf05590889 Author: Michael Meffie Date: Mon Jun 18 17:16:02 2012 -0400 vol: avoid attach retry loops on SYNC_FAILED Avoid unnecessary volume attach retry loops if a volume salvage is unable to be scheduled due to a hard error. Change-Id: If1962b83e03f634044a55b03787661b8a7695008 Reviewed-on: http://gerrit.openafs.org/7566 Tested-by: BuildBot Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear commit e2d094595fd76e76e4a5861114202f513d02c2b1 Author: Derrick Brashear Date: Tue Jun 19 15:11:38 2012 -0400 libafs: put connection in analyze when conn srvr missing we need to putconn in all cases we can in afs_Analyze, but at least one case we didn't. fixed. Change-Id: I4e3b8d9f8e7445e3641fad32ff54dde2d21bb06b Reviewed-on: http://gerrit.openafs.org/7567 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c8e52c1f457a237ec83be0fbe535077d5bccdd51 Author: Simon Wilkinson Date: Wed Jun 20 16:55:25 2012 -0400 tests: Fix cmd config file path Fix the configuration file path for the cmd test so that it works when invoked from runtests Change-Id: Id7d717e163abf5cfab2d551aaf08fb9967a87153 Reviewed-on: http://gerrit.openafs.org/7576 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 3c16a2b296722f548309b10e6744639608c0861b Author: Niklas Jonsson Date: Wed Jun 20 10:03:54 2012 -0400 Auth: increase size of DNS resolver answer buffer This patchset increases the size of the res_search() answer buffer from 1024 octets to 4096 octets. This is not a proper long term solution but will permit sites with longer response lists to make use of SRV and AFSDB records. This patchset only impacts UNIX systems. Windows uses the Win32 DNS resolver which dynamically allocates memory based upon the size of the response. FIXES 130936 Change-Id: I8434e128fb5918839c216209851b37a17cf94065 Reviewed-on: http://gerrit.openafs.org/7575 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 5019ecd5fad0846abcd92835411c7b0f3f2170ca Author: Simon Wilkinson Date: Fri Jun 1 13:20:57 2012 -0400 rx: provide mechanism to send a bare abort packet simply put an abort on the wire Change-Id: I0486e1826da9466a2982ac07c3749876848a7f66 Reviewed-on: http://gerrit.openafs.org/7562 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4660b53e69fd65ba961e62bed1a1c126e375011c Author: Simon Wilkinson Date: Tue May 15 16:45:57 2012 +0100 opr: Add simple time type Add a simple time type to the opr library, which provides helper routines to implement the 100ns time format selected for on-the-wire use for AFS-3 (this also provides a handy single integer internal time format) Change-Id: I1f2d81e61a3e4124e0dd49830a115b72d7a7b37f Reviewed-on: http://gerrit.openafs.org/7559 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit ba300e35a5c17730dabde735385222d7e12a4bbc Author: Simon Wilkinson Date: Sun Jun 10 11:43:56 2012 +0100 viced: Abstract out peer mapping code Pull the code which gets the peer information for an incoming connection into its own function. Reformat this function a little to avoid if-ladders. Change-Id: I4a48e0079f00cca4fe651161fb19453f63527336 Reviewed-on: http://gerrit.openafs.org/7561 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fa1f2687aff79469d521bdef7b23a253a1e62756 Author: Simon Wilkinson Date: Sat Jun 9 22:29:44 2012 +0100 viced: Tidy up VL initialization Tidy up the routines which initialize the VL server so that they don't reopen an already open configuration directory, and so that some global variables are less globally scoped. Change-Id: I7e83073b2d984203e03133e94da4ec875d1b8472 Reviewed-on: http://gerrit.openafs.org/7560 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ed02c6ff8a4bc2cc82876a4b1736a8985548a71c Author: Simon Wilkinson Date: Wed May 30 18:25:51 2012 +0100 rxgen: Make input strings const Modify the code generation routines so that string inputs to RPCs are declared as (const char *) on the client side. This doesn't affect callers as we can freely cast from (char *) to (const char *), but means it is easier to write API wrappers that accept const arguments. Change-Id: I4719d04f03bd76cbe7ee21ad7511f6f3b3d36163 Reviewed-on: http://gerrit.openafs.org/7556 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9b97b80dd8d29278de209fcecfdfd95a46863eb8 Author: Simon Wilkinson Date: Thu Jun 7 23:21:48 2012 +0100 aklog: Fix error message fallback for Heimdal Since we reverted to using Russ's upstream version of rra-c-util's krb5.m4, we no longer check for the existence of the pure com_err error_message(). So, for error message fallback on Heimdal, use krb5_get_error_message() instead. As we don't have access to the context in which the error occurred, build one to get the raw com_err error translation - this won't give us any additional context specific detail. Change-Id: I4bab080704ec5d08e8b85e6b7ad69cf1f89bf3b3 Reviewed-on: http://gerrit.openafs.org/7554 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 5db615100afd97233550abfe19625ac7ee7dbc5f Author: Simon Wilkinson Date: Fri May 11 00:34:24 2012 +0100 viced: Abstract out hpr thread context code Every hpr lookup function had a copy of the same code to pull a thread specific ubik context out of the pthread library, and to create one if one wasn't already there. Instead of endlessly repeating this code, create a small inline function to do the job. Change-Id: I7eac0eaebbd42978e40c90f0ce59b26f2e67d96d Reviewed-on: http://gerrit.openafs.org/7558 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit c855dd726a6f2681bf51a9596ec600a8cc88fb59 Author: Simon Wilkinson Date: Thu Jun 7 20:46:27 2012 +0100 rx: Constify rx_opaque_populate rx_opaque_populate doesn't modify the data passed into it, so make that argument const Change-Id: Icc7c121bda43a8abc19f72affc70967baba91e6d Reviewed-on: http://gerrit.openafs.org/7557 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit fac69a5c88f1756aafd283e66a971e389dc8a62c Author: Simon Wilkinson Date: Tue May 15 17:01:50 2012 +0100 viced: Remove unused profiling code src/viced/profile.c is never built, and contains unused code which is now useless to us. Just remove it from the tree - it is in git if we ever need it again. Change-Id: I04da5395f5c4a618968958f1696f638e0db69122 Reviewed-on: http://gerrit.openafs.org/7555 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit a08604b78f82ae2adf57b7a30bd8c80a11223b0d Author: Derrick Brashear Date: Tue Jun 12 14:23:12 2012 -0400 uss: allow disabling by configure switch provide an option to disable building uss. current heimdal when built static can leak symbol names for its flex/bison parser causing symbol conflicts. this is but a workaround, but sites not needing uss can at least use it. Change-Id: Ibab1dd189e7fbc41ca01e7ef7479421c056999f5 Reviewed-on: http://gerrit.openafs.org/7553 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5d53c12b95c6ffac6c00e4fec6138a51b6185dd7 Author: Derrick Brashear Date: Tue Jun 12 14:10:04 2012 -0400 gtx: add configure switch to force not building allow gtx and associated software to be turned off. Change-Id: If02427311c79e0784fcc5fb1816a449f7dcdd879 Reviewed-on: http://gerrit.openafs.org/7552 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6d3390bc16281e6f889bb555abb1182985556287 Author: Derrick Brashear Date: Tue Jun 12 13:46:46 2012 -0400 aklog: can't assume krb5_524_conv_principal based on convert_creds add probing for krb5_524_conv_principal directly instead of assuming finding a 524 library will find it. current heimdal does not include it. Change-Id: Iea523e3e7ba4cb51ec5a0d4b38fec9c7df30529d Reviewed-on: http://gerrit.openafs.org/7551 Tested-by: BuildBot Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 3e0eaec61e1df9341ca67b902a5ec86a863a3423 Author: Derrick Brashear Date: Mon Jun 11 16:37:53 2012 -0400 viced: fix GetVolumePackage to not bomb always when GetClient called master only. already correct in 1.6. the gotos for error exit should be called only when we have an error, due to missing braces that was not true Change-Id: I396be7d34ad741e01634a702784a0892f47a2d5a Reviewed-on: http://gerrit.openafs.org/7549 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear commit 3770ffe41689bc5b37795f23b0d4f3de4bc0619a Author: Derrick Brashear Date: Mon Jun 11 16:05:10 2012 -0400 viced: fix merge error when 37fc2dfbb9e3a8a8ecb022febae7ccd04d7340a4 was merged, the close bracket went in the wrong place, meaning for non-remote calls we don't re-enable keepalives. fix it. Change-Id: I163db9b3b2f42f629d8a5ff22a75902a61a3138b Reviewed-on: http://gerrit.openafs.org/7548 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Simon Wilkinson Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear commit 4f9c3f2be9abd5548dd52888b49c407d574b6557 Author: Andrew Deason Date: Thu May 31 17:45:56 2012 -0500 vol: Avoid getting stuck in ATTACHING in attach2 Since commit 5fc2365f, a VNOVOL error early in attach2 meant that we skipped changing the volume state to anything, and just returned instead. When we do this, the volume is in VOL_STATE_ATTACHING for DAFS, and so if we return, the volume will forever be in VOL_STATE_ATTACHING. The next thing that tries to access the volume will wait forever for the volume to come out of that state. So, revert half of 5fc2365f, and transition to ERROR state instead. This code path should not be hit during normal usage, since a nonexistant volume access for the fileserver will be detected earlier. If the volume does not appear to exist at this stage of attachment, something is wrong with the volume, so this warrants the ERROR state. For the volserver and other volume utilities, we may hit this when a request just plain references a nonexistant volume for whatever reason, but in that case the vp should go away soon. For non-DAFS, this commit does not change much, since the difference between error_notbroken and unlocked_error is very small. The other half of 5fc2365f is not changed, since it is correct. For VOFFLINE errors at this point, the volume has already been transitioned to VOL_STATE_UNATTACHED, so it is okay to return. Add a comment to help make this more explicit. Change-Id: I63853f6e1721020cd204639c6e3ce4b59de08f75 Reviewed-on: http://gerrit.openafs.org/7516 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a43f0e4717fd72727ae325eb4437cef065419cdd Author: Andrew Deason Date: Thu May 31 16:41:15 2012 -0500 DAFS: Preattach, not attach, in FSYNC_Drop FSYNC_Drop currently attaches volumes that were checked out by the dropped fssync handler, but not checked back in, in order to make the volume available again. For DAFS, however, a full attachment is unnecessary; just preattach instead. Change-Id: I2c9d0b8cf0ddc7f4182347706b2c26d86f69725e Reviewed-on: http://gerrit.openafs.org/7515 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fff80cb1983a8cf7ccf1c1dc4f69e232785700c5 Author: Andrew Deason Date: Thu May 31 16:15:33 2012 -0500 vol-salvage: Unlock volumes before exiting Normally, volume locks acquired by an exiting salvaging process would be automatically given up when the process exits, since our FDs are closed. However, if we exit by calling Exit() or Abort(), we gracefully shutdown our SYNC channels before exiting. For FSSYNC, this can result in the fileserver trying to online the volumes we had checked out but had not yet checked back in, so the fileserver may try to online a volume we have locked, before the locks have been released. To avoid this, unlock all volume locks for all partitions before we shutdown SYNC channels on exit. Change-Id: Idcda5fcf4639da7d4b951bea36606ea8daf68f3c Reviewed-on: http://gerrit.openafs.org/7514 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 80359f562a459ef1dba2cdf53ee486578b50752d Author: Andrew Deason Date: Thu May 31 16:08:00 2012 -0500 vol-salvage: Indent some ifdefs Change-Id: I213859d35ba4908e088a0ba2117f527ab8db3dc8 Reviewed-on: http://gerrit.openafs.org/7513 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9bb876f6829f137e534b961f7374b310bfa8aa7d Author: Derrick Brashear Date: Fri May 25 09:40:54 2012 -0400 libafs: initialize free dcache list for memcache reuse the disk cache dcache creation code for memcache, then call it to prime the list Change-Id: If63268aa1a89c9642236f944e1ac8328d68aeba5 Reviewed-on: http://gerrit.openafs.org/7446 Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit a8e35e9fd7b24b6d8523a3ac9da0f77c84423ef9 Author: Derrick Brashear Date: Fri Jun 8 19:52:33 2012 -0400 viced: clear optstring before parsing we try to free the string if there was a value, so if there's none we should probably ensure we know it Change-Id: I20fc535e56d65c82f26852ba59528d5660c98e20 Reviewed-on: http://gerrit.openafs.org/7546 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 7273c8b4ae123ce555dde3bee7b9878c59ad1805 Author: Derrick Brashear Date: Fri Jun 8 16:12:17 2012 -0400 cmd: avoid issues with static heimdal stealing the krb5 parser and linking with static heimdal can cause problems. remap things we have which duplicate heimdal's private namespace. Change-Id: I89030967a32997f00a21e97258056c26f2a4cbf6 Reviewed-on: http://gerrit.openafs.org/7545 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 5227148ae17949705487ea673d558ebfe143e635 Author: Marc Dionne Date: Sat Jun 2 21:35:53 2012 -0400 Linux 3.5: encode_fh API change The encode_fh export operation now expects two inode arguments instead of a dentry and a "connectable" flag. Use the inode of the dentry we're interested in, and NULL as the parent inode which is the same as passing a 0 flag in the previous API. Change-Id: I05cf146fb2a4bacdca20a9f108d04ccb11530804 Reviewed-on: http://gerrit.openafs.org/7523 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit bc3a32a84facb8114a8c7de87025f972d0281098 Author: Marc Dionne Date: Sat Jun 2 20:45:08 2012 -0400 afsd: include sys/resource.h in afsd_kernel.c With a recent glibc update, sys/wait.h no longer includes sys/resource.h unless __USE_SVID, __USE_XOPEN or __USE_XOPEN2K8 are set. Don't rely on the indirect inclusion to get the bits we need; include it directly in afsd_kernel.c. This include used to be there but was dropped when afsd_kernel.c was split off. Change-Id: I1bfd2e0c340e15ca44472aa89614f088e0c0ce0c Reviewed-on: http://gerrit.openafs.org/7522 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0d2c1dfd5510e9c84cb3b56c00370f0fc114e87b Author: Jeffrey Altman Date: Tue Jun 5 23:25:08 2012 -0400 windows: AFSQueryVolumeInfo exception info Protect against NULL FileObject or ObjectInformation. Log additional information when an exception is caught in AFSQueryVolumeInfo. Change-Id: I6111345e53edc641f4d809839c1666f7a11a93d3 Reviewed-on: http://gerrit.openafs.org/7525 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 371af87a23b61187ca9d54c8e6819f2121fbf1db Author: Jeffrey Altman Date: Tue Jun 5 23:07:40 2012 -0400 Windows: SMB GetFileAttributes support commit 56a2cbb5fbdcab51bd5f4720e610796abbce5c41 added a GetFileAttributes query to the pioctl interface to protect against printing pages on printers with a broken smb protocol implementation. This patchset adds support for GetFileAttribute on _._AFS_IOCTL_._ files to the SMB implementation. Change-Id: I9d60dc77b7048892eb816e9d1c6e94033711ae7b Reviewed-on: http://gerrit.openafs.org/7524 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6e704d967334a3f990e2ba1c758e4f054234e97e Author: Jeffrey Altman Date: Sat May 26 19:16:47 2012 -0400 Windows: Introduce AFSFreeExtent() Consolidate all operations necessary to free an extent in a single function, AFSFreeExtent(). Change-Id: Id0edd2009136c49cbafb9374e373749d6a906d40 Reviewed-on: http://gerrit.openafs.org/7521 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit cee6a383d3d1732e78827c839ee9513847e03aa6 Author: Jeffrey Altman Date: Sat May 26 18:11:06 2012 -0400 Windows: Adjust extent release strategy All extents were flushed whenever AFSReleaseExtentsWithFlush was executed. This included a call at the completion of each NonCached Read operation which could result in heavy thrashing as the data would be released prior to it being needed by the application. This patchset makes the following adjustments. First, AFSReleaseExtentsWithFlush() has been modified to release all but 1024 extents belonging to the file. Second, NonCached Reads only execute AFSReleaseExtentsWithFlush() when there are more than 4096 extents associated with the file. Third, AFSReleaseExtentsWithFlush() now has a 'bReleaseAll' parameter which is used for calls from AFSCleanup() and AFSFlushExtents() which need to be able to flush all extents attached to a FCB. Change-Id: Id8b05f02c59eb46b1881e4d905a511a2597455e8 Reviewed-on: http://gerrit.openafs.org/7520 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5335f77bd56b7a94fd0225477fe7b7a707df86b7 Author: Jeffrey Altman Date: Sat May 26 18:09:30 2012 -0400 Windows: AFSRedir code cleanup Remove unnecessary intermediate variables. Do not drop lock only to reacquire. Formatting. Change-Id: I7396047f30ee81755927b90a7b3f990d481d8d3e Reviewed-on: http://gerrit.openafs.org/7519 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ed0eb70f36121ca5cacbf0b87ab9d05bfbb526b8 Author: Jeffrey Altman Date: Sat May 26 18:06:07 2012 -0400 Windows: Remove extent from all skip lists Before freeing the memory for an Extent object, the extent must be removed from all of the extent skip lists. Otherwise, the lists will be corrupted. Change-Id: I891321477b9f0e194544e9e73dad53473f0865b4 Reviewed-on: http://gerrit.openafs.org/7518 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c5f32b315982bf23f33d0395f404fe93563f0b8d Author: Jeffrey Altman Date: Sat May 26 18:04:25 2012 -0400 Windows: consoldiate NextExtent() implementations Both AFSExtentsSupport.cpp and AFSIoSupport.cpp provided NextExtent() implementations. The AFSExtentsSupport version was more general. Use that one for both modules. Change-Id: I19d17c989b4eadd40dcbb3d6d4186c316c26577e Reviewed-on: http://gerrit.openafs.org/7517 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e94b2338691d9450749e5f3e51f85e99f90b4bea Author: Jeffrey Altman Date: Sun May 27 11:20:11 2012 -0400 Windows: Protect against null volp dereference In cm_RecycleSCache cm_GetVolumeByFID can fail leaving 'volp' a NULL pointer. Do not call cm_PutVolume() if cm_GetVolumeByFID fails. Change-Id: I57eaf5d40130ecad75a312ef5487cdfa6e7367e3 Reviewed-on: http://gerrit.openafs.org/7506 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ce8d0aefd1a6915df281ec2551b3f090c2a3b322 Author: Jeffrey Altman Date: Fri May 25 21:47:23 2012 -0400 Windows: Avoid deadlock on ProcessTree Lock Change-Id: I2c1be0df615c513eefc27be167d7acda113c06e2 Reviewed-on: http://gerrit.openafs.org/7505 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 25948ccbc369087958d2159fb7dd995c21c92b20 Author: Jeffrey Altman Date: Thu May 24 20:46:27 2012 -0400 Windows: Add CCB NonPaged Resource for synchronization Add a NonPaged ERESOURCE object to the AFS_CCB structure for use in synchronizing access to the Ccb->Flags field and the construction of Directory Snapshots. Change-Id: I10ecc95619d0e5bd1ca02b044c2f1541a1b9a9f0 Reviewed-on: http://gerrit.openafs.org/7478 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fffce9aee4c7c93e140eb56e449f9a9ff6345659 Author: Jeffrey Altman Date: Thu May 24 20:45:07 2012 -0400 Windows: Make CCB_FLAGS_DIRECTORY_QUERY_MAPPED consistent Use CCB_FLAG_DIRECTORY_QUERY_MAPPED instead of CCB_FLAGS_DIRECTORY_QUERY_MAPPED. Change-Id: I504b8fda9867a82e5b45d5a1905970a1de11fc27 Reviewed-on: http://gerrit.openafs.org/7477 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 611436eaec4db67a856b0617c00224d4359d804a Author: Jeffrey Altman Date: Thu May 24 17:47:25 2012 -0400 Windows: Remove unused async read/write operations Removing dead code. Change-Id: I60f3f098a3afb922143941f59b0146eebf60ac84 Reviewed-on: http://gerrit.openafs.org/7476 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 06a602bfd40661ef89b3d6b39dd8574015a15b92 Author: Jeffrey Altman Date: Thu May 24 04:57:19 2012 -0400 Windows: Avoid deadlock on VolumeCB->VolumeLock AFSPrimaryVolumeWorkerThread() holds VolumeCB->VolumeLock SHARED across the call to AFSCleanupFcb() -> CcPurgeCacheSection(). If a filter driver such as Sophos (savonaccessfilter.sys -> savonaccesscontrol.sys) triggers an AFSCreate() in response to the cache section being purged that will force the evaluation of the file path by AFSLocateNameEntry(). If the path contains a mount point that requires validation, AFSBuildMountPointTarget() is called which in turn required the VolumeCB->VolumeLock EXCL. AFSBuildMountPointTarget() only requires the VolumeCB->VolumeLock if the VolumeCB->RootFcb == NULL. That should only be true if the VolumeCB was allocated by AFSInitVolume() or under very rare race conditions. This patchset refactors AFSInitVolume() to ensure that it holds an extra VolumeCB->VolumeReferenceCount reference. This reference is used to assist in the refactoring of AFSBuildRootVolume() and AFSBuildMountPointTarget() to avoid races with volume root object invalidation as well as permitting the VolumeCB->VolumeLock to be ignored in the common case. Avoiding the acquisition of VolumeCB->VolumeLock during mount point target evaluation has the additional benefit of reducing lock contention during path evaluation. FIXES 130812 Change-Id: Id9b0dcc2bfd91277d522f3724893b60ce4d947f5 Reviewed-on: http://gerrit.openafs.org/7474 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 02018d729f3d1b1177ee271d566b8acba488a515 Author: Marc Dionne Date: Mon May 28 21:49:46 2012 -0400 gtx: remove unused variable numBuffBytes Commit 9efc255a makes the numBuffBytes variable unnecessary. Remove it to clear up an "unused but set" warning. Change-Id: Ifc50c40542e008d76007c76a9ce146fe6ebab4be Reviewed-on: http://gerrit.openafs.org/7504 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 2b33384a4a7b88842281021129ffccc837d91d36 Author: Marc Dionne Date: Mon May 28 21:43:12 2012 -0400 Linux 3.4: replace end_writeback with clear_inode end_writeback() is renamed to clear_inode(). Add a configure test and cope. Change-Id: Icaf5b6b54d0ee377fabcf0b295d690eaa6b4be5e Reviewed-on: http://gerrit.openafs.org/7503 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 85626606e9ad0aac2c513de56215362b4672acf8 Author: Garrett Wollman Date: Thu May 24 22:33:04 2012 -0400 afsd (FUSE): Avoid a compilation error and spell it "asprintf" not "asprint". Change-Id: I126e9c57877e4969af68dcc4ec1fd1786ecfbd4e Reviewed-on: http://gerrit.openafs.org/7479 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 0e81db38b549d79a3af5fce0f9f8fa48d9e6efeb Author: Andrew Deason Date: Fri May 18 17:40:38 2012 -0400 afs: Do not QueueVCB before osi_dnlc_purge* In afs_FlushVCache, when we QueueVCB, we might drop the afs_xvcache lock (as of 76158df491f47de56d1febe1d1d2d17d316c9a74). The vcache may still be on the DNLC, so a lookup while xvcache is dropped can cause someone else to grab a reference to the vcache while it is being flushed. This can cause panics and failed assertions, since someone will have a reference to the flushed vcache, which is effectively freed and many of the structure fields are no longer valid. So instead, do not call QueueVCB until we have purged the vcache from the DNLC. Change-Id: Ia6b51b4a2bb26903346217fbd6fc7d959d87eae7 Reviewed-on: http://gerrit.openafs.org/7430 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 7b35b409a484772989bb76633232b6e1d4f9bcc5 Author: Michael Meffie Date: Tue May 22 11:45:50 2012 -0400 fix audit init in vl and pr servers Correct error introduced in commit 0dd7c980acda0756150f11992a0d2236f340e0c2 Change-Id: I929bb35a6a7070d637f1b332dae50cd182aaf9c5 Reviewed-on: http://gerrit.openafs.org/7447 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear commit 40123db55ec36e8f5536db749e0a935141de74c7 Author: Simon Wilkinson Date: Thu May 17 13:28:51 2012 +0100 comerr: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it is unnecessary noise. Change-Id: Idc5f098a20809a5f869c4ea9f3970e598520c0e9 Reviewed-on: http://gerrit.openafs.org/7468 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 519d2cd5d8bb2bc1d2e315b8fea9616504674c79 Author: Simon Wilkinson Date: Thu May 17 13:33:33 2012 +0100 Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it is unnecessary noise. Change-Id: Ie328ebd2d31160bf07b86b760fbb5ce7108a532d Reviewed-on: http://gerrit.openafs.org/7473 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 152bda64c662f719b167d05c0489ce4cb6e65c36 Author: Simon Wilkinson Date: Thu May 17 13:32:28 2012 +0100 util: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it is unnecessary noise. Change-Id: I8287709413fe0e34f417936d1fc64c421fea6d28 Reviewed-on: http://gerrit.openafs.org/7472 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1c734bd7e59b0e2b1f79dbd9b203de1ecb921f3c Author: Simon Wilkinson Date: Thu May 17 13:31:53 2012 +0100 update: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it is unnecessary noise. Change-Id: I6a33ab25b092faa96c764f0a469d052c181344ee Reviewed-on: http://gerrit.openafs.org/7471 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 695e3a028e1257e1a1460205eba3fc7a837c5b41 Author: Simon Wilkinson Date: Thu May 17 13:31:07 2012 +0100 sys: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it is unnecessary noise. Change-Id: I58b7695e3cf4b99f17869a46e1efca5c7daf6ff7 Reviewed-on: http://gerrit.openafs.org/7470 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e33f1dc0b6ec497133903918f1918adfa46f10ea Author: Simon Wilkinson Date: Thu May 17 13:29:42 2012 +0100 xstat: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it is unnecessary noise. Change-Id: Iaddc6c44041dc77a576f32133b2aa80aefce5cb2 Reviewed-on: http://gerrit.openafs.org/7469 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 900f7cc5f7c0b35a8efebc6c7166efa7625a0493 Author: Simon Wilkinson Date: Thu May 17 12:33:28 2012 +0100 lwp: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it is unnecessary noise. Change-Id: Ie41f7b831f0ba70796649e2493e014fe44f1c39e Reviewed-on: http://gerrit.openafs.org/7467 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3613d41515438a5615c3ffcdde5616c5f4e1c6ae Author: Simon Wilkinson Date: Thu May 17 12:31:39 2012 +0100 rx: Don't cast returns from allocator malloc() and osi_Alloc both return (void *). So, don't bother casting the return value before assigning it - its unnecessary noise. Change-Id: I71a66a8fa0d9f49f4833dd77bbb55422e6f20d6f Reviewed-on: http://gerrit.openafs.org/7466 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 56e350b8559cbc16ee9087dd8ada47fe9a9d79f2 Author: Simon Wilkinson Date: Thu May 17 12:29:51 2012 +0100 auth & [ak]log: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it's unecessary noise. Change-Id: I270b81c239afb9ac4bd8121adfd5a48fcfac9c3b Reviewed-on: http://gerrit.openafs.org/7465 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b0ccfea010df0c38f1e53efe384b9e2a29fed40a Author: Simon Wilkinson Date: Thu May 17 12:28:41 2012 +0100 afsmonitor & gtx: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it's unecessary noise. Change-Id: I74b1f3ba3000ecaeb3da8eb3201f6050c9972c4e Reviewed-on: http://gerrit.openafs.org/7464 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cbdf31d9fff7be2bd99142a7c6ee7b04b96942fc Author: Simon Wilkinson Date: Thu May 17 12:26:37 2012 +0100 dbservers: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it's unecessary noise. Change-Id: I5a7c800e2836e7401f5f8bccf1aa2a1b223100b7 Reviewed-on: http://gerrit.openafs.org/7463 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4d96d0d5e4f21e208be60df53216ff7b113f4b87 Author: Simon Wilkinson Date: Thu May 17 12:21:57 2012 +0100 libadmin & uss: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it's unecessary noise. Change-Id: I9a3387c07c6ee02efbaa1ec0035fcea8691f171c Reviewed-on: http://gerrit.openafs.org/7462 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0df1f0023a4aef7126c031e2e30990446093ac7e Author: Simon Wilkinson Date: Thu May 17 10:52:46 2012 +0100 fileserver & friends: Don't cast from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it's unecessary noise. Change-Id: I9d41f2f1aee03d9317b4c5780fb00e13d30b0821 Reviewed-on: http://gerrit.openafs.org/7461 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ca48be9161cacf5c301379a17c4d7be70a78642c Author: Simon Wilkinson Date: Thu May 17 10:18:24 2012 +0100 backup: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it's unecessary noise. Change-Id: I6a878d53007e27179c11d8f745b09dacade4c83d Reviewed-on: http://gerrit.openafs.org/7460 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0cf3c58d807d74d8ee1b4692a936079fb767412c Author: Simon Wilkinson Date: Thu May 17 10:03:16 2012 +0100 bos: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it's unecessary noise. Change-Id: If6f0dbc00b31f5d9a1622984c6ac9eba83c04900 Reviewed-on: http://gerrit.openafs.org/7459 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 25bc7849caf855b08a69b1701db089b1da9b506b Author: Simon Wilkinson Date: Thu May 17 09:37:50 2012 +0100 JAVA: Don't cast returns from malloc() malloc() returns a (void *) on all of our current platforms. So, don't bother casting the return value before assigning it - it's unecessary noise. Change-Id: I534d424da13e03d3c0f0de3dddf1dd19088d1659 Reviewed-on: http://gerrit.openafs.org/7458 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cfcb45d4aeda972cd1dd18044fa791e61dc6163d Author: Simon Wilkinson Date: Thu May 17 09:19:03 2012 +0100 Unix CM: Don't cast allocator returns All of our allocators return (void *) values, so there is no need to cast the returns - doing so is just noise. Change-Id: I6b1009efbb5034225a4af0e19d03b74c628dfb82 Reviewed-on: http://gerrit.openafs.org/7457 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9547615445ccbe07d8f6d7baeb7fd0315354fce0 Author: Simon Wilkinson Date: Thu May 17 09:10:03 2012 +0100 Don't cast the return from calloc() calloc returns a (void *) argument. So we don't need to cast its output before storing it. Change-Id: Ibdfc61a8a2cf9779a0bfb17ff8ebf1f3bef3ea0e Reviewed-on: http://gerrit.openafs.org/7456 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit bdd8187c040ac3898fe5ae4429b5408f04c685d1 Author: Simon Wilkinson Date: Thu May 17 09:01:02 2012 +0100 Don't cast the return from realloc() realloc takes, and returns a (void *) argument. So we don't need to cast these parameters into, or out of, realloc. Doing so is just noise, so don't bother. Change-Id: I64e721703536515b2e315e3b033eb2be14f7e18c Reviewed-on: http://gerrit.openafs.org/7455 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9efc255ab8de7ad90c7d599fea7bd1956bfd48c2 Author: Simon Wilkinson Date: Thu May 17 08:36:11 2012 +0100 Use calloc, rather than malloc/memset Rather than doing a = malloc(sizeof(me)); memset(a, 0, sizeof(me)); Just use a = calloc(1, sizeof(me)); This is simpler, shorter, and removes the potential for the size of the memset not matching the size of the malloc (or the target of the memset being wrong!) Where the size is of the form (n * sizeof(me)), we also use calloc(n, sizeof(me)); Change-Id: Ia0f75665c1031fd2982eee0e1d8c8ebe23d7fbc0 Reviewed-on: http://gerrit.openafs.org/7454 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d142c8f97afb5bb3e1bb5bd31a53ed1dade2fd3b Author: Simon Wilkinson Date: Wed May 16 20:38:02 2012 +0100 Don't cast arguments to free() free(3) is defined as: void free(void *ptr); so there is no need to cast the pointer argument being past to it to (char *), (void *), or whatever other randomness happened to be floating through the author's mind. Remove all such casts, as they are just noise. Change-Id: Ib7c8c259d53e9ce74fc486cb0997360044795395 Reviewed-on: http://gerrit.openafs.org/7453 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8961793dbbae2f8b213372906a281dc38c77186c Author: Simon Wilkinson Date: Wed May 16 20:27:22 2012 +0100 auth: Simplify DNS lookups with asprintf Instead of allocing a maximal string, and using snprintf to construct each possible DNS search string, just use asprintf to construct each string. This greatly simplifies the code, and makes it much less likely that maths errors can creep in causing buffer overflows in the future. The downside is that we have more round trips to the allocator, but that shouldn't matter in this context. Change-Id: Iae9ab7d45f454c90a937354c71c9ec7fa2c55b69 Reviewed-on: http://gerrit.openafs.org/7452 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 044785d587b15e02855b6c9e396d27db962d867a Author: Simon Wilkinson Date: Wed May 16 20:23:41 2012 +0100 Use asprintf for string construction Rather than using something along the lines of strOut = malloc(strlen(strA) + strlen(strB) + strlen(strC) + 1); strcpy(strOut, strA); strcat(strOut, strB); strcat(strOut, strC); use asprintf for string construction, so we can just write asprintf(&strOut, "%s%s%s", strA, strB, strC); roken provides an implementation of asprintf for platforms which are missing one. Change-Id: Ieef9f4b65f72260c0d372cdf3865daab98733ad9 Reviewed-on: http://gerrit.openafs.org/7451 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit bd1248ca3988edb230174ff34c3ff79bedcf559e Author: Simon Wilkinson Date: Wed May 16 06:44:30 2012 +0100 Use strdup to copy strings Where we have newStr = malloc(strlen(oldStr)+1); strcpy(newStr, oldStr); replace these with newStr = strdup(oldStr); It's shorter, clearer, and gets rid of a load of occurences of strcpy, which some compilers are now warning is unsafe (although it isn't in this context) Get rid of a number of custom duplicate string functions and replace them with strdup where the behaviour is identical Change-Id: If800343a7d13b1ba6362d4570a2a324fa3525250 Reviewed-on: http://gerrit.openafs.org/7450 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 47e12584804b287051552900c94c99a3c84daa92 Author: Andrew Deason Date: Mon May 21 18:15:58 2012 -0500 afsd: Report fakestat correctly A fakestat value of 1 is for -fakestat-all, and 2 is for -fakestat, not the other way around. Change-Id: Iedfb7b4a5223c809ace5b5f704a671e8523eb53a Reviewed-on: http://gerrit.openafs.org/7445 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 258a092260f3831dbf5ee693724e561b088f35ae Author: Andrew Deason Date: Mon May 21 18:14:16 2012 -0500 afsd: Detect -dcache presence correctly cmd_OptionAsInt will return 0 if the requested option is present and valid. Change-Id: Ie5154648ccb274b04617dcb8cc397ed3aa3d97e6 Reviewed-on: http://gerrit.openafs.org/7444 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9eb924f16c6f3bb06d83ed281317f2ba29473202 Author: Andrew Deason Date: Mon May 21 18:01:49 2012 -0500 afsd: Avoid printing cacheBaseDir for memcache cacheBaseDir is NULL when memcache is turned on; don't print it. Change-Id: Ib75a64767a9027a9eaf0341d0ad543d023cfcad4 Reviewed-on: http://gerrit.openafs.org/7443 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 2e2bc535bd03df86f78b648f78d2d0a95d273fab Author: Andrew Deason Date: Mon May 21 17:11:29 2012 -0500 afsd: Avoid dir interpolation for memcache memcache doesn't make use of fullpn_DCacheFile, fullpn_VolInfoFile, etc. Do not even try to generate these strings for memcache, since cacheBaseDir will be NULL, and so this can cause a segfault on some platforms including Solaris. Change-Id: I0decdb9a8866272adf500125af7edb03c98e6bdc Reviewed-on: http://gerrit.openafs.org/7442 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6f6c799c4ba4d03c6c381738b2db8aafe741ba5e Author: Andrew Deason Date: Mon May 21 12:28:58 2012 -0500 afs: Add some comments explaining 'needvalid' Add some comments to try and help explain the meaning of the 'needvalid' parameter to GetDSlot, added in 1a672914ab050811c99b6307c657630ab9b5c8ee. Change-Id: I4f1c704fa131df07e671f46b1b7575fbf607fce4 Reviewed-on: http://gerrit.openafs.org/7429 Tested-by: Andrew Deason Reviewed-by: Derrick Brashear commit cfae6cda3fe1efa8703ece3e6a8118f76e6c5411 Author: Andrew Deason Date: Mon May 21 12:22:24 2012 -0500 Revert "afs: the assert seems to be inverted when using memcache" This reverts commit bc7f10130f7b96923d1a1ad5c688ef0106a83178. Change-Id: Ie4f4a103177f0485fc1196acfe4203ce06b6ce15 Reviewed-on: http://gerrit.openafs.org/7428 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit bc7f10130f7b96923d1a1ad5c688ef0106a83178 Author: Chas Williams (CONTRACTOR) Date: Thu May 17 20:57:38 2012 -0400 afs: the assert seems to be inverted when using memcache needvalid will always be 1 for the memory cache -- i.e. the slots are always valid. see change id I53ea6e99649e4d6d5cbde58929dfcee1d45a3e7b. Change-Id: Id1294d54cb5f20d226258e5da39fb4d4f782a694 Reviewed-on: http://gerrit.openafs.org/7421 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 33eff6597facc01bbcd5266fb83c8a6bfa40dfa8 Author: Mark Vitale Date: Tue May 8 15:03:46 2012 -0400 vos: volume lock not released on convertROtoRW error If an error occurs during convertROtoRW, the volume lock may not be released. Change-Id: Ic03af00676de836cade4e39a743b234a0dc9b6cf Reviewed-on: http://gerrit.openafs.org/7389 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 38ebd79bafee3c97323aa603906d1d5f279ec450 Author: Mark Vitale Date: Tue May 8 14:45:16 2012 -0400 vos: convertROtoRW does not respect volume lock vos convertROtoRW was not checking the return code from ubik_VL_SetLock(). Change-Id: I651c543f9a0070a9d34d9cca7583437e50e95dc8 Reviewed-on: http://gerrit.openafs.org/7388 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 3a7dbe331580e418d1bdd5d75769512bb5e38cee Author: Jeffrey Altman Date: Fri May 18 16:31:19 2012 -0400 Windows: avoid deadlock TreeLock vs Fcb Resource Cannot call AFSPerformObjectInvalidate directly because ObjectInfoCB->Specific.Directory.DirectoryNodeHdr.TreeLock is held during the sequence AFSVerifyEntry->AFSValidateDirectoryCache->AFSVerifyDirectoryContent and AFSPerformObjectInvalidate requires the Fcb->NPFcb->Resource which must be held prior to the TreeLock. Change-Id: I337f52e2927c8e5ae2d218867987625c3240a792 Reviewed-on: http://gerrit.openafs.org/7423 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 564c9733e5f1f1bd2417063e3ccd8228ca763a2e Author: Jeffrey Altman Date: Fri May 18 10:19:13 2012 -0400 Windows: buf redir queue mgmt scp can be null buf_InsertToRedirQueue, buf_RemoveFromRedirQueue, and buf_MoveToHeadOfRedirQueue can be passed a NULL cm_scache_t pointer. If the pointer is NULL (as is the case during buf_Init() processing) the scp->redirMx must not be obtained or a crash will occur. Change-Id: I157091afd973a8b4789976c42de253831a2698a3 Reviewed-on: http://gerrit.openafs.org/7422 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e04f324b5dc87391d9fc08820a4ff22b7dda84c3 Author: Jeffrey Altman Date: Wed May 16 09:52:00 2012 -0400 Windows: Apply MAX_FID_COUNT to AFS Redirector Provide consistency between the SMB path parser and the AFS redirector path processing by using the same constant, MAX_FID_COUNT, for both. MAX_FID_COUNT is the maximum number of unique file ids that can exist in a path after all mount points and symlinks have been expanded. The current value is 512. Change-Id: Ife1a29ce7c064c986589bc9e2836899864da2f76 Reviewed-on: http://gerrit.openafs.org/7412 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 94f96c6aae142478bf0824e7c3a3a810494a123d Author: Jeffrey Altman Date: Mon May 14 11:11:57 2012 -0400 Windows: AFSTearDownExtents may experience active extents If there are extents with a non-zero ActiveCount when AFSTearDownExtents() is executed, it must leave them alone and attached to the File Control Block. This has implications for its callers, especially AFSCleanupFcb() since it may be the case that a Cleanup cannot be completed. The AFSPrimaryVolumeWorker thread must therefore check after calling AFSCleanupFcb() whether or not the Fcb ExtentCount is zero before calling AFSRemoveFcb(). Change-Id: I164dbe24d2bfe69aba0fcb5d845f66415d5bb0c3 Reviewed-on: http://gerrit.openafs.org/7406 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a9a768fb7ac06c887c45f6ed144c312fe357ab1e Author: Jeffrey Altman Date: Tue May 15 23:27:36 2012 -0400 Windows: avoid duplicate work cm_Analyze During VNOVOL processing, if the volume is replicated and the server reference status is "not busy", set the status to busy and avoid calling cm_SetServerBusyStatus() because that function mirrors the loop that is already being processed. Change-Id: I1c92fd02fecc92c3dcd94a33eb87fe5c2fa254ae Reviewed-on: http://gerrit.openafs.org/7411 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9a728fd86c7add13e15dfa0d3062fa94cc77c53f Author: Mark Vitale Date: Tue May 8 10:01:12 2012 -0400 vos: convertROtoRW may create two RW volumes If the RW volume is listed after the RO convert target in the VLDB, the code failed to detect that an RW is already present and would create a second RW volume. Change-Id: Ia77004214c4d1b18699b5527bc1fc928e8e1143d Reviewed-on: http://gerrit.openafs.org/7385 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 97581f751024527d1090566f2d59fd1b14235b67 Author: Jeffrey Altman Date: Tue May 15 00:23:17 2012 -0400 Windows: init section ptrs for pioctl files FIXES 130783 Change-Id: I809d21d5d30727172d6e1026d99b32466fcc74c6 Reviewed-on: http://gerrit.openafs.org/7407 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ac08a0c30d1b8f4f5f13a6e78b86d32e2cb34f65 Author: Jeffrey Altman Date: Mon May 14 00:12:17 2012 -0400 Windows: Redir Ioctl thread safety A crash dump showed that it is possible for a Cleanup to race with a Read from the ioctl file. Add reference counting to protect against crashing under such a circumstance. Change-Id: I5dada2b5855603807b48a191db46ff48043c1997 Reviewed-on: http://gerrit.openafs.org/7405 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a160606616cae6e047d97d4e86f075ebe8c2e366 Author: Jeffrey Altman Date: Fri May 11 19:24:54 2012 -0400 Windows: Permit Media Player to work with mapped drives Windows Media Player was failing to play media files from mapped drives if the mapping was to a directory several levels below \\afs\cellname\. The code to permit SUBST drive letters to work got in the way during NPGetConnection processing. Try to get the connection info without the drive substitution logic. Try again with the drive substitution if the result is no connection present. FIXES 130757 Change-Id: I0c2037d1d8f4c6cf82fbff7d4baee995b5124b39 Reviewed-on: http://gerrit.openafs.org/7402 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit dfceff1d3a66e76246537738720f411330808d64 Author: Michael Meffie Date: Thu Feb 23 12:34:44 2012 -0500 volser: preserve stats over reclones and restores Optionally, preserve the volume usage statistics instead of clearing them during reclone and restore operations. Change-Id: I436b39b129b892912533ddeff5569b07224b075c Reviewed-on: http://gerrit.openafs.org/3312 Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear Tested-by: BuildBot commit e1c6ad7d580041caf35f698c9b2241fb45f02361 Author: Mark Vitale Date: Tue May 8 12:38:38 2012 -0400 vos: convertROtoRW misc error reporting problems Fixes a few inconsistencies and bugs in some error messages. Change-Id: Ic4971c4cc3a3aa3623ee0f13161fd7793d3acb19 Reviewed-on: http://gerrit.openafs.org/7387 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Tested-by: BuildBot commit 0f30c95a03ecf2a964db566fd8c3e96c1bcb6211 Author: Simon Wilkinson Date: Sun Oct 9 01:20:57 2011 +0100 cmd: Add support for pulling options from files With this change, we gain the ability to set our command line options from krb5.conf configuration files. This is only available for tools which are implemented using the new cmd_OptionAs accessor methods. Callers should load their configuration file using cmd_OpenConfigFile("/path/to/config/file.conf"); (an addition to libauth to return a path to a system wide configuration file will be forthcoming) and then set their command name (for example, "fileserver", "afsd", "vos" and so on) using cmd_SetCommandName("mycommand"); The accessor functions will then populate their return values with either: a) The command line options, if specified b) The contents of the tag matching the option name, in the [command_subcommand] section of the configuration file, if it exists c) The contents of the same tag, in the [command] section of the configuration file, if it that exists. d) The contents of the same tag in the [defaults] section of the configuration file. Callers can also gain access to the entire configuration file by calling cmd_RawFile, or to just the section corresponding to their command line by calling cmd_RawSection. Note that when using the file directly, it is up to callers to preserve consistency by implementing similar inheritance rules as the above. Change-Id: Ic501ab296af3638f961486869af79c9ce47b77b8 Reviewed-on: http://gerrit.openafs.org/7135 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit ad347dea3245b84c4478b6a6be01b4031c3c36e0 Author: Simon Wilkinson Date: Thu May 10 16:51:01 2012 +0100 tests: Add additional cmd tests Add additional tests to the libcmd test suite to verify the behaviour of cmd_OptionPresent and cmd_OptionAsList Change-Id: I81a235fb5ee87682c72ca942f1341f77be6fda39 Reviewed-on: http://gerrit.openafs.org/7392 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 0524e0d1915f519a76d62540b695abc16634d4c9 Author: Derrick Brashear Date: Wed Apr 18 11:57:10 2012 -0400 macos: update AFS prefs pane modify afshelper to just run what it's told instead of offering fixed operations. this avoids having a setuid tool around. in spite of apple's suggestion this is correct, it's actually more dangerous. instead, elevate privilege only to run a small set of commands, then drop. allow unlocking of the prefs pane, but make the menu extra prompt for authentication when needed. deactivate controls in the prefs pane when locked. Change-Id: I0e2510efc98605f464e04d26cc8f2ce2bfe116f4 Reviewed-on: http://gerrit.openafs.org/7196 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0debf2d2274db1ea862bfdc2ef767372f1fa77e3 Author: Andrew Deason Date: Fri May 4 17:23:42 2012 -0500 Call rx_SetNoJumbo earlier For ubik server processes, rx_SetNoJumbo needs to be called before ubik initialization for it to effect the communication between dbservers; otherwise, full database transfers may result in Rx jumbograms on the wire regardless of the jumbo/nojumbo setting. Move the call to rx_SetNoJumbo to before ubik initialization to avoid this. Also move the call to rx_SetNoJumbo to immediately after rx_Init* for all server processes, for consistency. Move similar calls to rx_SetMaxMTU for the same reason. Change-Id: Ic79415829601fcfb4e74e72fbf5711d0c32aaa0c Reviewed-on: http://gerrit.openafs.org/7350 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit a2f523b50592e261fe9cd3ef32978e786011c3c7 Author: Mark Vitale Date: Wed May 2 13:55:16 2012 -0400 DOC: vos convertROtoRW security requirements They were copied from another command; corrected them. Change-Id: Ic77f1a91520ec4147e42864438d98942f6a7effc Reviewed-on: http://gerrit.openafs.org/7305 Tested-by: BuildBot Reviewed-by: Michael Meffie Reviewed-by: Ken Dreyer Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit 186158c9eb2379ec350831b8fb244c51ae234a6e Author: Ken Dreyer Date: Fri Mar 16 13:37:20 2012 -0600 doc: add Windows section to fs newcell fs newcell works slightly differently on Windows. Document the differences in the man page. FIXES 125094 Change-Id: I3fb71ebb28290222069d795762f50a82f3fb6495 Reviewed-on: http://gerrit.openafs.org/6919 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit ecfd9549fc29cdad8042e830c656caee1363c6cf Author: Andrew Deason Date: Thu May 3 16:36:03 2012 -0500 vol: Free vol header on attach_volume_header error In attach_volume_header, make sure we free the volume's header if we're returning an error. We take care of the locks and i/o handles in the immediately preceding block, but for an actual error we don't get rid of the header. Do so. Noticed by Tom Keiser. Change-Id: I97e61700f644066ac1a0e6b45a67dd62c5397034 Reviewed-on: http://gerrit.openafs.org/7325 Reviewed-by: Tom Keiser Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f45ed29d5f5e029ef8c38c5d71ab069336f86866 Author: Simon Wilkinson Date: Sun Apr 22 10:20:18 2012 -0400 Make the cmd config file parser build on Windows Change-Id: Id6c3515869529b6fb5c48a06661b63bed974e436 Reviewed-on: http://gerrit.openafs.org/7141 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 1a823e9326ca7210a7381b9691227e1b4c8f89a8 Author: Simon Wilkinson Date: Sun Oct 9 01:17:19 2011 +0100 cmd: Don't expose krb5 error codes Don't use krb5 error codes in our configuration parser, instead use an error allocated from the existing cmd error table Change-Id: I777d9638c676d198d13a3bd33a90acdc53dc26cc Reviewed-on: http://gerrit.openafs.org/7134 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 0f5dc583a9d942e67953f84a6d800e9b969149b2 Author: Russ Allbery Date: Fri May 11 21:28:41 2012 +0100 Import of code from rra-c-util This commit updates the code imported from rra-c-util to 3900f94b9b8c46a3cb2d83d73c6cf4b73be1cc10 (release/4.4) New files are: m4/krb5-config.m4 Change-Id: I6ef966e4a30cd23feac4a159be2ffeb7357765b7 Reviewed-on: http://gerrit.openafs.org/7401 Reviewed-by: Russ Allbery Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 99108f95443680db0bbd098a7b93c04c8f4bd7c2 Author: Simon Wilkinson Date: Fri May 11 21:27:02 2012 +0100 rra-c-util: Add additional file Add the m4/krb5-config.m4 file, which is required for version 4.4, to the list of imports. Change-Id: Ib5d3d0d7be67eaa75f6edc6d030cdb3c47838d3c Reviewed-on: http://gerrit.openafs.org/7400 Tested-by: BuildBot Reviewed-by: Russ Allbery Reviewed-by: Derrick Brashear commit c877c0b419d04a0e754f99b9d975f2229b660df5 Author: Simon Wilkinson Date: Mon May 7 21:52:16 2012 +0100 tests: Start using the upstream C TAP harness Instead of bundling our own copies of Russ's C TAP Harness, start using source pulled from his git repository using the src/external import mechanism. Note that we are not currently building the floating point (is_double) portion of the harness. In the process of doing so, we also upgrade our test harness to the latest upstream version, 1.11. This is somewhat problematic, as there have been some significant code changes since the version bundled with OpenAFS. Work around these by *) Referencing the basic.h header as , rather than just , to match the new upstream layout *) Changing the include path so that the tests/ directory can be found within it. Change-Id: I63efbb30248165e5729005b0a791e7eb7afb051d Reviewed-on: http://gerrit.openafs.org/7374 Tested-by: BuildBot Reviewed-by: Russ Allbery Reviewed-by: Derrick Brashear commit 319ec27236d40318819163ae10e897e4a3f7b50b Author: Russ Allbery Date: Fri May 11 21:16:22 2012 +0100 Import of code from c-tap-harness This commit updates the code imported from c-tap-harness to d3fc03606efc8e76ff34f04470e6133db25a3982 (release/1.12) New files are: LICENSE NEWS README tests/runtests.c tests/tap/basic.c tests/tap/basic.h tests/tap/float.c tests/tap/float.h tests/tap/libtap.sh tests/tap/macros.h Change-Id: I4435bbb240f9db3cf2883cb0711f592f9d865f92 Reviewed-on: http://gerrit.openafs.org/7399 Tested-by: BuildBot Reviewed-by: Russ Allbery Reviewed-by: Derrick Brashear commit a18848fcae234258113012839483aceb3ada1281 Author: Simon Wilkinson Date: Fri May 11 21:14:38 2012 +0100 c-tap-harness: Fix import paths Somehow or another, the file list committed as 098e6f141f2234dcd0196096ab6f739db678f746 is missing the tests/ prefix for a number of object files. Reinstate this prefix. Change-Id: I2b807bf6fb8e5f136aef571e576c036714280b0c Reviewed-on: http://gerrit.openafs.org/7398 Tested-by: BuildBot Reviewed-by: Russ Allbery Reviewed-by: Derrick Brashear commit c6782b86d77f8653d8dd4bc27d0cbcca5f13747f Author: Jeffrey Altman Date: Thu May 10 08:36:33 2012 -0400 Windows: Avoid deadlock during "fs memdump" When the afs redirector is in use, it is possible that "fs memdump" could be executed while all of the pages in the Windows page cache are dirty with data that must be purged and flushed to \\afs. In such a situation it is not safe for afsd_service.exe to hold global locks such as buf_globalLock, cm_scacheLock, etc. while performing WriteFile() calls against %TEMP%\afsd_alloc.log if afsd_alloc.log was opened without the FILE_FLAG_NO_BUFFERING flag. Doing so can result in a deadlock as it can become impossible for the Windows page cache to purge data to complete the WriteFile() as all extent operations block waiting for the global lock to be cleared. The correct long term approach would be to use the FILE_FLAG_NO_BUFFERING flag when opening %TEMP%\afsd_alloc.log. However, this requires that all writes to the file be performed using buffers that are consistent with the drive geometry. Such an approach would be incompatible with the _CrtMemDumpAllObjectsSince() operation and would require a redesign of the current interfaces. See http://msdn.microsoft.com/en-us/library/windows/desktop/cc644950(v=vs.85).aspx for requirements when using non-buffered writes. The short term fix is to dump the contents without holding the global locks. This can result in an inconsistent view of the world but will ensure that deadlocks are avoided. This patchset makes such a change when the afs redirector is in use. Change-Id: I6ffc0ff7c80707f16bf132f2dcab7dab5727894d Reviewed-on: http://gerrit.openafs.org/7391 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 90ecc0ff72607afeebafd9355a4fa42d5d994180 Author: Jeffrey Altman Date: Wed May 9 10:44:39 2012 -0400 Windows: cm_GetBuffer do not retry if biod empty Change-Id: I583a69199b0e3163c3bc5b620543028f2950bfeb Reviewed-on: http://gerrit.openafs.org/7390 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4b58432de4f6eef93900786dad7d6b84e7123f5c Author: Hartmut Reuter Date: Mon May 7 12:31:15 2012 +0200 Make it build outside source tree some missing ${srcdir}/ inserted Change-Id: I323d4475dcf10bb5753741d611e3869779ff22d9 Reviewed-on: http://gerrit.openafs.org/7383 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 1e13ae53b3f1e753211f3ed39ae9d2ea9597cf48 Author: Andrew Deason Date: Wed May 2 12:11:01 2012 -0500 vol: Remove redundant vop check in GetVolume VAttachVolumeByVp_r (specifically attach_check_vop in attach2) already handles checking for conflicting vol ops, and gives us VOFFLINE appropriately. We don't need to check again in GetVolume. Change-Id: Ibb93d423d3c856dd957a2569412a85698180ff8e Reviewed-on: http://gerrit.openafs.org/7304 Tested-by: BuildBot Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear commit 80cb7bdebe2d8f852338eebc26c1bf507adbb4c5 Author: Derrick Brashear Date: Mon May 7 23:31:02 2012 -0400 c-tap-harness: add float.h add float.h to the list of files we import for c-tap-harness from upstream Change-Id: I133dd6172bab17ae183cc6fc983f92f19005ba85 Reviewed-on: http://gerrit.openafs.org/7381 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit a9595ab04712b523db8b0ca934613aa1a60cda99 Author: Simon Wilkinson Date: Sat Oct 8 23:33:37 2011 +0100 tests: Use enum rather than #defines for tests Change the command test so that it uses an enum, rather than #defines for offsets into the parms array. This is mainly a cosmetic change, but brings the test suite into line with the way that we're doing stuff in the "real" code. Change-Id: Ia9d72e13230edd4fe13af52ba6816cf775693c36 Reviewed-on: http://gerrit.openafs.org/7133 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear commit a81f9237bfa7b2e3a0567a930f3c49234b9a4376 Author: Andrew Deason Date: Wed May 2 12:07:49 2012 -0500 vol: Pay attention to specialStatus after VAVByVp attach2/VAttachVolumeByVp_r do not alter the yielded error code according to specialStatus. So, pay attention to specialStatus after receiving an error from VAttachVolumeByVp_r, to ensure we respond with the correct error code. Change-Id: I59e977dd1f0949f8fe5670c7a52429acbfb7d7e9 Reviewed-on: http://gerrit.openafs.org/7303 Reviewed-by: Tom Keiser Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 21ed79aeaee2d3b2b47436db0491943829ac44a6 Author: Andrew Deason Date: Wed May 2 11:38:57 2012 -0500 vol: Avoid VBUSY/VRESTARTING trick for offline vop Currently, if GetVolume() finds that the volume we're trying to attach has a vol op that leaves the volume offline, we do the VBUSY/VRESTARTING trick as described in CheckVnode(). This doesn't make any sense for a couple of reasons. For one, VBUSY/VRESTARTING is not the correct error code to return to the client when an offline vol op is in progress and vp->specialStatus is not set everywhere else we yield VOFFLINE. Additionally, this block of code is only hit once for a particular vol op. Once we reach this section, the volume is in UNATTACHED state, and so on the next iteration of GetVolume we will immediately return VOFFLINE (or specialStatus). So the CheckVnode-like situation is not applicable, since we are not returning VBUSY to the same client for 15 minutes; we would return VBUSY once and then return VOFFLINE. Change-Id: I0e8376df7937fd6bd01f9998371b9289c4ad2618 Reviewed-on: http://gerrit.openafs.org/7302 Reviewed-by: Tom Keiser Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 098e6f141f2234dcd0196096ab6f739db678f746 Author: Simon Wilkinson Date: Mon May 7 21:21:26 2012 +0100 Configure src/external for c-tap-harness Setup the src/external system so that we can pull in releases of the C Tap Harness using that mechanism. Change-Id: I312db7991b037e7bb885c8f93a5c94c793dada30 Reviewed-on: http://gerrit.openafs.org/7372 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 427f53eea7f9c05e7b1913c91d57777d72bc30b2 Author: Andrew Deason Date: Mon May 7 15:49:34 2012 -0500 fs: Report default storebehind when errors exist After 904c9fbe, we no longer print out the default store asynchrony when any of the supplied paths results in a pioctl error. However, if just one (or a few) of the paths supplied results in an error (such as, the path does not exist), this does not prevent us from reporting the default value. Instead, keep track of whether or not we have a valid value, and try to determine the default if we haven't already by the end of StoreBehindCmd, and print it out. Change-Id: I16a5faed15141d0bb00ea9b6f991c0a8e404d4d5 Reviewed-on: http://gerrit.openafs.org/7376 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear commit e9e14b551901db8f5be4d4c6060c709d2a3596be Author: Jeffrey Altman Date: Mon May 7 11:35:07 2012 -0400 Windows: cleanup redirector pipes If pipe creation fails, cleanup the mess. At shutdown, if there are pipes that have not been closed by Windows, clean them up. This is just to ensure that at shutdown the reference counts of cm_scache_t objects in the cache are reset to zero. Change-Id: I1d738c31faafce445f05adc4884c7711123589e2 Reviewed-on: http://gerrit.openafs.org/7366 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 542dad75733354a6fb1e912d3ff75d414459078b Author: Jeffrey Altman Date: Mon May 7 00:56:11 2012 -0400 Windows: Correct refcount leak The new duplicate avoidance code in cm_QueueBKGRequest() leaked a cm_scache_t and a cm_user_t reference count. Change-Id: Iceaf32a8d20cf350024fe40e3185c723f6203676 Reviewed-on: http://gerrit.openafs.org/7365 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6da91dfcb8ffa83a4663e73359abc6c8b6128e34 Author: Jeffrey Altman Date: Mon May 7 00:54:27 2012 -0400 Windows: fix build with DEBUG_REFCOUNT cm_GetSCache added a new parameter. The same parameter is required for the cm_GetSCache macro when DEBUG_REFCOUNT is defined at build time. Change-Id: Id198cdf845b8339259716d4a61c0347c33ffd83d Reviewed-on: http://gerrit.openafs.org/7364 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4fce72b0e6ddabce64af5fb7cef35492933f58d8 Author: Jeffrey Altman Date: Sun May 6 19:31:03 2012 -0400 Windows: Checksum server lists on Volume Errors For VMOVED, VNOVOL and VOFFLINE checksum the server lists for the current volume. If the server list changes as a result of the forced volume location update, do not set the updated flag which prevents subsequent volume location updates for the current cm_req object. This combined with the previous patchset to filter volume locations based upon the VLSF_NEWREPSITE flag will avoid outages during vos release operations. Change-Id: I39e6981b9fac5ed0dfd900e09474df43cb72feec Reviewed-on: http://gerrit.openafs.org/7361 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 345d643729ed588c4e49e69607bee5793809b01d Author: Jeffrey Altman Date: Sun May 6 09:54:55 2012 -0400 Windows: cm_SetServerBusyState use cm_ServerEqual When the busy state of a server is set it must apply to all server references if the server is multi-homed. Use cm_ServerEqual() to do so. Change-Id: I76c07746eb396af988a5270804e221e7a641db66 Reviewed-on: http://gerrit.openafs.org/7355 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 193a56aa664ccfb39a3447f81735f2183a914c76 Author: Jeffrey Altman Date: Sat May 5 21:37:00 2012 -0400 Windows: Track Mixed RO Volume Release State If the volume location information indicates that a replica site is VLSF_NEWREPSITE then it implies that some of the replicas are out of date. Ignore the out of date replicas when constructing the list and force a volume location list reset every five minutes while the replica site info is mixed. Change-Id: I136e66b1d2da66578970932553d14f59a666721b Reviewed-on: http://gerrit.openafs.org/7354 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1af906799b2de90d41139dadaf2dd654e4fd2df3 Author: Jeffrey Altman Date: Sat May 5 20:46:08 2012 -0400 Windows: Make CM resilient to transient VNOVOL The 1.6.0 and 1.6.1 file servers send transient VNOVOL errors which are no indicative of the volume not being present. For example, VNOVOL can be sent during a transition to a VBUSY state prior to salvaging or when cloning a .backup volume instance. As a result the cache manager must attempt at least one retry when a VNOVOL is receive but there are no changes to the volume location information. This patchset records the VNOVOL error in the cm_req_t structure If the volume is replicated, the volume's server reference into a busy state. If the volume is not replicated, the thread is paused for two seconds. In both cases, the request is retried. If the VNOVOL error is received a second time from the same server, the volume server reference is deleted as before. This is done to prevent repeated requests to the VLDB server and the file server that are expected to fail. The server reference will be restored to the volume on the next volume location update. Change-Id: Ica51f853683f80cb17c804cdc216f7a113cca60a Reviewed-on: http://gerrit.openafs.org/7353 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 46c1f1391b6e1b95798e183b8f34cba5c074e0ad Author: Jeffrey Altman Date: Sat May 5 19:11:07 2012 -0400 Windows: cm_GetNewSCache drop lock to permit change In cm_GetNewSCache the entire LRU queue is searched for a cm_scache_t object that is safe to recycle. If none are the LRU queue was immediately searched again without dropping the cm_scacheLock or taking a pause. As a result it is quite possible that a thread about to release a cm_scache_t was blocked from doing so. This patchset factors some of the logic a bit differently to improve readability and adds new log messages to help diagnose the cause of a problem if no cm_scache_t ever becomes available. Change-Id: Ica6ebee0ce0456e879ae7188d9c8cdc935a92e5b Reviewed-on: http://gerrit.openafs.org/7352 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit dbab42ca724668a8d0b0e33dd998fa9312b781d1 Author: Jeffrey Altman Date: Sat May 5 13:50:36 2012 -0400 Windows: Remove dead code in AFSRead.cpp Change-Id: I9ebaf0a43b0b14c11fc7d1b0935a8d436e70e900 Reviewed-on: http://gerrit.openafs.org/7351 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4cdb94dbc4f7cfc13c9f3e07929adcd96b3df1c8 Author: Andrew Deason Date: Fri May 4 17:13:32 2012 -0500 ubik: Initialize ubik_callPortal earlier As of 7caf4143, we call ubeacon_InitServerList* before ubik_callPortal is set, causing Rx connections to be created to port 0, causing various problems with communicating with other sites. Initialize ubik_callPortal to the correct value before calling any such functions, so we create connections to the right port. Change-Id: I37dbf575bcdec10463c7b6006738678096a92573 Reviewed-on: http://gerrit.openafs.org/7349 Reviewed-by: Jeffrey Altman Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f76cf9a3fb30b8c89c91ca10eaff8308cab9630a Author: Jeffrey Altman Date: Thu May 3 20:01:22 2012 -0400 Windows: FCB cleanup must be done before ObjectInfo When processing the cleanup and destruction of a File Control Block the related ObjectInfoCB is required for proper cleanup. Reorganize the AFSPrimaryVolumeWorkerThread logic to ensure that this is true. This involves dropping the VolumeCB->ObjectInfoTree.TreeLock around the AFSCleanupFcb() call. While the lock is released it is possible for the ObjectInfoCB->OpenReferenceCount to change. Therefore, new checks must be added after the lock is re-acquired to ensure that an in-use object is not destroyed. Change-Id: I6b26fb2fe1ef4077c6edd643ec40715c8e2928ac Reviewed-on: http://gerrit.openafs.org/7327 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e691a757d6f43fa11e3b9a84cf5cbb151a8e9a3b Author: Jeffrey Altman Date: Thu May 3 19:58:31 2012 -0400 Windows: AFSInitFcb STATUS_REPARSE cleanup If a race is detected when creating a new File Control Block in AFSInitFcb() the Fcb Header must be torn down and the ExtentsResource and DirtyExtentsListLock must be deleted prior to freeing the pool memory. Change-Id: I3c3f45aed26ea62b4d20e5c5e80d1237d96c912c Reviewed-on: http://gerrit.openafs.org/7326 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f12a20e2279dc9446a1b74217c9995e3d9fc099b Author: Jeffrey Altman Date: Wed May 2 18:20:45 2012 -0400 Windows: cm_BkgFetch do not impose arbitrary timeout The afs redirector will queue extent requests for the entire file if it is being copied to local disk as long as there is enough page cache space to store it. If the file is 8GB and the bandwidth from the file server is 100K/second it may take a while to get to the end of the request queue. Do not arbitrarily time out the requests. Change-Id: I12d9358ee5de37fc78d68c8e07dd14ca5dda1832 Reviewed-on: http://gerrit.openafs.org/7320 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b12a038b487a47e99700c0d51273aee37aecbfca Author: Jeffrey Altman Date: Wed May 2 18:05:26 2012 -0400 Windows: Treat all cached writes as write-through Treat all writes that are cached in the windows page cache as write-through requests so that they are delivered immediately to the AFS cache. The upside is that the afsd service can begin to store data to the file server immediately which can be of significant importance whe the AFSCache is larger than the file size and the file size is large and the bandwidth to the file server is slow. In that situation the entire file can be written into the windows page cache and will only be flushed to disk at the last handle close on the file. The downside is that all data will be written to the file server including that for files that will later have the delete pending flag applied. Change-Id: Icff536f9ec768068692c1e024a943448409e7e40 Reviewed-on: http://gerrit.openafs.org/7319 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 0fb70aab0e06099bbfe9b1fa388722d0b28f81a3 Author: Jeffrey Altman Date: Wed May 2 18:04:23 2012 -0400 Windows: AFSQueueFlushExtents permit NULL AuthGroup If the AuthGroup is NULL, search for an AuthGroup to use when queuing the flush extents request. Change-Id: Ie77f292dd992c4f8621434cecc70c7633de60320 Reviewed-on: http://gerrit.openafs.org/7318 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ba8e60d70a74fc2c6899b29f330a5bfa59175912 Author: Jeffrey Altman Date: Wed May 2 18:02:28 2012 -0400 Windows: refactor AFSCleanupFcb move the checks for deleted and invalid files earlier in the function to simplify other conditional tests. Change-Id: I973f411b65c0327227f07718ae764572d6f37c85 Reviewed-on: http://gerrit.openafs.org/7317 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 23bec3fe9f12c0af08f03b0b9cb70add7be859ba Author: Jeffrey Altman Date: Wed May 2 18:01:31 2012 -0400 Windows: correct typos or mistaken comments Change-Id: Iae278c0121c1b4d3cc9aaab276fab798c1a8065b Reviewed-on: http://gerrit.openafs.org/7316 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f86b17ab2b9ea75dacfcb508f138256c3827655b Author: Jeffrey Altman Date: Wed May 2 17:58:39 2012 -0400 Windows: RDR_RequestFileExtentsAsync set current DV if the buffer returned from cm_GetBuffer() has an offset that is beyond the serverLength and it has a "bad" data version, set the data version to the current value. This is for debugging clarity. Change-Id: Icb3ee4accd0219a41813c44428070248245f2549 Reviewed-on: http://gerrit.openafs.org/7315 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a7fec07348889e9455ccec3b5028aec385b83e5f Author: Jeffrey Altman Date: Wed May 2 17:52:44 2012 -0400 Windows: refactor cm_GetBuffer avoid BIOD construction Constructing a BIOD is a very expensive operation as it requires obtaining exclusive locks on each and every buffer that in the collection. The prior code would construct a BIOD for a chunk worth of buffers and then check to see if the current buffer is beyond the serverLength or the truncation position. If so, the buffer is cleared and the buffer is returned as current after releasing the BIOD. This is very wasteful. Instead, check every buffer in the BIOD to see if it should be made current or not. If yes, do so before releasing the BIOD. This permits the construction of the BIOD to be avoided for the rest of the buffers in the chunk. Change-Id: I0a413f8be9686cd0e326a3ea3608ca954cdf4370 Reviewed-on: http://gerrit.openafs.org/7314 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6b602e59af8d360f7ca2c48734477c21a94396af Author: Jeffrey Altman Date: Wed May 2 17:47:46 2012 -0400 Windows: cm_InitDaemon initialize cm_bkgQueueCountp[] Change-Id: Ie4abd1c26d54208921a78e421b447a8f4fc5684a Reviewed-on: http://gerrit.openafs.org/7313 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b750d82a8460cc1bd5a5761ed160b09ac5c132f5 Author: Jeffrey Altman Date: Wed May 2 17:42:59 2012 -0400 Windows: cm_QueueBKGRequest improvements Do not add duplicate requests into the queue. Outstanding extent requests will be re-issued by the afs redirector on a periodic basis while waiting for them to be satisfied. If they are pending there is no need to remember them a second time. Use separate queues for Fetch and Store operations. Store operations might be blocked on the file server but a Fetch operation might be served from the cache. Change-Id: I8e15c71275921c9a062944d52bf97a0ba68fe430 Reviewed-on: http://gerrit.openafs.org/7312 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ce7fe9ccfbfe0fd17416758357036881d5d2b5f4 Author: Jeffrey Altman Date: Wed May 2 17:39:12 2012 -0400 Windows: buf_GetNewLocked skip redirector owned buffers If a buffer is owned by the afs redirector, regardless of whether or not it is dirty, do not use it. Change-Id: Icc92f3cb8606ac67bcf561d409c76bd5a4a7bc06 Reviewed-on: http://gerrit.openafs.org/7311 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fcf1079f580fe1f2afa86f5e0312792817d52d2f Author: Jeffrey Altman Date: Wed May 2 16:57:11 2012 -0400 Windows: buf_RemoveFromRedirQueue in buf_Init use buf_RemoveFromRedirQueue in buf_Init instead of the roughly duplicated code. Change-Id: Ibf070d3e44f7a0749d1046c9d1168bdfb9aa6f2b Reviewed-on: http://gerrit.openafs.org/7310 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2246e7887cccd9e3d3524c3079b80b5cecaac433 Author: Jeffrey Altman Date: Wed May 2 14:32:01 2012 -0400 Windows: AFSInitializeProcessCB failure stack exhaustion If AFSInitializeProcessCB() fails in AFSProcessCreate() it can lead to a recursive loop of AFSValidateProcessEntry() -> AFSProcessCreate() calls. Only call AFSValidateProcessEntry() if AFSInitializeProcessCB() succeeds. On failure, log an error to the trace log. Change-Id: I67a65bed9a3193a5ce44eb01d30aed15fe9e469d Reviewed-on: http://gerrit.openafs.org/7309 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ad5916d19fe85c89db7675cac551a1e7634d5bdc Author: Jeffrey Altman Date: Mon Apr 30 06:22:41 2012 -0400 Windows: More useful AFSDumpFile exception info Modify AFSExceptionFilter to accept the __FUNCTION__ name where the exception occurred. Generate the trace dump file after the exception has been handled so that it is possible to see where it happened in the trace output. Change-Id: Icddafc1066dd85b63d8d97c40c0f76c54d181ebe Reviewed-on: http://gerrit.openafs.org/7308 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f70a12adef9a915ada728350e0b9e1e5104f7ea7 Author: Jeffrey Altman Date: Mon Apr 30 06:18:58 2012 -0400 Windows: VNOSERVICE error translation Translate VNOSERVICE as CM_ERROR_RETRY and not CM_ERROR_OFFLINE. Change-Id: I6daf9b9fb607192cedc057c518137772a7eb1bab Reviewed-on: http://gerrit.openafs.org/7307 Tested-by: BuildBot Tested-by: Chas Williams - CONTRACTOR Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c87fe04a61a97d61859684d53bb2d3ef7ee65da8 Author: Jeffrey Altman Date: Mon Apr 30 06:18:06 2012 -0400 Windows: VNOSERVICE message text correct message text to indicate that an rpc has not been serviced. Change-Id: Id2d82756253136ae6221aa2227be64bf654ee36e Reviewed-on: http://gerrit.openafs.org/7306 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 50752e2f60d613fda1e70b798a72679bea5d65f8 Author: Jeffrey Altman Date: Sun Apr 29 10:31:07 2012 -0400 Windows: reorg RDR_CleanupFile to prevent lock leak RDR_CleanupFile could fail to drop a file lock if the user does not have write permission on last handle close even if the file is readonly or there were no dirty extents to be stored. The error handling would return the error immediately and skip the file lock release. This patchset changes the logic so that the user permissions are not tested if the file is located on a readonly volume or if there are no dirty extents or metadata changes to store. In addition, if there is an error, skip to unlock processing and not to function exit processing. Change-Id: I03f8cbbae5ead2a66ce261631e7e34dd533de930 Reviewed-on: http://gerrit.openafs.org/7292 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f19e9d72466785bb3b543922f153ad8be2395e6e Author: Andrew Deason Date: Thu May 3 14:57:08 2012 -0500 vos: Default to server confdir for -localauth For -localauth, we traditionally default to using the server configuration directory, since that's usually the dir that has the KeyFile in it. Keep doing that with the new ubik client interface. Change-Id: I0f7e1ed180874f52c2b91b1ea3f74e763c26cd0c Reviewed-on: http://gerrit.openafs.org/7324 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear commit d206783e0d1666464eb333ce58c72534448c2987 Author: Andrew Deason Date: Thu May 3 14:55:39 2012 -0500 vos: Correct comment This is -localauth, not -serverauth Change-Id: I8337c231905a5424b5a91b0ed981adade64ca144 Reviewed-on: http://gerrit.openafs.org/7323 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Michael Meffie Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear commit 663185d62df501fb9d7a18e6ef329e4f53aa8854 Author: Andrew Deason Date: Thu May 3 12:40:40 2012 -0500 vos setaddrs: notice unexpected errors Currently 'vos setaddrs' only prints a message and errors out if the VL_RegisterAddrs call fails with certain error codes (VL_MULTIPADDR and RXGEN_OPCODE). But if we get something else like an access error, we should of course print that out, instead of reporting success. Change-Id: Id90c65604289651d9f20fb1ab2c706446162f324 Reviewed-on: http://gerrit.openafs.org/7322 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear commit b71f4ffa7c58ef7b27eb6e28d00892906aec49ec Author: Michael Meffie Date: Wed Apr 11 15:34:29 2012 -0400 volinfo: show header filenames even if error When invoked with -header option, print the header inode number, and namei filename, even if the header file cannot be opened. Change-Id: Id2a2e63f07e12cd817718a9da63d24250718ae06 Reviewed-on: http://gerrit.openafs.org/7190 Tested-by: BuildBot Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear commit 2460e132a9ed63714754745fe24f6f3a5712c81d Author: Michael Meffie Date: Mon Apr 16 22:29:24 2012 -0400 bozo: increase salvage instance poll rate Increase the bos client poll rate of the salvager temporary bnode instance status, from every 5 seconds to 1 second. This reduces the minimum time bos salvage takes, from 5 seconds to 1 second, which can add up when doing a large number of volume salvages. Change-Id: Ia0f48bfabae9442ab0f1b4a6f43df34699892f66 Reviewed-on: http://gerrit.openafs.org/7231 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear commit 200a02f69a7f2ac1604c42e28498171c81df9b43 Author: Jeffrey Altman Date: Wed May 2 19:32:22 2012 -0700 Revert "viced: avoid crash if missing volume header" This reverts commit 2b40e6d2abbf842e6823661b94cfa9aa833b9990 Change-Id: I9df0fd4fa6232286babdf64da54d491d2ec1e91a Reviewed-on: http://gerrit.openafs.org/7321 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ae5ad937997ae6e29f81e4049451eda09c2efb6f Author: Michael Meffie Date: Tue May 1 10:09:44 2012 -0400 viced: avoid crash if missing volume header Avoid a fileserver crash if the volume header is missing in SetVolumeSync. Change-Id: I509081306402fc7147d0624aa1181330b9fa9fc5 Reviewed-on: http://gerrit.openafs.org/7301 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 94a8ce970d57498583e249ea61725fce1ee53a50 Author: Michael Meffie Date: Mon Apr 23 14:42:24 2012 -0400 libafs: log server errors on hard mount retry Save the last errors seen during a request and log those errors if a hard-mount retry is done. Change-Id: I65e41207c5f667c41c7f9cf459243118e5baa074 Reviewed-on: http://gerrit.openafs.org/7275 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 07ff10c7fc194ee503b52691da000ab2c69d0fb1 Author: Jeffrey Altman Date: Sun Apr 29 10:40:31 2012 -0400 Windows: Cc FileObject Settings Modify the assigned CcSetReadAheadGranularity() from 64K to the afsd_service configured chunk size. Assign a CcSetDirtyPageThreshold() to be twice the configured chunk size. Change-Id: I1cfa67612058cf5e08906e369236d0d8a48c54f0 Reviewed-on: http://gerrit.openafs.org/7294 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit cf0d53b06a42a21238f13d65feb8e5ebf602da4d Author: Jeffrey Altman Date: Sun Apr 29 10:37:35 2012 -0400 Windows: correct cm_Analyze log message A VNOSERVICE log message takes three parameters and not one. Use the correct log macro. Change-Id: Iedb5e568b7ac39c061c0b70738a5c7ac670d9687 Reviewed-on: http://gerrit.openafs.org/7293 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a400f2a8a0732db57d725a8629ba869ed71caf9f Author: Jeffrey Altman Date: Fri Apr 27 08:54:56 2012 -0400 Windows: remove unnecessary libs from aklog/asetkey Unnecessary lwp libs were linked into the aklog/asetkey binaries on Windows. lwp and pthread should not be mixed. Change-Id: I53deed9ab210b8ccb394e754c66e15f35dfe89c2 Reviewed-on: http://gerrit.openafs.org/7289 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2a83f03100deae0f13c255e41ab849d172859971 Author: Jeffrey Altman Date: Wed Apr 25 20:16:22 2012 -0400 Windows: Remove High Security Integrated Logon High security mode for integrated logon never was high security. It use was deprecated in the 1.5 series and it has no use at all in the afs redirector world. Remove it. FIXES: 21702 Change-Id: I019b4fecc430517d29195e79e39529a782c88073 Reviewed-on: http://gerrit.openafs.org/7285 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 7d0a0b66cca5dfd7f9c42032393632abadb1aa76 Author: Jeffrey Altman Date: Wed Apr 25 18:05:01 2012 -0400 Windows: fs getcacheparms The get cache params output is supposed to include two values: . the size of the cache . the size of the cache in use Windows no longer has a concept of an unused cache buffer. All buffers are inserted onto the freelist and are available for recycling when the AFSCache file is created. Instead of reporting the used cache space as 0K, report it as the full cache in use. It is likely to disturb users less. Change-Id: I6c1475f26e561d245bfa2b658c77ba683f735bb5 Reviewed-on: http://gerrit.openafs.org/7284 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 8095503bc1021515c48966f77e9561acfea1aa0c Author: Michael Meffie Date: Sat Apr 28 23:46:26 2012 -0400 doxygenize afs_analyze Change-Id: Idb5d873a0c2727928f80364aa5e99e48c05649ad Reviewed-on: http://gerrit.openafs.org/7291 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d10f71d44fddd7ea6e37481cffd7ee1be2a93217 Author: Andrew Deason Date: Fri Apr 27 12:59:25 2012 -0500 vol: A GOING_OFFLINE volume should yield VOFFLINE Currently, GetVolume treats a volume in the VOL_STATE_GOING_OFFLINE state the same as VOL_STATE_SHUTTING_DOWN, and so returns VNOVOL for a GOING_OFFLINE volume, but these states are very different. GOING_OFFLINE indicates that a volume should soon be in the UNATTACHED state, so we should treat GOING_OFFLINE the same as UNATTACHED for returning errors to the user. For UNATTACHED, we return specialStatus if it's set, or VOFFLINE otherwise; so, just do the same for GOING_OFFLINE. Change-Id: Ia9500d2cfd90b8c15782a06025f39298810d0a99 Reviewed-on: http://gerrit.openafs.org/7290 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 868378cc00b9ac7016da3dc457abf3fa2016687c Author: Derrick Brashear Date: Thu Apr 26 09:24:25 2012 -0400 libafs: don't crash on no addresses in afs_Conn we try to avoid a crash on a missing serverHost; do the same on missing addrs in that host FIXES 130714 Change-Id: Ic6bab8654cf7bf85351a9482b9ba5d51e5a768d5 Reviewed-on: http://gerrit.openafs.org/7287 Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit 229131ab12d3c62a650ebff8c97acd5778f5bca1 Author: Jeffrey Altman Date: Tue Apr 24 15:41:39 2012 -0400 Windows: AFSValidateEntry CcPurge on DV change The variable bPurgeExtents was not being set when a DV change was detected in AFSValidateEntry(). This resulted in the purge being skipped and old data being left in the cache. Change-Id: I6f5a35e5c7a51d28267e0ff25318782a766771ac Reviewed-on: http://gerrit.openafs.org/7280 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d4c9cbc75edd632bd5bf22042c6502d03dda2d9c Author: Jeffrey Altman Date: Mon Apr 23 20:18:20 2012 -0400 Windows: Directory validation should purge data changes immediately During AFSEnumerateDirectory() and AFSVerifyDirectoryContent() calls use AFSPerformObjectInvalidate() instead of AFSInvalidateObject() to trigger the data purge. This is necessary to avoid a race as AFSInvalidateObject() will queue a work request that will be performed after the metadata is updated. Change-Id: Iaf09c6448927a037175cb4a83502fd4a1d210ef2 Reviewed-on: http://gerrit.openafs.org/7279 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 76f2e07fd039e0175540ae0ca3330a4bec86e1fe Author: Jeffrey Altman Date: Mon Apr 23 20:08:47 2012 -0400 Windows: Flag purge on close if CcPurgeCacheSection fails CcPurgeCacheSection can fail. If it does, remember that the purge still needs to be performed by setting the AFS_FCB_FLAG_PURGE_ON_CLOSE flag on the File Control Block. Change-Id: I83fab09ed5c506879e219606f8b10fdd7c021204 Reviewed-on: http://gerrit.openafs.org/7278 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit be1f110f3efb41a72278c7abc8a22cbfcfa8d0e3 Author: Derrick Brashear Date: Sun Apr 22 22:45:09 2012 -0400 macos: remove mistyped vnode warning newborn vnodes are corrected if needed; don't worry about it. Change-Id: I3bc4d6e9a467a8e09a3a77e027254f0da1448f80 Reviewed-on: http://gerrit.openafs.org/7270 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 7e7a4ff328d279330e0c3f3e4c6fc07b43c4d9eb Author: Simon Wilkinson Date: Sun Apr 22 18:19:07 2012 +0100 tests: More fixes for the vos test The vos test wasn't running correctly from runtests, as it contained a relative path which assumed that the CWD was tests/volser, rather than tests/ Modify this to use the BUILD environment variable when invoked from runtests, and also add an exit after the exec(), so that if we do fail to launch the binary we don't have two processes both running the same code. Change-Id: I7b2d7e6a517e9e9f74f15803da7507037671226a Reviewed-on: http://gerrit.openafs.org/7265 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear commit e3c93b87b7fa751e9cf4c1356d606b7bb399b06c Author: Derrick Brashear Date: Wed Apr 18 11:58:52 2012 -0400 libafs: stop bkg first because background daemons can have dependence on other subsystems, but are not needed for other operations, stop them first. Change-Id: If65cf922b84cfca7b8c5d7b7a2d571bfe1e5ff12 Reviewed-on: http://gerrit.openafs.org/7246 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear commit a08f9baa7620a6643f12f0b847c2bbab41a0b255 Author: Derrick Brashear Date: Wed Apr 18 11:58:03 2012 -0400 macos: lock module against unload during shutdown during shutdown, once umount finished, it was possible to unload the module before shutdown completed. fix that. Change-Id: I7eae5210ec9553fa862d96148f963dcdfee79c4b Reviewed-on: http://gerrit.openafs.org/7245 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 749cb03e3c4b95c19803fc718d59ba79e8f8292f Author: Jeffrey Altman Date: Thu Apr 19 07:14:16 2012 -0400 Windows: Add global root to name array if share name If the share name was resolved by querying the service instead of finding the entry in the root.afs root directory, construct a name array in AFSParseName() that includes the AFSGlobalRoot above the resolved share root directory. In AFSBackupEntry, check for the case where two volume root entries appear in sequence without an intervening mount point. Change-Id: Ied0e0dc8226b0460d85a1f3a8b389294cfdef34b Reviewed-on: http://gerrit.openafs.org/7252 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 9dce9e2461d7b375c0ff4caaf400a6b448322e74 Author: Jeffrey Altman Date: Thu Apr 19 05:14:51 2012 -0400 Windows: cm_ResetACLCache handle NULL cellp It is valid for the cellp parameter to be NULL. When invalidating all ACLs for a user pass 0 to cm_EAccesClearUserEntries(). FIXES 130704 Change-Id: Ic6b6e5f1c2e10aa633390ee3d7c709dc202bbd29 Reviewed-on: http://gerrit.openafs.org/7251 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit d55a767287d7f0ae1b3a018f3cb7b2a6730ebafa Author: Jeffrey Altman Date: Wed Apr 18 17:26:00 2012 -0400 Windows: reverse order of EACCESS and USER locks The user lock is obtain while holding the eaccess lock. Reflect it in the hierarchy. Change-Id: I3aac945287415cd3babbe52f9fdeb93ab4d729bd Reviewed-on: http://gerrit.openafs.org/7247 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 3029ed4003d900bda7767aa1d4a46683fd8f7b4d Author: Simon Wilkinson Date: Sat Apr 21 21:08:13 2012 +0100 ptserver: Complete pr_realmName removal Commit 9ddf9eca56e02be978ff7d065ee16c85de2cfb06 changed the mechanism by which the local realm is determined such that pr_realmName is no longer required. Tidy things up by removing the unecessary variable. Change-Id: I9b21340a8ecd38fbb8326dbed276882c9f0e9a62 Reviewed-on: http://gerrit.openafs.org/7266 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit fbc9599484850f7f9fc41a98d3bd2105001fd802 Author: Michael Meffie Date: Thu Apr 19 15:15:04 2012 -0400 configure: solariscc check update Add checks for recent versions of sunstudio for solaris. The installation paths are documented in the release notes of versions 12.1, 12.2, and 12.3. Change-Id: Ic28f40a061f288a1c39acb6a5d11e81876631d7f Reviewed-on: http://gerrit.openafs.org/7253 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4b63b93f24157aefa33f28c67ebea41803cc068e Author: Simon Wilkinson Date: Sat Apr 21 11:25:25 2012 +0100 rx_identity: Add a super user value Add an RX identity type that can be used to represent the super user who is granted access using printed tickets. Change-Id: I3d6e657a04136746b502efa7698901225410f3c0 Reviewed-on: http://gerrit.openafs.org/7261 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e1eb0fd66af158b86aec9c21cda836d84bc21c59 Author: Simon Wilkinson Date: Sat Apr 21 11:24:25 2012 +0100 rx: Make identity and opaque usable with NULL vals Make it possible to have NULL values for elements of the rx_identity and rx_opaque structures. Change-Id: I3624d490d92da3cf75da5edb91c7d4e5ce1fa937 Reviewed-on: http://gerrit.openafs.org/7260 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 5815a04cf1f3c7f4dec8ef3b9783e01bac599d1c Author: Simon Wilkinson Date: Fri Apr 20 18:13:30 2012 +0100 tests: Move token faking code to its own file Move the token faking code out of superuser-t.c into its own file in tests/common, so it can be used by other tests. Change-Id: I7b420250ef974b4b80a8dde692d2666657bb82ca Reviewed-on: http://gerrit.openafs.org/7259 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5cfea96b23b268bc93c6ffa5888c773031da7d67 Author: Simon Wilkinson Date: Fri Apr 20 15:36:29 2012 +0100 tests: Make afstest_StopVLServer generic The StopVLServer function can be used to stop any server for which we know the pid. So, rename it as afstest_StopServer to make this apparent. Change-Id: Ia5973342e81dc15a698e84e69b314cd6157831f7 Reviewed-on: http://gerrit.openafs.org/7258 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 2ce3fdc5dc888693c8a7698aae7805a7d4dee145 Author: Simon Wilkinson Date: Fri Apr 20 15:34:26 2012 +0100 tests: Abstract out code to produce a Ubik client Abstract out the code which the volser test uses to produce a ubik client so that it can be used to test other ubik services Change-Id: I800fda9e53ad45c91f3de8eceea387cc011dda3c Reviewed-on: http://gerrit.openafs.org/7257 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a6d64d700794601bb003a6e5693b34faa2214c18 Author: Simon Wilkinson Date: Sat Apr 21 07:43:59 2012 +0100 ptserver: Refactor per-call ubik initialisation The way in which the ubik database is initialised is identical for all read transactions, and for all write transactions. Rather than duplicating this code in each call handler, pull it out into two helper functions - ReadPreamble and WritePreamble. Change-Id: I40f2d8d609bc4e6e8e3e0fc8851da86978c77818 Reviewed-on: http://gerrit.openafs.org/7256 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit ddcd9ede775ef64de281bc4994b3c7477f7105e9 Author: Simon Wilkinson Date: Sat Apr 21 19:24:10 2012 +0100 tests: Add missing vos test Add the missing volser/vos test, and fix it so that the plan is correct Change-Id: I017679176f5df8fb18002175a75ac0dcd108aded Reviewed-on: http://gerrit.openafs.org/7255 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 25a5c423a0d12086ab3cc390306bcd0f0324a731 Author: Simon Wilkinson Date: Sun Apr 22 10:58:17 2012 +0100 ptserver: Remove PR_REMEMBER_TIMES The #define PR_REMEMBER_TIMES is always true, so remove the #define, and all of the #ifdefs that it triggers Change-Id: I445a2cd8f5e5b2570e6ef1311cc6bb3d66592fdc Reviewed-on: http://gerrit.openafs.org/7264 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5c9be9a2f8eb4e2e8e9bf80132976adc506d968b Author: Simon Wilkinson Date: Sat Apr 21 20:55:23 2012 +0100 util: Completely remove get_krbrlm Commit d85ece0977e043154b7d8f5aef5f4cd972771e8e added a new mechanism for determining whether a realm is local or not, and susequent commits removed all in-tree calls to the now-legacy functions in get_krbrlm.c To avoid confusion, just remove all of these legacy functions, as we don't want to end up supporting two ways of doing this operation. This change is not suitable for pullup to a stable release. Change-Id: Ie2f5c447f751d12a0d85a4a438efd7e210133e97 Reviewed-on: http://gerrit.openafs.org/7263 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit a38df1befb5a92f4f2c034576ead830b8d0c72c7 Author: Simon Wilkinson Date: Sat Apr 21 20:32:38 2012 +0100 dumpscan: Add missing .gitignore Add the missing gitignore file from the new src/tools/dumpscan directory Change-Id: I8fc7a3de4e717ef657c331a5ce82afb8f05ff726 Reviewed-on: http://gerrit.openafs.org/7262 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 3a1e129b76be5109feaa52deeffb8a51c024a6cc Author: Simon Wilkinson Date: Wed Apr 18 12:46:31 2012 +0100 tests: Add a RX functionality test Use the rxperf performance testing tools to add a couple of simple RX tests. The first moves 1Mbyte of data backwards and forwards 30 times. The second starts 30 threads, which each move 1MByte of data once. This is by no means an exhaustive test of RX, but the single and multi-threaded invocations should provide a useful smoke test if things get very broken. Change-Id: I11267be067cf6c05a20aeb90a18ed4031502a1b1 Reviewed-on: http://gerrit.openafs.org/7244 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 06cc5bec2c2485f49a39fcd4af378279178fab36 Author: Simon Wilkinson Date: Tue Apr 17 23:19:17 2012 +0100 rxperf: Move into the tools directory Move the 'rxperf' RX performance testing utility out of the src/rx/test directory, and into the slightly more visible top level src/tools/ directory As this is the first time that rxperf has been built as part of the default build, make a number of changes so that it will build on all of our supported platforms. Change-Id: Ice37e7db694dbfed34009bf76d24f1e0bf272e47 Reviewed-on: http://gerrit.openafs.org/7240 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit db733e325e558d4f36835639e340ecee94f7fcb5 Author: Simon Wilkinson Date: Wed Apr 18 23:25:33 2012 +0100 roken: Add setprogname Add setprogname to the list of functions that we test for, and replace with a libroken alternative if it is missing. Remove setprogname and getprogname from the AC_CHECK_FUNCS list, as AC_REPLACE_FUNCS is a superset of this test. Change-Id: If81dc8ba6d9245329f3abae6a6f062e3827dcfab Reviewed-on: http://gerrit.openafs.org/7250 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c0952be8d870cf1fc7837b86b373a100886742e4 Author: Heimdal Developers Date: Wed Apr 18 23:16:39 2012 +0100 Import of code from heimdal This commit updates the code imported from heimdal to ee7340860a22f81fb869cc431efc1fd4e5c77d34 (switch-from-svn-to-git-2542-gee73408) New files are: roken/setprogname.c Change-Id: I4e6bbe0b76f6a79035937c1eb830008c972f1db4 Reviewed-on: http://gerrit.openafs.org/7249 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear commit 02eb5507481a3f05423081df3c1d07597cd36dc4 Author: Simon Wilkinson Date: Wed Apr 18 23:15:15 2012 +0100 roken: Add setprogname to list of imports Change-Id: I0aff8d1b3228e702012ffbe8bc8707a6d60ffbaf Reviewed-on: http://gerrit.openafs.org/7248 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear commit 418886567064c9266824fe940592399e8daac3b9 Author: Simon Wilkinson Date: Wed Apr 18 09:10:36 2012 +0100 Update .gitignore files Update (and create) .gitignore files across the tree Change-Id: I7534e4f1eac44e6024f86591a171b63a64c6f320 Reviewed-on: http://gerrit.openafs.org/7241 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 18db7ede1c570710d361a2e7cc3a641260e6a08a Author: Simon Wilkinson Date: Wed Apr 18 12:44:43 2012 +0100 tests: Explicitly include DES in superuser test When the hcrypto/des header was removed from our installed headers, it wasn't added back in to the superuser test. Add it now, so that the test can build. Change-Id: I38023ee94abe801f6f2313b492e4f80855001c41 Reviewed-on: http://gerrit.openafs.org/7243 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6f20e9ddc2d15ec70b7c2d4035c78b156a36656a Author: Simon Wilkinson Date: Wed Apr 18 12:35:10 2012 +0100 Mac OS: Fixed shared library symbol issues Some of our shared libraries (in particular, roken) build with different symbols in them depending on the exact configuration options for a particular platform. This means that not all of the symbols in the map file may be present within the library. On Mac OS X we have been working around this by using the "-flat_namespace,-undefined,suppress" linker options. However, with Lion this no longer works, as the linker still expects to find the symbol in the library whose mapfile indicated that it was present. So, for example, we end up with errors like: dyld: Symbol not found: _errx Referenced from: openafs.git/tests/rx/../../src/tools/rxperf/rxperf Expected in: openafs.git/lib/librokenafs.dylib.1.1 ... despite errx actually being provided by the system libraries. The fix to this is to use the default two level namespace, and change our behaviour for undefined symbols to 'dynamic_lookup', rather than 'suppress' Change-Id: Ide37856198a8db3d42ee0a5261d097176bcc9301 Reviewed-on: http://gerrit.openafs.org/7242 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9dca26ac192f0538e8f76a8935819b6f9f4c438e Author: Simon Wilkinson Date: Tue Apr 17 22:28:14 2012 +0100 tools: Move dumpscan into its own directory Move dumpscan into its own directory, so that it's Makefile rules can be better contained, and not pollute the whole 'tools/' namespace Change-Id: Ic58d007824ab802eae469dd2996300f80671a3b8 Reviewed-on: http://gerrit.openafs.org/7239 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0dd7c980acda0756150f11992a0d2236f340e0c2 Author: Michael Meffie Date: Mon Mar 5 10:47:45 2012 -0500 audit: remove static local realms Remove the static list of local realms and use the auth interace to do the local realm check. A callback function is registered by the servers to avoid a circular dependency between audit and auth. Change-Id: Ic0f25cd79da7987704de68bade14054490b26c80 Reviewed-on: http://gerrit.openafs.org/6879 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8a040cfd848410b75b4e5ac5498f00f073932598 Author: Michael Meffie Date: Mon Mar 5 08:27:55 2012 -0500 viced: remove static local realms Use the new auth function to do the local realm match check instead of static local realms lists. Override the krb.conf file with the -realms command line option. Change-Id: Ic364e61b03385fbc9496ac4af3877a1fdee3a3a5 Reviewed-on: http://gerrit.openafs.org/6878 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9ddf9eca56e02be978ff7d065ee16c85de2cfb06 Author: Michael Meffie Date: Tue Feb 28 22:31:45 2012 -0500 ptserver: remove static local realms Use the new auth function to do the local realm match check instead of static local realms lists. Change-Id: I8b509188103916bdd2e575e5e9a14e3671b81e65 Reviewed-on: http://gerrit.openafs.org/6877 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d85ece0977e043154b7d8f5aef5f4cd972771e8e Author: Michael Meffie Date: Tue Feb 28 09:19:11 2012 -0500 auth: remove static local realms Remove the static list of local realms and use the auth interface to perform the local realm match check. Change-Id: I0f56e7974e59035eb9bf9fb343b550ab6b7ef314 Reviewed-on: http://gerrit.openafs.org/6876 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 8e62ddaa3706319b425327b9516c91290274590a Author: Simon Wilkinson Date: Fri Apr 13 14:49:59 2012 +0100 rx: Use native 64bit data counters Modify the peer, call and rpc_stats structures to use native 64 bit types for the bytesSent and bytesRcvd data counters. All of our platforms support native 64bit quantities now, so there's absolutely no value in rolling our own. Change-Id: I7c51de73be17821c6472eea535c8476fe0d7a23e Reviewed-on: http://gerrit.openafs.org/7205 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c83e1ae68022993399402911eab84ee157d34de2 Author: Derrick Brashear Date: Tue Apr 17 08:55:45 2012 -0400 aklog: heimdal kvno is rapidly changing in 1.6 it's unsigned. in 1.5 it's signed. it's 32 bits. i don't care. just copy the darn thing. Change-Id: I51efd2be64eac108e5b1591643f24fd0a51bfdff Reviewed-on: http://gerrit.openafs.org/7235 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 0ac28aa703459df60e9f18348fb1d4f73d5c042c Author: Jeffrey Altman Date: Mon Apr 16 15:22:35 2012 -0400 Windows: Drop Fcb Resource across SetEOF and SetAllocation If the file size or allocation is being altered, we must hold the PagingResource and drop the Fcb Resource. Dropping the Fcb resource is necessary to avoid a deadlock with TrendMicro's filter if the size is set to zero and acquiring the PagingResource is necessary to prevent races now that the Fcb Resource is no longer held. Change-Id: Ie72a018adc52c479a4bb2469b2b1abe317644e8b Reviewed-on: http://gerrit.openafs.org/7224 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fd161ec0e474485c6a1a43019b802e3b663098df Author: Jeffrey Altman Date: Mon Apr 16 14:47:38 2012 -0400 Windows: Hold PagingResource across ExtendingWrite When the file allocation size changes the PagingResource must be held exclusively to prevent races. Change-Id: I6ff3a2061563dbb858bb284b463913f6d3b33e7a Reviewed-on: http://gerrit.openafs.org/7223 Reviewed-by: Peter Scott Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 8e1490f5799f0a307760047a133aade806b32afc Author: Peter Scott Date: Mon Apr 16 12:25:01 2012 -0400 Windows: AFSProcessOverwriteSupersede CcSetFileSizes Instead of calling CcPurgeCacheSection() in AFSProcessOverwriteSupersede() as part of the file length truncation to zero, call CcSetFileSizes(). Wait to call CcSetFileSizes() until after the Fcb->Resource has been dropped but while the Fcb->Header.PagingIoResource is still held. Make sure that file sizes are restored in the Fcb->Header if the afsd_service rejects the file update. Change-Id: I7574e80781ac1dbbe69814c69644bb3825de9b6a Reviewed-on: http://gerrit.openafs.org/7220 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f8b759b63ff938e2829fefd71059202c44e7ca13 Author: Michael Meffie Date: Tue Feb 28 08:50:33 2012 -0500 auth: local realms configuration Add krb.conf and krb.excl support to the auth cell configuration library. Provide a function to determine if the user is local to the cell. Provide a function to set the local realms during application initialization. These changes are intended to replace the functions afs_krb_get_lrealm and afs_is_foreign_ticket_name. Change-Id: Iba57e9ffc2c958f3a4565a9352ce172189276ce9 Reviewed-on: http://gerrit.openafs.org/5744 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit a3ff62857cb76e403c11a27a250aa3c79d66ebb6 Author: Simon Wilkinson Date: Fri Apr 13 19:14:44 2012 +0100 rx: Remove surplus call to FindPeer When stats are enabled, rxi_ReadPacket calls FindPeer immediately the packet is received from the wire. The peer structure that it gets is used solely to increment a counter, and then thrown away. Given that FindPeer requires a lock, and a hash lookup, this is really inefficent. Instead, delay the compilation of statistics until rxi_ReceivePacket. Call FindPeer for version and debug packets which have no associated connection otherwise wait until we have found the packet's connection, and use the peer which is linked from there. Change-Id: Ic2eb08e52b97d6b033b9d3de59da9346e012d70d Reviewed-on: http://gerrit.openafs.org/7206 Reviewed-by: Simon Wilkinson Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 660720d1f54a867e21f78b6ec4c024235e4c37b7 Author: Andrew Deason Date: Thu Mar 29 10:30:47 2012 -0500 rx: dec rx_nWaiting on clearing RX_CALL_WAIT_PROC Currently, a couple of callers (rxi_ResetCall, and rxi_AttachServerProc) will decrement rx_nWaiting only if RX_CALL_WAIT_PROC is set for a call, and the call is on a queue (presumably rx_incomingCallQueue). This can cause an imbalance in rx_nWaiting if these code paths are reached when, in another thread, rx_GetCall has removed the call from its queue, but it has not yet cleared RX_CALL_WAIT_PROC (this can happen while it is waiting for call->lock). In this situation, rx_GetCall will remove the call from its queue, wait, and e.g. rxi_ResetCall will clear RX_CALL_WAIT_PROC; neither will decrement rx_nWaiting. This is possible if a new call is started on a call channel with an extant call that is waiting for a thread; we will rxi_ResetCall in rxi_ReceivePacket, but rx_GetCall may be running at the same time. This race may also be possible via rxi_AttachServerProc via rxi_UpdatePeerReach -> TryAttach -> rxi_AttachServerProc while rx_GetCall is running, but I'm not sure. To avoid this, decrement rx_nWaiting based on RX_CALL_WAIT_PROC alone, regardless of whether or not the call is on a queue. This mirrors the incrementing rx_nWaiting behavior, where rx_nWaiting is only incremented if RX_CALL_WAIT_PROC is unset for a call, so this should guarantee that rx_nWaiting does not become unbalanced. Change-Id: I7dba4ba5f7cc33270c2d0f486b850fc0391927d1 Reviewed-on: http://gerrit.openafs.org/6986 Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit 6a9b0d8c56ab80bdcc8d4e2d0b28a606837141cc Author: Jeffrey Altman Date: Sun Apr 15 17:40:03 2012 -0400 rx: conn_call_lock leak In rxi_ReceivePacket, if the packet is for a client connection and there is no call allocated, the conn->conn_call_lock was leaked. Introduced by 95c38dff3740d7e24971ceb5875c06e7abfce102. Change-Id: Icfc10849c1da08d7c96d139b0a10d9ffe7ee57df Reviewed-on: http://gerrit.openafs.org/7218 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 15cde0e40db8c99ef9af7e9f04c406ce6ea3bfeb Author: Michael Meffie Date: Mon Feb 20 15:26:09 2012 -0500 auth: get local cell internal function Add an internal function to retrieve the local cell name when the auth mutex is already held. Implement afsconf_GetLocalCell in terms of the new internal function. Change-Id: I2f021a9966129e8e256b61d5219e7315b904ac0e Reviewed-on: http://gerrit.openafs.org/6875 Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear Tested-by: BuildBot commit c242c5a4ae156b6a4432edd3258e87eb283c7ef1 Author: Jason Edgecombe Date: Thu Apr 12 21:30:47 2012 -0400 TESTS: Add the libwrap script to "make check" to handle library paths LICENSE MIT Change-Id: I5f77d8703a163b8b9224f64010b9e008bb386c59 Reviewed-on: http://gerrit.openafs.org/7202 Tested-by: BuildBot Reviewed-by: Garrett Wollman Reviewed-by: Derrick Brashear commit 56a2cbb5fbdcab51bd5f4720e610796abbce5c41 Author: Jeffrey Altman Date: Sat Apr 14 09:43:48 2012 -0400 Windows: pioctl use GetFileAttributes Instead of attempting to CreateFile(OPEN_EXISTING) the _._AFS_IOCTL_._ file, try using GetFileAttributes() to obtain the attributes of the file. The file doesn't exist in the directory listing but the afs redirector and the afs smb server will respond to the request. Perhaps the SMB servers in the broken printers will fail it. Change-Id: I792bcc89c63871043ce6835a971de284fd754d54 Reviewed-on: http://gerrit.openafs.org/7210 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 718a6a0c464e1c2f477acbe48770c2297720a57d Author: Jeffrey Altman Date: Sat Apr 14 11:06:58 2012 -0400 Windows: _._AFS_IOCTL_._ hidden and system Query file attributes returned only the system attribute and not the hidden attribute. Must return both. Change-Id: Id29465adf3e3524b59c63b2e6f8ef482f536a0e1 Reviewed-on: http://gerrit.openafs.org/7209 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3cdfdc4792444c54a36341b6a8a66ae1a8085cec Author: Jeffrey Altman Date: Fri Apr 13 23:16:56 2012 -0400 Windows: Remove PurgeContent param AFSVerifyEntry When verifying a directory entry we must update the metadata for a file therefore we must also purge the data if the version number changed. This is not optional. Change-Id: Icb673c7a6c52b3778978248fcb243d110685aa8d Reviewed-on: http://gerrit.openafs.org/7208 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ead0a458272abe79fcca5e521b2960d90d358465 Author: Jeffrey Altman Date: Fri Apr 13 20:17:48 2012 -0400 Windows: Flush data and then drop locks The redirector must flush the data to the file server and then drop the file locks. Doing it the other way creates races. Change-Id: Ic3a48546ee9e0066df9d228fc4e57f52b43587c2 Reviewed-on: http://gerrit.openafs.org/7207 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit dcefc4576020c2c076af1a4af07cc827bf4eea40 Author: Michael Meffie Date: Fri Apr 13 11:58:02 2012 -0400 Build: check for gencat Check for the gencat program and give a missing warning if not present. Change-Id: I71cdaa0840215b53071be4481a5f23b2f8667bda Reviewed-on: http://gerrit.openafs.org/7203 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: BuildBot commit c11d1c031940f298e96def822024d2857f603268 Author: Michael Meffie Date: Fri Apr 13 13:01:05 2012 -0400 Build: error if solariscc is not found Fail configure if the solariscc is not found and give the builder a message to cope with non-standard installation paths for sunstudio. Change-Id: I64c1e752833f2aa824f4a15cc144e54bb03a1ec8 Reviewed-on: http://gerrit.openafs.org/7204 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: BuildBot commit a187be182ce2915b68af0e318bef352d41f7715a Author: Simon Wilkinson Date: Sun Jan 8 11:45:57 2012 +0000 rx: Rework code which pulls packet from recv queue Both rxi_ReadProc and rxi_FillReadVector contained copies of the same code to pull a packet out of the receive queue, and turn it into the call's currentPacket. Abstract this out into a single common function, so we're not maintaining the same code in two different places. Change-Id: I20af6b4ff19f05e21ffde1a80609be12ad6cfeee Reviewed-on: http://gerrit.openafs.org/7195 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 7b45d62ec18726a49dcffe8ddbca8f446ca0bb3e Author: Simon Wilkinson Date: Fri Jan 6 10:12:26 2012 +0000 rx: Tidy up currentPacket handling Instead of making a copy of the call->currentPacket variable in our read/write routines, reference it directly. Make it clear that currentPacket is used solely by the application thread, and remove a number of mistaken comments that suggest otherwise. Change-Id: I7ad799acbf110422df7c1e18ab552caf26b7766a Reviewed-on: http://gerrit.openafs.org/7194 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit e6105fcd33db8af6a5ea5da5f221b6acc8d39f04 Author: Derrick Brashear Date: Thu Apr 12 17:35:27 2012 -0400 aklog: heimdal kvno is unsigned heimdal's kvno is unsigned. comply. Change-Id: I5960ec33dccb10ae2bbc121e231b6aa58fa17993 Reviewed-on: http://gerrit.openafs.org/7201 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear commit 83b76f564b0972c6163656637b2d64d06895e41a Author: Simon Wilkinson Date: Thu Sep 8 11:26:39 2011 +0100 Remove redundant header includes Remove includes of system headers where roken.h already takes care of including them. This simplifies the source tree, reduces the amount of work done by the compiler, and ensures that all of our headers are included with the correct guards The list of files to edit was generated with the following script: list=`grep include external/heimdal/roken/roken.h.in \ | sed -e's/#include//g' | sort | uniq`; \ for A in `find . -name *.c | xargs grep -l roken.h \ | grep -v external/ | grep -v WINNT/`; do \ found=0; \ for B in $list; do \ if grep "$B" $A > /dev/null; then \ echo "$A : $B"; \ found=1; \ fi; \ done; \ if [ $found == 1 ] ; then mvim -f $A; fi; \ done Change-Id: I2edbda550a129709b1dc6860b17d6a8a7509af58 Reviewed-on: http://gerrit.openafs.org/5815 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Alistair Ferguson Reviewed-by: Michael Meffie Reviewed-by: Derrick Brashear commit 03ec768fa65dc5961e161517871f3035df70b643 Author: Michael Meffie Date: Tue Mar 27 00:33:26 2012 -0400 volscan: index offset output column Add index offset as a possible volscan output column. Change-Id: I1bf6e8dc3c506a2ee013536e19141ddb214879a6 Reviewed-on: http://gerrit.openafs.org/6980 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 22fbed08a6f23dbbc05fd567e6e8e21e4d1a9709 Author: Michael Meffie Date: Mon Mar 26 20:20:28 2012 -0400 volscan: option to ignore dir vnode magic Option to ignore directory vnode magic when looking up the path names. Print which vnode failed when doing the checks. Change-Id: Id4b74ee9f139305025b849a007a4534b8ed04dbf Reviewed-on: http://gerrit.openafs.org/6979 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit ed8b38d1d0f2e74ff7280c09afbc6fd4d2df1b23 Author: Jeffrey Altman Date: Wed Apr 11 11:59:17 2012 -0400 Windows: missing brace in RDR_CleanupFileEntry Fix 46d76d8821f4c8476499757d509ce1a6bab764b1 Change-Id: I6c6cf5e1dec431544963f6a4c283e2ae0d52a7d9 Reviewed-on: http://gerrit.openafs.org/7189 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit df522b588396aaac3ec662b516ef7287f3b7c47b Author: Andrew Deason Date: Thu Mar 22 17:54:12 2012 -0500 salvager: Trust inode-based special data over OGM Currently the salvaging code looks for special inodes, and infers the volume id and inode type from the OGM data in each special inode file. However, we can already derive this information from the inode number itself for the special inode, so if they disagree, use the values based off of the inode number and correct the OGM data. The inode number should be more likely to be correct, since that is how we look up the special inode from the header when attaching the volume. It is also impossible to get special inode files with the same name, so this ensures we don't get duplicates. And for people that go snooping around /vicepX/AFSIDat even though we tell them not to, it seems more likely that they go around 'chmod'ing or 'chown'ing rather than 'mv'ing. This change avoids an abort in the salvaging code when the OGM data is wrong. If we trust the OGM data when it is incorrect, we assume the special inode file is for a different volume. So when we go to recreate one of the special files for the volume we're actually working with, the IH_CREATE fails (from EEXIST) and so we abort. Change-Id: Ibfaa1bfb27d190c5fec6fc673d88df366268e302 Reviewed-on: http://gerrit.openafs.org/6946 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 0594fc80b48152b4b03edda7e19133b59fc0670e Author: Andrew Deason Date: Fri Mar 23 13:02:22 2012 -0500 namei: Abstract out OGM functions a bit more Add GetWinOGM and SetWinOGM for getting and setting the Windows-equivalent of the Unix OGM data. Make those and CheckOGM use GetFileTime/SetFileTime so we can operate just via an FD_t, without needing the full pathname. Modify the NT namei_icreate to use SetWinOGM. Change-Id: I5077911d8473d44ad9ba1d17d3b6deec3a12ba39 Reviewed-on: http://gerrit.openafs.org/6945 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 4c8a3cd789a8495d0c0b3f8ff1a7ebb2a20f5336 Author: Derrick Brashear Date: Tue Feb 14 21:58:09 2012 -0500 libafs: dont handle outstatus on write error if a write errored, we can't trust the OutStatus we got. don't. Change-Id: I74934c32426c6f25aace06f6ee59c1c1b547af90 Reviewed-on: http://gerrit.openafs.org/6714 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 7a650025c5387db483b1c061cc78c9e9c528d582 Author: Michael Meffie Date: Wed Feb 29 09:40:14 2012 -0500 Build: link libaudit before util libaudit depends on util symbols, so link it first to avoid unresolved symbols. Include libaudit in the list of libs instead of making it a special case. Change-Id: Ide6d5f7e3ce8fd76b504088dcae3110872a87092 Reviewed-on: http://gerrit.openafs.org/6847 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit ef6ae1e7eda56e1d6ff7b9ade25b290c855e5780 Author: Michael Meffie Date: Sat Mar 3 10:05:01 2012 -0500 viced: fix log message for MapName_r Do not log a code of zero if the name plus instance length exceeds the max pr name buffer. Change-Id: I8b8f970213c0beb35a728bcc2158796f84120a3b Reviewed-on: http://gerrit.openafs.org/6861 Reviewed-by: Derrick Brashear Reviewed-by: Alistair Ferguson Tested-by: Derrick Brashear commit bc770a5007ae16aa5477bf1748f3e0666f665781 Author: Michael Meffie Date: Tue Apr 10 16:07:37 2012 -0400 doc: distributed files are under dest Add the dest path component in the quick start guide instructions for copying files from a binary OpenAFS distribution file. Change-Id: I5c39ac0426ef2eab89ae5d3df260628e949dc21e Reviewed-on: http://gerrit.openafs.org/7187 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fbe6f0f4ad983389b77309be49af658f6c0dfeb3 Author: Simon Wilkinson Date: Tue Sep 13 07:17:27 2011 +0100 afsd: Move to newer cmd syntax Move afsd over to using the newer cmd functions, and avoid using direct array access, and fixed offsets. Change-Id: I6e09823d764cbe6109c9a72700239d814b91db0c Reviewed-on: http://gerrit.openafs.org/7137 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman commit 46d76d8821f4c8476499757d509ce1a6bab764b1 Author: Jeffrey Altman Date: Wed Apr 11 00:29:03 2012 -0400 Windows: Do not delete in CleanupFile if error If an error was detected when processing RDR_CleanupFileEntry() do not perform the file deletion. Just return the error as attempting the deletion could result in an exception. Change-Id: I57b17a15d1bdda4d0890dbe59f9e2432d465250f Reviewed-on: http://gerrit.openafs.org/7186 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f0b039fc4761bb0151c7ee69110926ef16e264c7 Author: Michael Meffie Date: Mon Apr 9 15:49:50 2012 -0400 libafs: log error code when marking server down Log the error code when marking the server down due to server/networks issues. Change-Id: Ib3d57562642ca564dcfeaa775de66f54d08f23af Reviewed-on: http://gerrit.openafs.org/7138 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3720f6b646857cca523659519f6fd4441e41dc7a Author: Simon Wilkinson Date: Sun Oct 23 16:21:52 2011 +0100 Rework the ugen_* interface Remodel the ugen_* ubik initialisation interface so that more complex sets of security flags can be passed through it. A number of new functions are provided, all of which take the AFSCONF_* security flags defined in libauth: *) ugen_ClientInitCell is used to initialise a ubik client structure when the caller already has afsconf_dir and afsconf_cell structures for the cell being contacted *) ugen_ClientInitServer is used to initialise a client which will contact a specific server within a given cell, rather than selecting one from the pool *) ugen_ClientInitFlags is used to initialise a client given a cellname, and a path to a configuration directory. It is is closest to the legacy ugen_ClientInit function. All of the in tree callers are updated to use this new interface Change-Id: I6a438aa70d94114c8b6626fa1396b7580ab07c07 Reviewed-on: http://gerrit.openafs.org/7131 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 5dd997762897e290083a96a2179afacc4caa2fbd Author: Marc Dionne Date: Sun Jan 22 10:03:43 2012 -0500 viced: Make Update_TargetVnodeStatus usable by replication code Add a remote flag, skip rights related code for the remote case. This will need to be revisited later; in the case that what ends up on disk is slightly different than the InStatus passed in, the changes should be preserved to pass to the replicas. Change-Id: I596698ba00174efbdc6a170a24f86ea88554f9af Reviewed-on: http://gerrit.openafs.org/6675 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 37fc2dfbb9e3a8a8ecb022febae7ccd04d7340a4 Author: Marc Dionne Date: Sun Jan 22 09:34:28 2012 -0500 viced: Make GetVolumePackageWithCall usable by replication code Add a remote flag to GetVolumePackageWithCall to make it usable for remote replication RPCs. For the remote case the checks related to access rights are skipped. Change-Id: I81db0bb1ae90c5f98cf4e59d9ba28466b312c763 Reviewed-on: http://gerrit.openafs.org/6673 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 74e5f32aaca5313f153f13c7ce9442527b758a0a Author: Marc Dionne Date: Sat Jan 21 14:42:01 2012 -0500 vol: Allow VAllocVnode of specific vnodes Add parameters to VAllocVnode to allow the caller to specifiy the vnode and unique numbers to use. This will be used by the RW replication code to keep vnode numbers in sync between the master volume and the replicas. Adapted from code by Vishal Powar and Derrick Brashear. Change-Id: Ibaf79aad2b3e7a52802f5e01f7e4c7730c3f5090 Reviewed-on: http://gerrit.openafs.org/6672 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 46474374e1914fb556d38f09f50cdbbaeaa1aef0 Author: Jeffrey Altman Date: Tue Apr 10 10:17:51 2012 -0400 Windows: AFSValidateProcessEntry, ullProcessId 64-bit In AFSValidateProcessEntry(), ullProcessId is 64-bit and must be printed as an %I64X in AFSDbgLogMsg() formats. Change-Id: I0e1cd45383c4512eb271c294674bbfe3f0f39bef Reviewed-on: http://gerrit.openafs.org/7172 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7bab9649aa9d4fe467d2f0fa6df2747a97f35950 Author: Simon Wilkinson Date: Mon Apr 9 23:13:28 2012 +0100 roken: Add rk_getprogname to Windows mapfile Add the rk_getprogname symbol to the Windows mapfile so it can be used by roken consumers. Change-Id: I77c7db3fcd9136d36e2b17b6250bfcfa6327b0e5 Reviewed-on: http://gerrit.openafs.org/7139 Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman commit bb16c6f38f30c59be1849e3b30cad6928530066b Author: Simon Wilkinson Date: Thu Apr 5 16:00:32 2012 -0400 rxkad: Remove DES include from header file Remove the hcrypto/des.h include directory from the rxkad_prototypes header file. We ship rxkad_prototypes.h, but we don't ship the hcrypto headers. Having an installed header depend upon an uninstalled one is a pain when building out-of-tree code like perl-AFS. Change-Id: Idac93ba834c84f6f9e2e49361f88d0e357a328d6 Reviewed-on: http://gerrit.openafs.org/7068 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1e858293d3aea047953edef626b8b3e36feca814 Author: Simon Wilkinson Date: Thu Apr 5 15:58:11 2012 -0400 rxkad: Move conversion functions to own file Move the various key conversion functions into thir own header file, rather than rxkad_prototypes.h. This means we can isolate the dependency on the hcrypto DES headers (which we don't install) Change-Id: I8efcbf97b6794d9573f35eec9d4a32e9ff4cf352 Reviewed-on: http://gerrit.openafs.org/7067 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 10a7428b79e44b203a132e70cf929a6ee9b18650 Author: Simon Wilkinson Date: Fri Apr 6 23:56:30 2012 +0100 shlibafsauthent: Add a load more objects The perl-AFS module needs to link against a pthreaded, PIC, library that contains all of the routines that it provides perl shims for. At the moment, libafsrpc_pic and libafsauthent_pic are the only such libraries that OpenAFS provides. Add all of the necessary objects to libafsauthent_pic such that the 2.6.2 version of perl-AFS can build with a minimal set of patches. Minimise the damage by only making these available through the static version of the libafsauthent_pic library. Change-Id: I5a2aa5f5fbcfbe15aa7a23c3ab57b34b979ab2f3 Reviewed-on: http://gerrit.openafs.org/7070 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit c3dd14759d592463eb29a1e15dc6648bfe25e583 Author: Simon Wilkinson Date: Fri Apr 6 23:54:10 2012 +0100 opr: Install the queue.h header The opr queue definition is required by a structure in the installed cellconfig.h header. So that header can still be used by out-of-tree applications, install the queue.h header too. Change-Id: Ifaf49d59df24275ff50c215de6a0f40fc2bd2230 Reviewed-on: http://gerrit.openafs.org/7069 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 7051672c7118b44e40a59b645f48428aabc9ee8a Author: Jeffrey Altman Date: Tue Apr 10 01:05:14 2012 -0400 Windows: report error on panic If afsd_notifier() is called the service is going to exit(1). Report to the service manager that the service exited with an error as well. Change-Id: I88bb2f315016ab17a526d1eab162ccde8beb0dd0 Reviewed-on: http://gerrit.openafs.org/7148 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 846cef3685edbdba9f186f595daecb5241551ec1 Author: Jeffrey Altman Date: Mon Apr 9 23:24:07 2012 -0400 Windows: correct afsredir log entries AFSVerifyEntry != AFSValidateEntry Change-Id: I5b138e121f66724afddde9eadce4c11009ec6ec4 Reviewed-on: http://gerrit.openafs.org/7147 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 779c27bf1daaf01c79c0bb7c687781151abb4383 Author: Jeffrey Altman Date: Mon Apr 9 18:41:13 2012 -0400 Windows: Refactor AFSValidateEntry Refactor AFSValidateEntry to avoid obtaining the ObjectInformation->Fcb->Resource when it isn't necessary. This will avoid contention and improve performance. The only time that the Fcb->Resource is required is when the object requires verification, the object is a FILE, and the object was successfully evaluated. Even with this reorganization there is a small window of opportunity for a deadlock to occur if a CcPurgeCacheSection() which is called with the Fcb->Resource held triggers a filter driver to issue a CreateFile and in between the two operations an invalidate object is received. Change-Id: Iddf64f030c6a608ac29a10b7a9a7e130ae6c4249 Reviewed-on: http://gerrit.openafs.org/7143 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit d1e59d2d82787d19c81e60db68c76f45560b8465 Author: Simon Wilkinson Date: Fri Sep 9 07:46:01 2011 +0100 Generalise the new background daemon code Move the new background daemon code out from under the AFS_DARWIN80_ENV ifdef into its own AFS_NEW_BKG define. This lets us use it for things other than the Darwin mv helper, on other platforms. Based on code originally written by Derrick Brashear Change-Id: Iba9431f5dc4bbbe10222b25a595cdd1ea2f592f4 Reviewed-on: http://gerrit.openafs.org/7136 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 46bdb318c45b4e93a5b297e6fdee2b2acbed4b55 Author: Andrew Deason Date: Mon Apr 9 17:16:42 2012 -0500 vos: Do not try to remove backup volume id 0 Currently we always try to delete a BK volume if we're deleting the RW. If the BK volume id is 0, this is never going to do anything, so don't try to delete it. Change-Id: I0c003040cface9999944d61637077fce1736445e Reviewed-on: http://gerrit.openafs.org/7140 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 5e7e3724fc354a17ebc05814d8693a50d859bd84 Author: Simon Wilkinson Date: Tue Apr 10 00:35:43 2012 +0100 Import the expand_path.c file from Heimdal Import expand_path.c from Heimdal so that it can be used for path parsing with the Windows version of the INI file parser. Change-Id: I764ea10edb8bb63bd45216c912c0f67597c4467a Reviewed-on: http://gerrit.openafs.org/7144 Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 4545abb09686f2af91c937548af281587a61fe55 Author: Heimdal Developers Date: Tue Apr 10 00:37:07 2012 +0100 Import of code from heimdal This commit updates the code imported from heimdal to ee7340860a22f81fb869cc431efc1fd4e5c77d34 (switch-from-svn-to-git-2542-gee73408) New files are: krb5/expand_path.c Change-Id: Ib4093b72257f9a0d1a49edb0fe6779908a78cd83 Reviewed-on: http://gerrit.openafs.org/7145 Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 3109a66fb2df8e3f2878938c5b62222e8212c0f1 Author: Simon Wilkinson Date: Sun Apr 1 12:27:04 2012 -0400 rx: Remove packet burst elements from peer struct The peer structure contains a number of elements left over from an earlier, burst based, congestion control strategy. As OpenAFS has never implemented this strategy, just remove these elements from the structure, and store 0 values for these elements in the debug packets. Change-Id: Ib50a8ac587890efb483d3c2640ead615d170db34 Reviewed-on: http://gerrit.openafs.org/7006 Reviewed-by: Derrick Brashear Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit aa6f52584ea1aea170da578328cc35e567a5b0b4 Author: Simon Wilkinson Date: Fri Nov 25 20:51:40 2011 +0000 rx: Remove the unused packet skew code We don't (and haven't, since the release of OpenAFS) use the packet skew calculations for anything. However, maintaining them requires taking locks in some critical parts of the transmission code path. For both speed, and maintainability, reasons remove the skew code from the tree - it's in git if we ever want to go back to it. Change-Id: Idc6dc80fb06ca959ad02a85f2c536a94ca3d5c02 Reviewed-on: http://gerrit.openafs.org/7004 Reviewed-by: Derrick Brashear Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 84d09a831afcfa8d0971dcbe4f1fc7823cec9e10 Author: Simon Wilkinson Date: Tue Dec 6 14:06:05 2011 +0000 rx: Hide internal packet functions Hide functions in rx_packet.c which are only used by that file by making them static. Change-Id: I22d4be2130cc4a46183254d3ba36c61644891852 Reviewed-on: http://gerrit.openafs.org/7003 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Jeffrey Altman commit 9862ac0dbb72d8f5f9f894e567261e52354e0b15 Author: Simon Wilkinson Date: Mon Dec 5 18:56:03 2011 +0000 rx: Hide struct rx_peer from the rest of the tree The peer structure is an internal RX structure, so it shouldn't be contained in public header files, or used by non-rx modules. Hide the structure definition in rx_peer.h, and convert the rx_HostOf and rx_PortOf accessors from macros into functions. This will also help with adding support for non-IPv4 addresses to RX. Change-Id: I790fa3193bfa629a2872fc5395d0146e76a2de9e Reviewed-on: http://gerrit.openafs.org/7002 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f971a36968bdcb224ff3ffb663929d4febcab5d5 Author: Marc Dionne Date: Mon Apr 9 19:00:36 2012 -0400 tests: remove unused variable in tests/util/ktime-t.c errors is set but not used - remove it. Change-Id: I00c99ac8b9c61ab2667aecbdf0fd04401d018bf8 Reviewed-on: http://gerrit.openafs.org/7142 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit cc06d00b215b4aebfdd05ad205c088e3dc1ba666 Author: Simon Wilkinson Date: Sun Sep 25 21:30:02 2011 +0100 Move configuration parsing into libcmd Rework the API for directly parsing configuration files and move it out of util/ and into libcmd, where we can actually make use of it. This is a raw API - it provides direct access to the parser. The eventual intent is that this will predominantly be contained within libcmd itself, which will then wrap this with the more general purpose Option functions Change-Id: I9f4a9c373c4123023120f69e595068ead6160507 Reviewed-on: http://gerrit.openafs.org/7132 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e4430d9d487b1b93717886eeb2621bbe50899838 Author: Simon Wilkinson Date: Sun Apr 1 15:40:24 2012 -0400 rxperf: Build again Fix rxperf so that it builds again Change-Id: I9747bc1b3fedb96d5bc317acde69f35b1dc6efb8 Reviewed-on: http://gerrit.openafs.org/7011 Reviewed-by: Derrick Brashear Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 91303604f69a317b12e22b02f74a572573c8f3ca Author: Simon Wilkinson Date: Sun Apr 1 15:15:35 2012 -0400 roken: Prefix getopt and getprogname The roken symbols for getopt and getprogname are now prefixed with 'rk_'. Fix the map file so it lists the correct symbols. Change-Id: I61adba7d5bec3e86b8e29d1eefda23df4ef91988 Reviewed-on: http://gerrit.openafs.org/7010 Reviewed-by: Derrick Brashear Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 80ec5db21d6395c29d5433541a2d9d63c975782f Author: Simon Wilkinson Date: Sun Apr 1 15:09:57 2012 -0400 all needs to be first rule in the Makefile Just running 'make' in a subdirectory will fire the first rule in that directory's Makefile. When the buildtools rules were added to roken and crypto, they were put at the start of the file, meaning that they fire in perference to 'all' Swap the ordering back so that 'make' does what would be expected Change-Id: I598a183f42c150a5da724b7403e91f89f74a0109 Reviewed-on: http://gerrit.openafs.org/7009 Reviewed-by: Derrick Brashear Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 46c5aabfc6f5af2875e8b20252a17955ad89dd38 Author: Simon Wilkinson Date: Thu Apr 5 15:50:35 2012 -0400 bos: Change to using char casts for ka functions The ka_IsZero and ka_PrintBytes function just use char strings. Cast directly, rather than going via a helper functions to simplify this code. The helper functions add complexity, and additional dependencies which cause problems with some uses of this code. Change-Id: I831ff0f8fbecec602d8c2b9112675938facfb06b Reviewed-on: http://gerrit.openafs.org/7066 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 00992c66972aeab96cca9781b02a780ab49dce23 Author: Simon Wilkinson Date: Thu Apr 5 15:43:23 2012 -0400 shlibafsrpc: Add additional XDR functions Export the afs_xdr_pointer and afs_xdr_u_char functions so that shlibafsauthent can make use of them. Change-Id: I16cf3f69904bffb3a034fd4052117845c1067a2c Reviewed-on: http://gerrit.openafs.org/7065 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 578cdc35e645489823f322b09632fca2fd7b2c31 Author: Jeffrey Altman Date: Mon Apr 9 07:18:32 2012 -0400 rx: remove peer burst elements from rx/test Subsequent patchsets will turn rx_peer into an opaque object and remove the burst elements entirely from the tree. For now remove them from rx/test Change-Id: I728f7b74497701c0ef965009dff5550e1b153696 Reviewed-on: http://gerrit.openafs.org/7130 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 01a1b79288c532f99e2da52aa13262d4c0fc1f79 Author: Simon Wilkinson Date: Wed Dec 7 18:30:00 2011 +0000 rx: rxi_AckAll isn't an event handler rxi_AckAll is coded as if it is an event handler, yet the only call site is a direct call from rx.c. So, rework the function to remove all of the event handling code, change its arguments to match, and make it static. Change-Id: I947c02bf91bf5a3f42d2a389f9393e68f3ccee4b Reviewed-on: http://gerrit.openafs.org/6999 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a20c4893670df80c15585f68d244f2f82bfa0758 Author: Simon Wilkinson Date: Wed Dec 7 19:14:03 2011 +0000 rx: Tidy up function scope in rx.c Rework headers to more clearly indicate which functions in rx.c are considered part of the 'public' rx interface, and which are for internal use only. Move internal functions either to be static in rx.c (if they are used only within that file), or defined in rx_internal.h. Remove entirely the unused function rxi_NatKeepAliveOn() Change-Id: I878374dc137f4c7e204de4b2d9ca17fa1c5db628 Reviewed-on: http://gerrit.openafs.org/6998 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit 084c2c1687fda07c768837e8fd7cc0904818f977 Author: Simon Wilkinson Date: Mon Nov 14 10:28:38 2011 +0000 rx: Remove trailing else from RX_KERNEL_TRACE The RX_KERNEL_TRACE ifdefs all contain a trailing else, which makes no logicial sense given the rest of the code. The only effect of this trailing else is to cause packets to not be sent when tracing is enabled, which probably isn't the desired behaviour. Change-Id: I2175b1d8270cd096361f349a467245b49efabf6b Reviewed-on: http://gerrit.openafs.org/7001 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit 49ddcc3b3e9645255db394af0256ea374d06766e Author: Simon Wilkinson Date: Sun Apr 8 18:31:31 2012 -0400 kas: Don't require config for help Modify the call to ka_Init in kas, so that a fully configured client isn't required in order to generate help output. In particular, permit kas -help, kas -version and kas apropos to run without initialising the ka library. This fixes a problem with running 'make check' on systems that don't have an AFS client installed (or where the AFS client is installed in a different location) Change-Id: I5edd10a319ed6aee163723f99c4f37183f572b2f Reviewed-on: http://gerrit.openafs.org/7129 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9037358b6a49d45ba8170a1d71de8b7c678d4f0f Author: Marc Dionne Date: Sat Apr 7 10:11:14 2012 -0400 tools: return error code in xfclose The code variable takes the return code from do_close, but is then unused. Return its value instead of systematically returning 0, avoiding an unused variable warning. Change-Id: I831b5b81721400ee08106d2ecdbf2b7b8e126348 Reviewed-on: http://gerrit.openafs.org/7123 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Simon Wilkinson commit 2427cb000cb70cfca5b2a61d4f5f9ca54488fc55 Author: Simon Wilkinson Date: Sat Jun 25 18:29:27 2011 +0100 rx: Remove unused ACKHACK macro rx_globals.h had a macro called ACKHACK which at one point looks like it was used to determine whether to send an ACK or not. We now have a more sophisticate mechanism for determining this, and the old macro doesn't seem to have been used in a long time. So, remove it to avoid confusion. Change-Id: I9b17cdca69c903c7a952489791088f2899ac7e60 Reviewed-on: http://gerrit.openafs.org/7000 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 2c0ed7ace6e10cb7fa053f0eb6d2a1fa45f76577 Author: Simon Wilkinson Date: Sun Apr 8 18:31:25 2012 -0400 tests: waitpid requires sys/wait.h Calling waitpid requires the sys/wait.h header to be included to guarantee that the prototype is enabled. Change-Id: I2d845236347d1be46cd750c2e766b305a64cde53 Reviewed-on: http://gerrit.openafs.org/7128 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 02f470e99d5853808bca532ff953c2bbc0b8176c Author: Simon Wilkinson Date: Sun Apr 8 18:31:15 2012 -0400 tests: rx needs roken On Linux, the RX library has a dependency on libroken for the rk_socket function. Add this dependency to the RX tests. Change-Id: I306e846524232bc136cd969ab1b8664d1c570e2d Reviewed-on: http://gerrit.openafs.org/7127 Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit bdca02dfe7df3800a3e5f3a9b10ca1d223779ef9 Author: Simon Wilkinson Date: Sat Mar 31 15:27:53 2012 -0400 cmd: Don't leak memory when constructing help string It's not critical, because we'll be exiting soon afterwards, but just to be nice, don't leak the name of every command option whilst we're constructing the help string. Caught by clang-analyzer Change-Id: I87fdb2030c6a7c5ad810f2a06820c08cbe2fb18e Reviewed-on: http://gerrit.openafs.org/7107 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4dc40bade411ddc1a0cc85ee9e242307ea2c96b2 Author: Simon Wilkinson Date: Sat Mar 31 15:23:22 2012 -0400 ktime: Don't leak token list ktime_ParsePeriodic generates a malloc'd token list when it parses the time string passed to it. Make sure that we free this list before exiting from the function. Change-Id: I6edacc6504aeec06ede5b5ae36c22f69b0d6cea0 Reviewed-on: http://gerrit.openafs.org/7106 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 63f7b0a2051b1c5cc20208b20b73c587f3d74b4f Author: Simon Wilkinson Date: Sat Mar 31 15:16:16 2012 -0400 budb: Don't leak memory Don't leak the malloc'd path variable everytime we call truncateDatabase Caught by clang-analyzer Change-Id: I583d81b136113820dab00a6eb35ca8e1aeec2cd1 Reviewed-on: http://gerrit.openafs.org/7105 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 39bdcebad71cf4c7636e7c1007f228dbd36510cb Author: Simon Wilkinson Date: Sat Mar 31 15:13:49 2012 -0400 vol-dump: Don't leak memory Don't leak a Volume structure everytime we call HandleVolume Caught by clang-analyzer Change-Id: Id8cf79dd2178b8647d88f0765ec4ad9d327a23ae Reviewed-on: http://gerrit.openafs.org/7104 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1b4d2b53ccb4bece0c5be78fa87ba085f070bdf5 Author: Simon Wilkinson Date: Sat Mar 31 15:11:10 2012 -0400 vol-dump: Make static things static vol-dump is a self contained object. Make everything in it static to make clear that these functions are not being used by other objects in the tree. Change-Id: I0345c884167ed322fdf7a6e83b77b0ae261b9d8f Reviewed-on: http://gerrit.openafs.org/7103 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit be8d8b7c78eb54f460489084650ba13f3946d7a2 Author: Simon Wilkinson Date: Sat Mar 31 14:59:47 2012 -0400 auth: Don't leak key on file parse error If we fail for any reason whilst parsing the keyfile from disk, don't leak the key structure which we allocated to store the results of the parse. Change-Id: I21a27723f96af9428465134cfb975c83e10da535 Reviewed-on: http://gerrit.openafs.org/7102 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8f39150b2718d5d758ba9d02bf3becd9c8947120 Author: Simon Wilkinson Date: Sat Mar 31 14:52:58 2012 -0400 opr: Flag assertion error handles as noreturn Flag both of our assertion error handlers as being AFS_NORETURN, so that static analysers can truncate their decision trees, and avoid false positives, based on assertion statements. Change-Id: I511c9c19a714cd3eaa5a886bf9561f577244360e Reviewed-on: http://gerrit.openafs.org/7101 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d55a5d70802a1907ef7cf9c9d20646cb69e89989 Author: Simon Wilkinson Date: Sat Mar 31 14:42:39 2012 -0400 pts: Don't malloc(0) when there's nothing to do If GetNameOrId is called with no work to do, then don't attempt to malloc a load of 0 length strings. Instead just return an empty array to the caller. Change-Id: I245cfde71d65b8a3b6df4217b90dad81e9e60a58 Reviewed-on: http://gerrit.openafs.org/7100 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8d497e575c85979c7107a0a1efd6bc75ac1d391f Author: Simon Wilkinson Date: Sat Mar 31 14:37:04 2012 -0400 bucoord: Don't malloc(0) if there's no work to do If there's no work to do, then don't attempt to malloc 0 bytes, and just return success to the user Change-Id: I060852a247acb8309c75f3670577561b5a9af591 Reviewed-on: http://gerrit.openafs.org/7099 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 54ca22a905c65e0544ce17c74fd59073f46b8c9f Author: Simon Wilkinson Date: Sat Mar 31 14:33:33 2012 -0400 auth: Handle empty lists of keys Handle the case where a list of keys may be empty - don't attempt to calloc a 0 length array, and have Put handle the case where the array being freed has no elements. Caught by clang-analyzer Change-Id: I665035cb00a8da411710a71a17ae66545702127f Reviewed-on: http://gerrit.openafs.org/7098 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5815c5ffb03e8afa0d36eef7da865e564d568296 Author: Simon Wilkinson Date: Sat Mar 31 14:23:18 2012 -0400 Unix CM: We're disconnected if RW disconnected too At the moment, the Unix CM doesn't support entering a purely RO disconnected mode (the historical AFS_IS_DISCONNECTED mode). If we go disconnected, or reconnect we always toggle RW discon at the same time as we toggle RO. Arguably, the RO disconnected mode should just be removed, as it is now superceded. For the moment, make it clear to the compiler that RW disconnected implies RO disconnected, so that static analysis can make more sensible decisions about code paths. Change-Id: I7e2d04d2cf67740c6b6285950874c6a4eaeb0537 Reviewed-on: http://gerrit.openafs.org/7097 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit de94f97649cbf36a5d8ae805a0d211573fcb11be Author: Simon Wilkinson Date: Sat Mar 31 12:20:25 2012 -0400 auth: Make sure we get AF_INET addresses from DNS The routines which do AFSDB and SRV lookups copy the results of gethostbyname directly into an afs_int32, and use the size of the result to limit the copy. If, for any reason, they get a result that isn't an int, then they will overflow this value. Check that the result we get from gethostbyname is in the INET address family, and also limit the size of the copy by the size of the destination, rather than that of the source. Caught by clang-analyzer Change-Id: Icf1426e090bc1ed382212d5de6c291d0816fb2c9 Reviewed-on: http://gerrit.openafs.org/7096 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 20265ddd78dbe4a7777b17912f2c3f00dbf2a1db Author: Simon Wilkinson Date: Sat Mar 31 11:59:16 2012 -0400 vos: Initialise total counters When VolumeStats_int calls DisplayFormat, it isn't interested in the total counters it provides. So, it doesn't both initialising the variables it passes in to hold these counters - garbage in, garbage out. However, this shows up as an uninitialises variable warning, so set them all to 0 to keep clang happy. Caught by clang-analyzer Change-Id: Ia3e1eadde6eac6fa924a4ff9ad566c5c50f9ff40 Reviewed-on: http://gerrit.openafs.org/7095 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6c1a7e68c4859573f636dec9b7e4b2ac1f5bb8a4 Author: Simon Wilkinson Date: Sat Mar 31 11:51:19 2012 -0400 vol: Don't return an uninited val from LookupNode If the SalvageHashTable for a particular node is empty, then LookupNode can return an uninitialised value to the caller. It isn't clear from a broader code inspection whether LookupNode can ever be called with an empty SalvageHashTable, but returning a NULL vsp does seem like the correct thing to do in this situation. Caught by clang-analyzer Change-Id: Ibee79e6acf7d3bdbc2995ef924338ade4de77d08 Reviewed-on: http://gerrit.openafs.org/7094 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9cbc3b77db818bd65a8ec3c5b804178449c2bb67 Author: Simon Wilkinson Date: Sat Mar 31 07:01:46 2012 -0400 fs: Fix bad frees On an error GetLastComponent was freeing completely the wrong thing. Fix this so it frees the memory it has allocated, and not some random stack pointer. Caught by clang-analyzer Change-Id: I8b65f7ab36647b876fae5cbe59d82fd8d38ce0b7 Reviewed-on: http://gerrit.openafs.org/7093 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9a007a9df43645b63a8b642029b4931928f9268b Author: Simon Wilkinson Date: Sat Mar 31 06:58:01 2012 -0400 cmd: Use strl* rather than strn* to avoid overrun The NName function was using strncat(a, b, sizeof(a)), which doesn't work as you would expect if 'a' already contains data. To avoid the potential buffer overflow, switch to just using strlcat. Caught by clang-analyzer Change-Id: Idd2c630c07a93b27e8d629339589aa6686290eae Reviewed-on: http://gerrit.openafs.org/7092 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b5ebfec329ef428e242c7458ccbfc807b25f1d63 Author: Simon Wilkinson Date: Fri Mar 30 20:36:56 2012 +0100 autoconf: One CC to rule them all (well, in userspace at least) We have 3 different ways of specifying the C compiler - CC, CCOBJ and MT_CC. On most platforms these are set to identical values by the configure script. However, this causes problems for a user who wants to override the default complier choice by doing make CC=my-favorite-compiler as this doesn't catch all of the ways we specify the compiler [1] So, change the specification of CCOBJ and MT_CC so that, by default, they reference CC, rather than copying its value. This means that on platforms where CC is the appropriate compiler to use in all situations, a user need only change CC to modify their compiler choice. [1] - it might be argued that the correct place to substitue the compiler is in configure's environment, which does currently work. However, this doesn't work with special things, like static analysers, that can build the source tree, but not the configure tests. Change-Id: Ib95e2ac00b36f33c3cb2491feacd6c898f8f61dc Reviewed-on: http://gerrit.openafs.org/7091 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3198cef8ccf0d9cb9a7479c0b973e604e21e62fc Author: Simon Wilkinson Date: Fri Mar 30 19:41:17 2012 +0100 afs: Handle reading past the end of a file ... except that this change doesn't actually handle this, it just stops clang from throwing an error about the bogus code that's already in there. This needs fixed properly ... Change-Id: Ifbf190a86037fced8104ed0843dd1e7aa0b999a7 Reviewed-on: http://gerrit.openafs.org/7090 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f1842bcb87c84e8862ca521f491215e42ce1ee2a Author: Simon Wilkinson Date: Fri Mar 30 19:40:30 2012 +0100 xdr: Len can never be negative The len parameter to xdr_len is unsigned, so can never be negative. Don't bother testing to see if it is negative, so that clang likes us again. Change-Id: Iad5f8b1b2d20ec55846bc1ef7b7499a30956e17f Reviewed-on: http://gerrit.openafs.org/7089 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5e107724f3661254cfdb693ae2d4d1c5238eba7d Author: Simon Wilkinson Date: Fri Mar 30 19:39:51 2012 +0100 rx: Remove needless braces Doing if ((a==b)) is unecessary. It's also potentially dangerous, as that's the syntax required to do assignment within an if statement. clang now issues warnings (errors in -Werror mode) when it encounters these. Remove pointless braces from the Unix CM to make clang happy. Change-Id: I031db80c3f85c0e4c4db365b1c36b5d4b4a7cb48 Reviewed-on: http://gerrit.openafs.org/7088 Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 438d6ba63cda7d7484c545a4fd181803e84d68eb Author: Simon Wilkinson Date: Fri Mar 30 19:37:36 2012 +0100 rx: Handle negative returns on packet reads rxi_RecvMsg returns an int, because it can return a negative value upon error. Don't store its return value as an unsigned int, because this may hide the potential errors. Modify the error handling loop so that errors get to where they are intended. Change-Id: I212e5881f83a2a95c177c23dbc2da2583155f1aa Reviewed-on: http://gerrit.openafs.org/7087 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4e68282e26b0c4569d25d076d54274f0da47a691 Author: Simon Wilkinson Date: Fri Mar 30 19:35:51 2012 +0100 venus: Make clang happy with strlcpy use clang now expects that strlcpy will always be used to prevent overflow of the destination string, and gives a warning if the size parameter is based solely on the length of the source string. Modify the BreakUpPath function so that it takes the size of the destination string as an argument, and uses this to limit the amount of data pasted into it. Change-Id: I86f68dd2013ca8bc4c88ade78d27c4d416a9ae94 Reviewed-on: http://gerrit.openafs.org/7086 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6d83b33324b68389d0cb8fee73f3bf3a06e9abe5 Author: Simon Wilkinson Date: Fri Mar 30 19:34:53 2012 +0100 viced: Remove pointless braces Doing if ((a==b)) is unecessary. It's also potentially dangerous, as that's the syntax required to do assignment within an if statement. clang now issues warnings (errors in -Werror mode) when it encounters these. Remove pointless braces from viced to make clang happy. Change-Id: Iee8c1d60cc2296fefd0e7f82127821dcefb931ec Reviewed-on: http://gerrit.openafs.org/7085 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 350b5d58779cc127b96497283c2d982e099b911c Author: Simon Wilkinson Date: Fri Mar 30 19:33:55 2012 +0100 vlserver: unsigned values are always >0 Maxvolidbump is defined as an unisgned int, and thus can never be less than 0. Remove the pointless check, as it just makes clang sad. Change-Id: I78a2c8f6fcaee17196e37183256e6935cdca183b Reviewed-on: http://gerrit.openafs.org/7084 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 408afc5690fc8ac3b6942983765ab36e63d2534d Author: Simon Wilkinson Date: Fri Mar 30 19:31:10 2012 +0100 vol: Call memset with the correct size Call memset with the size of the structure we're initialising to 0, and not the size of the pointer to that structure. Caught by clang's new warnings. Change-Id: I8cded7bed4e289e9603778e06873f94fd3924aa8 Reviewed-on: http://gerrit.openafs.org/7083 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e202822b8efd7511f8652064cd8831c0a049dce6 Author: Simon Wilkinson Date: Thu Jan 5 10:51:06 2012 +0000 rxgen: Tidy up server side freeing The way in which rxgen handles freeing of objects allocated by the RPC stub has evolved over the years. Originally, there appears to have been a "somefrees" parameter which was used to track whether objects required freeing or not. However, this parameter has fallen in to disuse, as support for typedefs and unions were added, and which parameters require freed is now tracked within the description structures themselves. So, get rid of somefrees, as it is now just confusing. The generated code to free a set of RPC arguments currently looks something like: fail: z_xdrs->x_op = XDR_FREE; if (!xdr_string(z_xdrs, &Name, AFSNAMEMAX)) goto fail1; if (!xdr_string(z_xdrs, &OfflineMsg, AFSOPAQUEMAX)) goto fail1; if (!xdr_string(z_xdrs, &Motd, AFSOPAQUEMAX)) goto fail1; if (rx_enable_stats) { rx_RecordCallStatistics(z_call, RXAFS_STATINDEX, 19, RXAFS_NO_OF_STAT_FUNCS, 0); } return z_result; fail1: if (rx_enable_stats) { rx_RecordCallStatistics(z_call, RXAFS_STATINDEX, 19, RXAFS_NO_OF_STAT_FUNCS, 0); } return RXGEN_SS_XDRFREE; Which isn't very efficient, or easy to modify. So, change the code generator to produce code that looks like: fail: z_xdrs->x_op = XDR_FREE; if ((!xdr_string(z_xdrs, &Name, AFSNAMEMAX)) || (!xdr_string(z_xdrs, &OfflineMsg, AFSOPAQUEMAX)) || (!xdr_string(z_xdrs, &Motd, AFSOPAQUEMAX))) z_result = RXGEN_SS_XDRFREE; if (rx_enable_stats) { rx_RecordCallStatistics(z_call, RXAFS_STATINDEX, 19, RXAFS_NO_OF_STAT_FUNCS, 0); } return z_result; This does the same thing, but is easier to read and is more consistent with the way that we structure marshalling and unmarshalling. Change-Id: I8b56f320c05c5d4270daf409d57514cbe8d076f5 Reviewed-on: http://gerrit.openafs.org/7005 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 709a6358e1d1f6cc0b025522e1e595c50bb2b733 Author: Simon Wilkinson Date: Sun Apr 8 13:58:25 2012 +0100 fileserver: Fix NeverAttach support Commit 35becabed870d4bfe49abaa499d99a3ffb0a2d31 added support for the /vicepXX/NeverAttach. However this code only appears to work on Linux. It fails build testing on (at least) Mac OS X, FreeBSD, and AIX. Modify the code so that the NeverAttach call uses the same variable to locate the path of the partition as the AlwaysAttach call does. Change-Id: Ic87e112f362ac6d23376fb0a263d021c29c0b06e Reviewed-on: http://gerrit.openafs.org/7125 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f26330904607c6c939c037587b473644deea669d Author: Jason Edgecombe Date: Sun Apr 8 12:10:58 2012 -0400 DOC: Factored common text out of the vos_backup and vos_dump man pages Change-Id: I84bd722834297778ab2e719996b2f8528d8706d6 Reviewed-on: http://gerrit.openafs.org/7126 Reviewed-by: Simon Wilkinson Tested-by: Simon Wilkinson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 58be19d792e6b8e93fbd49bc4ef04bbb8f4560ef Author: Simon Wilkinson Date: Fri Mar 30 19:30:18 2012 +0100 vol: Remove unneeded braces Doing if ((a==b)) is unecessary. It's also potentially dangerous, as that's the syntax required to do assignment within an if statement. clang now issues warnings (errors in -Werror mode) when it encounters these. Remove pointless braces from vol to make clang happy. Change-Id: I805c52fd76de4d028741ae4382b747917581d2f2 Reviewed-on: http://gerrit.openafs.org/7082 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit a0af50a9dcab6935ad7701b81e76cab750633615 Author: Simon Wilkinson Date: Fri Mar 30 19:27:30 2012 +0100 vice & vol: Cast FDH_SYNC results to void FDH_SYNC is a macro which returns a result. This leads to clang complaining about an unused expression when the macro is expanded. Avoid this by just casting the macro result to (void) when we aren't interested in it. Change-Id: I99eaac7432211d6b0cab10c3e1af0c6d4e2092a8 Reviewed-on: http://gerrit.openafs.org/7081 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 4d4e4dde7c0efcf238251b1ea1dc3933810062d0 Author: Simon Wilkinson Date: Fri Mar 30 19:24:23 2012 +0100 ptserver: Remove redundant braces Doing if ((a==b)) is unecessary. It's also potentially dangerous, as that's the syntax required to do assignment within an if statement. clang now issues warnings (errors in -Werror mode) when it encounters these. Remove pointless braces from ptserver to make clang happy. Change-Id: I1bf1698b1d12f8228e0456d3d2dff4439879cfba Reviewed-on: http://gerrit.openafs.org/7080 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 10a02e70c38c5ccb23f95f0990643230b9709ca5 Author: Simon Wilkinson Date: Fri Mar 30 19:23:24 2012 +0100 pam: Don't check if unsigned is < 0 uid_t is unsigned, so checking to see if it is less than 0 is a bit redundant. Remove the checks to silence a warning from clang. Change-Id: I5ae429247d328b3320063b4c035f6e5bb101620b Reviewed-on: http://gerrit.openafs.org/7079 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 0d2c2b454bc83f6b8d1b5d7294dcaccdaf96455c Author: Simon Wilkinson Date: Fri Mar 30 19:21:41 2012 +0100 pam: Use &, not && for bitwise operations All of the LOG_MASK() checks are performing bitwise operations, and so should be using '&', not && (which will always be true, providing logmask is non-zero) Caught by clang's new error messages Change-Id: Idce9229b7351adc6c15279c94e1cc1e7fc45596e Reviewed-on: http://gerrit.openafs.org/7078 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit ca9fa87543df616b5bc2955090f6a8260da3efc1 Author: Simon Wilkinson Date: Sat Apr 7 12:44:17 2012 +0100 tools: Use native 64 bit integer Modify the tools directory to use a native 64 bit integer type, rather than rolling its own. Change-Id: Ib2545b43aa3bf34e8917a4ae7ae4ee3f4be6d1c0 Reviewed-on: http://gerrit.openafs.org/7118 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cc489b880c86d4e4e16dc9ca98c6dd3b1b93d47c Author: Derrick Brashear Date: Sat Apr 7 08:12:48 2012 -0400 ubik: utst needs opr for assert in util add libopr after libafsutil so assert can be satisfied Change-Id: I77494dc529f21246ae84f6522a578b14a803b6a9 Reviewed-on: http://gerrit.openafs.org/7116 Reviewed-by: Simon Wilkinson Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 35becabed870d4bfe49abaa499d99a3ffb0a2d31 Author: Jason Edgecombe Date: Fri Apr 6 20:58:13 2012 -0400 Fileserver: Add the /vicepXX/NeverAttach flag to skip mounting a partition FIXES 130561 LICENSE MIT Change-Id: Ib465a978d08238d83c4c0a03813f5ec240f9bd9b Reviewed-on: http://gerrit.openafs.org/7108 Reviewed-by: Derrick Brashear Tested-by: Jason Edgecombe commit 12eb3e26a3149527997ca6039ebdeb7cafbf9012 Author: Simon Wilkinson Date: Sat Apr 7 13:26:25 2012 +0100 tools: Add roken.h to afsdump On AIX, building afsdump currently produces the following warnings: "afsdump_scan.c", line 34.10: 1506-296 (S) #include file not found. "afsdump_scan.c", line 275.32: 1506-045 (S) Undeclared identifier O_RDWR. "afsdump_scan.c", line 275.41: 1506-045 (S) Undeclared identifier O_CREAT. "afsdump_scan.c", line 275.51: 1506-045 (S) Undeclared identifier O_TRUNC. "afsdump_scan.c", line 305.29: 1506-045 (S) Undeclared identifier O_RDONLY. Rather than including more platform specific goo, just add a roken.h include to the various files to pull in the necessary headers. Change-Id: I46db92511c804cfc9b5d67b97cd3596480d306d6 Reviewed-on: http://gerrit.openafs.org/7117 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 47545cb93d292a89d21c3d4f554584d9f00a9103 Author: Simon Wilkinson Date: Sat Apr 7 12:36:54 2012 +0100 tools: Rename u_int64 to solve AIX problem AIX's system headers define u_int64. Rename our local 64 bit integer representation as dt_uint64 to avoid this collision. Change-Id: I997e3ff89df369a5f0643921a846a759bf8fa90b Reviewed-on: http://gerrit.openafs.org/7115 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 1e30c00e7d9b45d65e819d39414939f2d5f7631b Author: Simon Wilkinson Date: Fri Mar 30 19:18:47 2012 +0100 libafscp: Use strdup, rather than rolling our own A = malloc(strlen(B)+ 1); memset(A, 0, strlen(B) + 1); strlcpy(A, B, strlen(B) + 1); can be more simply written as A = strdup(B); Doing so also avoids a warning from clang that strlcpy isn't checking for A overflowing. Change-Id: I0e21f86eda7bdc0ce869e651c5ceb23d7494e1e2 Reviewed-on: http://gerrit.openafs.org/7077 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 34afb3e6b903fc1659b1c869fa2fb4226038e076 Author: Simon Wilkinson Date: Fri Mar 30 19:16:50 2012 +0100 libadmin: Clear structures according to their size. memset(a, 0, sizeof(a)) is rarely correct, unless a is an error. Use the size of the destination structure, rather than the size of a pointer to it when deciding how much memory to clear. Caught by clang's new error messages Change-Id: Ia6c566534efae2f67f1b9bd22198d352238a987c Reviewed-on: http://gerrit.openafs.org/7076 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit b5f75c122875b4212eb1a885d09bfdd63f537a19 Author: Simon Wilkinson Date: Fri Mar 30 19:14:38 2012 +0100 libadmin: read returns an ssize_t, not a size_t size_t is unsigned, and therefore can never be less than 0. Using it as a return code from read() means that we never catch read errors. read() is defined as returning ssize_t, so just use this to capture its return code. Caught by clang's new error messages Change-Id: Ibf61119dec2c64fd4b1e16e6ef02178e427116f0 Reviewed-on: http://gerrit.openafs.org/7075 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 345656ec140f0156f2076629bdfc84940c02160b Author: Simon Wilkinson Date: Fri Mar 30 19:12:37 2012 +0100 Unix CM: Purge needless brackets Doing if ((a==b)) is unecessary. It's also potentially dangerous, as that's the syntax required to do assignment within an if statement. clang now issues warnings (errors in -Werror mode) when it encounters these. Remove pointless braces from the Unix CM to make clang happy. Change-Id: I0f1558b42a487e1de722b77f8423500365a20eee Reviewed-on: http://gerrit.openafs.org/7074 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 1d8937b860509fcaabb041bc14faf7aa3023f3c9 Author: Simon Wilkinson Date: Fri Mar 30 19:09:36 2012 +0100 DARWIN: Make crfree() an inline function On Darwin 100, we have #define crfree(X) kauth_cred_unref(&X) which expands in one place to kauth_cred_unref(&(afs_ucred_t *)avc->linkData) clang warns about this in -Werror mode, because arguments to the address-of operator must be lvalues. To fix this make crfree an inline function, which will then let us do the indirection required. Change-Id: Ic5adb63dcdc11e04c1e428c32e85f33a987fcf42 Reviewed-on: http://gerrit.openafs.org/7073 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 2454e3d96af2be9f316a5c50199d34444defe4a8 Author: Simon Wilkinson Date: Sun Aug 7 19:41:51 2011 +0100 util: LogCommandLine has to have a command line Add an assert() to LogCommandLine to catch the case where it is called without a command line to log. Change-Id: Ia1be28b3a1d1d4e144626976f0f82b9675809c0a Reviewed-on: http://gerrit.openafs.org/7072 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 047ff7e9fd283f67ede2b873e3ad64ebbcf8d3ef Author: Simon Wilkinson Date: Tue Jun 15 19:20:50 2010 +0100 Salvager: Don't use garbage vnodes when Testing If Testing is true, and the salvage wants to repair the '.' file, then it will end up using a garbage value as the location of the repaired file (vnodeNumber gets set to fid.Vnode, but fid.Vnode is uninitialised) Fix this by making it behave as if no repair is necessary when running in Testing mode. It's unclear that this is entirely the correct answer, but it's definitely better than the current behaviour. Caught by clang-analyzer Change-Id: I1bddd889b3350cf31fe6384573e49e82159c7095 Reviewed-on: http://gerrit.openafs.org/7071 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 8648a8c45b593dce8982deec41e3caf48e80dc0c Author: Jeffrey Altman Date: Fri Apr 6 22:30:41 2012 -0400 Windows: Disk Full errors instead of Quota Exceeded The AFS Redirector does not support the Windows quota interface therefore return STATUS_DISK_FULL for all over quota conditions. Change-Id: Idd8755b26ab65e423330eeb6cb0e1806dd6306c9 Reviewed-on: http://gerrit.openafs.org/7111 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 85fad9a69f0d3df73ec8285722e788fe49ae9459 Author: Jeffrey Altman Date: Fri Apr 6 22:18:59 2012 -0400 Windows: AFSCheckCellName one level of indirection The parameter 'CellName' is a UNICODE_STRING *. No need to take the pointer of it to pass to AFSDbgLogMsg(). Change-Id: Id49f95058541a1a0ddaa0db9cb2c5ef0e5a32c64 Reviewed-on: http://gerrit.openafs.org/7109 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c1ef200a76b334309b0202c70165374305beb8fb Author: Jeffrey Altman Date: Thu Apr 5 07:38:47 2012 -0400 Windows: CleanACLEnt requires cm_scache write locked Therefore, cm_FindACLCache() must be called with the cm_scache_t write-locked and therefore cm_HaveAccessRights() must obtain a write-lock and not a read-lock on 'aclScp'. Change-Id: I884cd5a70a793d893999bf750264e76d436f40a2 Reviewed-on: http://gerrit.openafs.org/7049 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3db44bacd4b3ac3b9ed63bcf671b03f7f7eeb8af Author: Jeffrey Altman Date: Mon Apr 2 18:10:07 2012 -0400 Windows: Name Array store mount point and volume root Modify the Name Array processing to store both the mount point object and the volume root directory object in the array. This is necessary for proper operation of AFSPopulateNameArrayFromRelatedArray when the DirectoryCB parameter is a mount point object. Modify AFSBackupEntry to remove two entries if a volume root directory entry is being removed. Remove AFSReplaceCurrentElement() as it is no longer used. Change-Id: Iaa0a4effc3448351d04bcdd72be9ee726ffe4e9a Reviewed-on: http://gerrit.openafs.org/7021 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 048b24ae2b8accb33bc92ab9fdc4cdda14bc425b Author: Jeffrey Altman Date: Mon Apr 2 07:10:17 2012 -0400 Windows: do not call time() in a loop When checking for ACL Entry expiration, obtain the current time once per call to cm_FindACLCache() instead of once per ACL entry. Change-Id: I4da9e290a43315bd226f6c1b5dc12abe45ed19f5 Reviewed-on: http://gerrit.openafs.org/7016 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7c5b8346b305911c981620fff70503008e9cf488 Author: Jeffrey Altman Date: Sun Apr 1 01:17:21 2012 -0400 Windows: Add per object per user EACCES caching If a cache manager is told by a file server that the user does not have permission to fetch status for an object, the cache manager must avoid requesting a fetch status a second time for that object for the same user. Doing so risks triggering the rx call abort throttling which can have a significant impact on end user usability of the Explorer Shell and other applications. The cache manager cannot make a decision on whether or not to issue an RXAFS_FetchStatus RPC based upon the type of the object because the type is unknown to the cache manager. A file server will succeed a FetchStatus request when the parent directory ACL grants lookup permission if the object in question is the directory or is a symlink/mountpoint. Only file objects require read/write permissions to obtain status information. The rx call abort throttling is broken is many ways and must be avoided. Call aborts are tracked by call channel and occur whenever ten call aborts are issued on the same call channel in a row regardless of the amount of time that has elapsed. The EACCES cache works by storing EACCES events by the FID and User for which the event occurred, when it occurred and the FID of the parent directory. By definition, the parent FID of a volume root directory is itself. Entries are removed from the cache under the following circumstances: 1. When the parent FID's callback expires or is replaced. 2. When the parent FID's cm_scache object is recycled. 3. When the user's tokens expire or are replaced. Entries are not removed when the FID's cm_scache object is recycled. This patchset also implements correct behavior if the VLF_DFSFILESET flag is set on a volume. Change-Id: I69507601f9872c9544e52a1d5e01064fa42efb81 Reviewed-on: http://gerrit.openafs.org/6996 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4c5819e22852afe4e83bdcd05268864ac1953a8c Author: Jeffrey Altman Date: Mon Apr 2 13:41:27 2012 -0400 Windows: Fail recursive path evaluation with access denied Matching the behavior of the AFS SMB server, the afs redirector should return STATUS_ACCESS_DENIED if File ID recursion is detected in the Name Array for any given path. Change-Id: Ie846b42a228c634f1c38a8103332c7bb72803d1f Reviewed-on: http://gerrit.openafs.org/7018 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3d024372293a279cf3a6cbdfe75a384ec7c8b200 Author: Jeffrey Altman Date: Thu Apr 5 23:14:18 2012 -0400 Windows: Check Avail Space on extending SetEndOfFile When cm_SetLength() is called with an extending file length, check the available free space in the volume to see if the new length will fit. If not, return CM_ERROR_SPACE. This permits applications to discover that there is insufficient space prior to writing all of the data into the windows page cache at which point it will be too late. There is still the possibility of a race that can result in data loss if two applications are writing into the same volume at the same time and there is insufficient room. Change-Id: Ieef2c48f5b6edc8d101b6527af3a3f87fe55f6ca Reviewed-on: http://gerrit.openafs.org/7057 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 613f14727fbb404fb7fc1cac953dda46b671222e Author: Andrew Deason Date: Thu Apr 5 17:55:17 2012 -0500 viced: Do not offline volume on successful IH_DEC If we fail to CoW a file due to ENOSPC, we try to IH_DEC the new file copy, and if IH_DEC fails, we take the volume offline for salvaging. But IH_DEC returns 0 on success, not on error. So take the salvaging path when we get non-zero. Change-Id: I4f0276fd4f077ca42087e92af8ba77b4e5347422 Reviewed-on: http://gerrit.openafs.org/7054 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c19d1b875fab472dc7474c70529ab7fc2f7bf106 Author: Jeffrey Altman Date: Thu Apr 5 14:40:18 2012 -0400 Windows: Redirector must query volume size when asked The volume size and free space cannot be obtained at volume initialization and then re-used for all FileFsSizeInformation and FileFsFullSizeInformation queries. Doing so prevents Windows from being able to see changes in the available free space. The maximum size of the volume is not the size of the partition and the available space on the partition unless there is no quota applied to the volume. If there is a quota, then the free space is the smaller of the available quota and the available partition space. Add a new ioctl request to permit the redirector to query the current Volume Size Information details. Change-Id: I3414f314d7780fd12489e0d278b71bcadc1a72e6 Reviewed-on: http://gerrit.openafs.org/7052 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7881de8cc17924120e45e498add1adc63fd85e5c Author: Jeffrey Altman Date: Thu Apr 5 17:00:28 2012 -0400 Windows: cm_AddACLCache lock ordering cm_aclLock must be obtained after cm_user_t mx and cm_cellLock. cm_user_t mx must be obtained before cm_cellLock. Change-Id: Iaf9fcf17c7ea50f2f5a83aefa759b7077ef28be6 Reviewed-on: http://gerrit.openafs.org/7051 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ea82d1014372383334fd05c01db135da870d3928 Author: Jeffrey Altman Date: Thu Apr 5 17:16:15 2012 -0400 rx: fix bad merge 95c38dff3740d7e24971ceb5875c06e7abfce102 An extra CALL_HOLD(call, RX_CALL_REFCOUNT_BEGIN) was added in rx_NewCall(). Revert it. Change-Id: Ief1493ae9ec69ace5afd534a97fbf43f55872153 Reviewed-on: http://gerrit.openafs.org/7050 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ba3ba96976f17cb5e83fae1e0a42fd6564b75719 Author: Jeffrey Altman Date: Thu Apr 5 00:11:11 2012 -0400 Windows: AFSVerifyEntry purge file data on DV change If the data version change is detected during AFSVerifyEntry(), treat it the same as if the AFS_OBJECT_FLAGS_VERIFY_DATA flag had been previous set. Purge the old data from the Windows file cache. Be sure to set the new metadata after the purge so that if the file length was truncated the old data beyond the truncation point will still be purged. Change-Id: I80c33f303c6499f22955e9874b2f4c50d666a3cb Reviewed-on: http://gerrit.openafs.org/7048 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1a458e8e72455e480ccf4c0e3fd926dd9af9beea Author: Andrew Deason Date: Tue Apr 3 18:13:17 2012 -0500 xstat_cm_test: Print all call info stats For CM xstat collecton 0 (function call statistics), there are many more stats given to us on the wire than we currently print. Change this so we print out everything in the afs_CMCallStats struct. Change-Id: I959571731fe8bf2a714e4cb3b47c52c39c516621 Reviewed-on: http://gerrit.openafs.org/7047 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e6e8e26a3d7d97f2ad056251859f258fee509e7e Author: Simon Wilkinson Date: Sun Jan 8 11:49:53 2012 +0000 rx: Get rid of some uneccessary temporary vars rx_ReadProc and rx_ReadProc32 originally used temporary variables (which were, at one time, declared as "register") to hand optimise a couple of routines. With the removal of register throughout our code, this is no longer helpful. Change-Id: Id21a931408489b985b726af620a687b838303a86 Reviewed-on: http://gerrit.openafs.org/6997 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e53e189c3e99e28d31e0e1d1b52041aadcbd3ffa Author: Jeffrey Altman Date: Sun Apr 1 23:09:32 2012 -0400 Windows: Redirector Dir Enumeration Bug An enumerated directory was not validated properly if AFSValidateEntry() was called with PurgeData == FALSE even when a data version change was detected. Now it does. FIXES 130636 Change-Id: Ic5d2fd62b40fb16652fc09d459caf43905566d37 Reviewed-on: http://gerrit.openafs.org/7012 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2982f8c5b1182f855c439e54778fd0bc5bd9a2d2 Author: Derrick Brashear Date: Tue Apr 3 13:51:38 2012 -0400 tools: move useful tools from test dir to tools dir move the dump utilities out of tests Change-Id: I21d0550e09fde3b1feb078bde4e9b4dc7ca3614e Reviewed-on: http://gerrit.openafs.org/7043 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 72f5d88acc752ff447a9e63327c135473326a34d Author: Derrick Brashear Date: Thu Mar 29 10:44:53 2012 -0400 linux: update spec requirements don't require things which don't exist on el5. do require them in el6. require kernel-devel if building modules don't do anything involving the kernel if not building modules if we can figure out that we don't have 2.4 based on the version, avoiding the need to depend on kernel-devel just to build an srpm. Change-Id: I4bef6a00f50935b8efa057b42cd2147a22c0c1e6 Reviewed-on: http://gerrit.openafs.org/6985 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 33903244ae2408dd86ee260d111e74dec0940abd Author: Derrick Brashear Date: Fri Mar 30 16:15:52 2012 -0400 linux: make mockbuild more reliable previously, a "cached" repo which was assumed to be of the same releasever and arch of the host was created in /var/tmp, which would screw up repoquery across a multiple-OS-build. well, you can tell repoquery what you really mean. so now we do. Change-Id: I5f477e4eeddb755fcd410a37a2b58e1334da2863 Reviewed-on: http://gerrit.openafs.org/6991 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a66268f69a2da0dc21957338eebe5c91b279ddda Author: Andrew Deason Date: Mon Apr 2 16:16:37 2012 -0500 SOLARIS: Correct misplaced osi_machdep.h #endif Commit 64778fd7bece52360482f9a51f19b34dac1d2678 removed some '#ifdef KERNEL' blocks, but for one block in SOLARIS/osi_machdep.h, the wrong trailing #endif was removed. This effectively makes the last part of the file Solaris 10+ only, and bypasses the header guard. On systems before Solaris 10, this causes us to lose the osi_procname definition, which eventually shows up as an undefined symbol. So, reinstate the original #endif, and remove the correct #endif instead. Change-Id: I28a78dabc2c65abeadc003b95600026c3cb68e37 Reviewed-on: http://gerrit.openafs.org/7042 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit e1eba145843996ce50eae79356a3f88b92a2ea86 Author: Jeffrey Altman Date: Tue Apr 3 09:09:42 2012 -0400 Windows: cm_GetNewSCache must return NULL on failure cm_GetNewSCache was leaking a valid cm_scache_t pointer in some failure cases. On failure, explicitly set the return value to NULL. Change-Id: I074b278f969224aa535abe256ac33a90d0f4e62d Reviewed-on: http://gerrit.openafs.org/7037 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e3a50ea0d314df4e8caf0e25c57042a5f2a6e008 Author: Jeffrey Altman Date: Thu Jan 12 09:31:43 2012 -0500 Rx: give grow mtu its own call ref count type Change-Id: Ibf62408203d615ff87454a9ecb50c38b6db6d45a Reviewed-on: http://gerrit.openafs.org/6543 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman Tested-by: BuildBot commit 95c38dff3740d7e24971ceb5875c06e7abfce102 Author: Jeffrey Altman Date: Sun Jan 29 13:52:17 2012 -0500 rx: conn->callNumber protected by conn_call_lock The conn->callNumber array should be protected by the conn_call_lock since the conn_call_lock is what protects the binding of calls to connection channels. Change-Id: I9f9b4e8f90d1e4ebbc4429af286358807784d84f Reviewed-on: http://gerrit.openafs.org/6629 Tested-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Jeffrey Altman commit 33185db16aca40a3bdbcb66caf994924220b5012 Author: Jeffrey Altman Date: Fri Jan 20 01:50:01 2012 -0500 Rx: rxi_FreeCall conn_call_lock vs call->lock deadlock The conn->conn_call_lock is held before call->lock in the lock hierarchy which is violated within rxi_FreeCall(). While the deadlock is rare, it is possible and has been experienced on both Windows and Linux. Change the signature of rxi_FreeCall to return 1 if it frees the call and 0 if it does not. Due to the lock hierarchy violation use MUTEX_TRYENTER() to attempt to obtain the conn->conn_call_lock. If the lock cannot be obtained set the call state to dally and return. If the conn_call_lock can be obtained, behave as we did before this patchset. Only increment the callNumber if the original call->state was dally or hold and the conn_call_lock could be obtained. We must not increment the callNumber otherwise. Doing so can result in call numbers being skipped when the conn->call slot is reused. Change-Id: Ic10bd2004e9b06df319c2f2efaa0b37bcb90c896 Reviewed-on: http://gerrit.openafs.org/6443 Tested-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 0ca4dc279a49141a63727134898c58f30ad15e8d Author: Jeffrey Altman Date: Mon Apr 2 17:32:39 2012 -0400 Windows: Pass name array to AFSRetrieveFileInformation AFSRetrieveFileInformation does not parse the complete path. That information is available in the Ccb->NameArray. If the object on which AFSRetrieveFileInformation is called is a relative symlink containing ".." references, the full contents of the evaluated path is required for context. Pass the Ccb->NameArray so that it is available. Change-Id: Id02d3fb47df74c0a0de849eb10550be76150ce8b Reviewed-on: http://gerrit.openafs.org/7020 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 766c62b918dba793f738a075918947b8dad76229 Author: Jeffrey Altman Date: Mon Apr 2 13:39:17 2012 -0400 Windows: Use hash when comparing File IDs in redirector AFSIsEqualFid() should use the hash value included in the FileId as part of the comparison algorithm. Change-Id: I2723e2e9795ce16869c6a0dc33611078b04a6a28 Reviewed-on: http://gerrit.openafs.org/7017 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0896602f6e7c409990fcae40dd54f84260312472 Author: Jeffrey Altman Date: Mon Apr 2 06:57:53 2012 -0400 Windows FindACLCache must hold scp write locked In the SMB modules, calls to cm_FindACLCache() were not holding the cm_scache_t rwlock writed locked as required. Change-Id: I213912eb8dd570ea918d92602c647e6aed8cfccb Reviewed-on: http://gerrit.openafs.org/7015 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 68a42ed88db3e457b6d5169c2beb8fa7bb144ea3 Author: Jeffrey Altman Date: Mon Apr 2 06:57:02 2012 -0400 Windows: fix indentation Change-Id: Id3cd061badd1c8c4e22843e84999954e5424511d Reviewed-on: http://gerrit.openafs.org/7014 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b84496b8593dd9c220022c78d8b9b571c7b78e8d Author: Jeffrey Altman Date: Sun Apr 1 12:40:36 2012 -0400 Windows: Freelance HaveAccessRights Change the test in cm_HaveAccessRights related to Freelance mode. All objects in the freelance cell and root volume by definition have access rights. Change-Id: Ibb96b12c15728bc6b711b3d7f2ad892c55109cbf Reviewed-on: http://gerrit.openafs.org/7008 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 9a76279ef154730150594cc560a34eada3ae9fe4 Author: Jeffrey Altman Date: Sun Apr 1 12:11:40 2012 -0400 Windows: optimize InitCallback3 processing Do not drop and acquire locks if the cm_scache_t does not have a callback. Change-Id: I6f84729838e7e4c2d84c0a40f0811ed837b79287 Reviewed-on: http://gerrit.openafs.org/7007 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 8fcdef55f8e422f4762f38374be32993d2b2551e Author: Jeffrey Altman Date: Fri Mar 30 15:13:55 2012 -0400 Windows: Record callback issued time Save the time at which a callback was issued. This can be used in a later patchset to determine if a callback was issued after a negative access entry for a {fid,user} pair. Change-Id: Iab54eb729fd5f2a2daf4855b7e7e75245dc28051 Reviewed-on: http://gerrit.openafs.org/6995 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit fd919b3ae52695b8a83fabc736c8ea82f383a5c9 Author: Jeffrey Altman Date: Fri Mar 30 14:58:11 2012 -0400 Windows: Implement cm_TGTLifeTime() cm_aclent.h defined cm_TGTLifeTime() as a macro that always returned 0x7fffffff. Implement cm_TGTLifeTime() as a function that returns the actual token lifetime. Change-Id: I8b19626395f536db248ae8324b13e49eda9a1a87 Reviewed-on: http://gerrit.openafs.org/6994 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit cf81cd790f71b7ce83c802df8e7094f93bff63fb Author: Jeffrey Altman Date: Fri Mar 30 12:24:43 2012 -0400 Windows: add parent FID to cm_GetSCache When a cm_scache_t object is created in 98% of the time, the parent FID is known to the cache manager. Normally the cache manager will obtain the parent info from the AFSFetchStatus structure but if the user credentials do not permit status info to be obtained from the file server the parent info will be unavailable. Having the parent directory FID is useful for debugging but can also be used to check the user's access rights on the parent directory. Change-Id: I262345bc686392a4edef4c627182a8a67a392aa2 Reviewed-on: http://gerrit.openafs.org/6993 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit e8f6dfac59fe042a04a9ac5eb3c37356cb3a22a3 Author: Jeffrey Altman Date: Mon Apr 2 22:35:41 2012 -0400 viced: AFSDisk, AFSFetchVolumeStatus Int31 PartSize The AFSDisk and AFSFetchVolumeStatus structures use signed 32-bit integers for representation partition size and available blocks. RoundInt64ToInt31() should be used instead of RoundInt64ToInt32() when assigning their values. Change-Id: I3834141fce2d54ce8bdfac3dc566074583bb305e Reviewed-on: http://gerrit.openafs.org/7022 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 223cbf5a5bc1812f3b2ce86a7b05dc56f517c6f8 Author: Jeffrey Altman Date: Fri Mar 23 13:41:10 2012 -0400 rx: handle clock reversals for call timeouts If the clock is set backwards, call timeouts will not trigger until the clock regains its original value plus the timeout period. In rxi_CheckCall(), look for a backward clock shift and if one is noticed, fail the call with RX_CALL_TIMEOUT. Change-Id: I7ca5abee165fc21d72d3881670f9522d315b4982 Reviewed-on: http://gerrit.openafs.org/6943 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 9498cebd11ac26ed7986b5496440159f7ef745f2 Author: Simon Wilkinson Date: Sat Mar 31 19:21:04 2012 -0400 viced: Do error translation for InlineBulkStatus When a host has requested universal errors, error code conversion is performed in the CallPostamble. However, the InlineBulkStatus errorcodes are passed as part of the data set, not as RX errors, so this translation is not performed. Fix this so that we also translate error codes that are part of the InlineBulkStatus response. Change-Id: Ia23232d948990bdf9b7c4e5e0bcd8be087289a03 Reviewed-on: http://gerrit.openafs.org/6992 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 134943a7a55d73f567d3f336e06783c405347fa7 Author: Jeffrey Altman Date: Thu Mar 29 23:49:43 2012 -0400 Windows: avoid deadlock with Trend Micro Trend Micro's anti-virus driver attempts to open the file in response to CcPurgeCacheSection(). While processing AFSSetDispositionInfo() the Fcb->NPFcb->Resource is held which is also required if a status verification is required during the CreateFile operation. That results in a deadlock. Avoid the deadlock by setting the PENDING_DELETE flag prior to calling CcPurgeCacheSection(). Change-Id: I40d93d70e120525343afb917d473ad79a1f36e29 Reviewed-on: http://gerrit.openafs.org/6988 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6cb256375bb0aab73cc802e50620f1fcf0f564e4 Author: Jeffrey Altman Date: Thu Mar 29 23:39:17 2012 -0400 Windows: Use ulFilter in AFSInvalidateObject ulFilter was assigned appropriate values but it was not passed to AFSFsRtlNotifyFullReportChange as a parameter. Change-Id: Ie362b2b762e599a7cb040640539a098fdf80a259 Reviewed-on: http://gerrit.openafs.org/6987 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0bc328b9729cb5bfe3085ac01455fe82c9cef7a4 Author: Jeffrey Altman Date: Tue Mar 27 00:16:30 2012 -0400 Windows: ObjectInformation.ObjectReferenceCount comparison If there is an undercount of the ObjectReferenceCount, consider it the same as if the object count is zero for comparison purposes. Change-Id: Ia4ec2d1194f00cb530e7a50ed9db9c71cc4c5313 Reviewed-on: http://gerrit.openafs.org/6970 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 05a703a320e549efe7f68e27cfa86e391cf5839d Author: Jeffrey Altman Date: Tue Mar 27 14:18:14 2012 -0400 Windows: Add Name Array Processing Trace Subsystem Change-Id: Ief4026e9bb3045046a031b56ceb584f2daf1cf43 Reviewed-on: http://gerrit.openafs.org/6973 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Tested-by: Jeffrey Altman commit 32ad50bcee9a5b087bea7e0c9c1cfe3d1e58293e Author: Jeffrey Altman Date: Mon Mar 26 11:10:36 2012 -0400 Windows: AFSInvalidateObject can overwrite input param AFSInvalidateObject() must not be called with an AFSObjectInformationCB pointer variable that it is not safe to overwrite as the function sets the input value to NULL if the invalidation is going to be performed asynchronously in a worker thread. In AFSEnumerateDirectory(), the following call took place: AFSInvalidateObject( &pDirNode->ObjectInformation, AFS_INVALIDATE_DATA_VERSION); which requires a worker thread to process. As a result, the ObjectInformation pointer was being set to NULL which detached the AFSObjectInformationCB from the AFSDirectoryCB. That in turn produced an execption in AFSLocateName() which resulted in a resource not being freed that in turn produced a deadlock. Change-Id: Id30e84cf96b69156d648e3b452e7e03390559c43 Reviewed-on: http://gerrit.openafs.org/6962 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Tested-by: Jeffrey Altman commit f7bea476c7f6e8489372e138dc60ebcdd92c40c1 Author: Jeffrey Altman Date: Sun Mar 25 21:29:40 2012 -0400 windows: ObjectInformationCB.ObjectReferenceCount The ObjectInformationCB.ObjectReferenceCount is protected by the VolumeCB->ObjectInfoTree.TreeLock. When the TreeLock is dropped the reference count can change. Hold the TreeLock across both ObjectReferenceCount == 0 tests and the associated tear down or repeat the ObjectReferenceCount == 0 test after the TreeLock is reacquired. Change-Id: I069c22ae8f3a93fad3ef9a662df5b4903b317897 Reviewed-on: http://gerrit.openafs.org/6959 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 79665a251d8b6cf9cb821accfd3819081f81f4c6 Author: Michael Meffie Date: Mon Mar 26 14:22:09 2012 -0400 remove athena env conditionals Remove the conditionals AFS_ATHENA_STDENV, AFS_ATHENA_ENV and AFS_KERBREALM_ENV. Change-Id: If58743acd7d71dd3ed05e76316ff3efd475ca123 Reviewed-on: http://gerrit.openafs.org/6963 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit d1d51852be1daf45f92a8cbf5f294892141108f2 Author: Jeffrey Altman Date: Tue Mar 27 00:00:30 2012 -0400 Windows: Fix VNOSERVICE EventLog parameters Add missing volume and cell. Change-Id: If1efeb0defb3812e3f41572fb7d46f5e867be70c Reviewed-on: http://gerrit.openafs.org/6969 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5b4e0e3c2eb161eabbb7a9ea8486315040e9705a Author: Jeffrey Altman Date: Mon Mar 26 20:49:03 2012 -0400 Windows: CreateProcessNotify verify changes PsSetCreateProcessNotifyRoutineEx will fail with STATUS_ACCESS_DENIED if the driver does not have the IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY bit set in the image header. Do not include the ParentProcessId in the AFSProceSSDestroy parameter list. It isn't available to use and isn't used for anything in any case. Assign AFSProcessCB blocks to processes that were created before AFSRedirector registered the CreateProcessNotify callback and access the file system. Change-Id: I4b78cd94949cfdea6b36f601a851c0e2f53a7dbf Reviewed-on: http://gerrit.openafs.org/6967 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 745e1bb00350ac481cd0998b1623b6e040fc7312 Author: Derrick Brashear Date: Tue Mar 27 12:09:38 2012 -0400 macos: iterate mdfound packagemakers when spaces are present even if we get more than one match, and even if there's a space, work anyway Change-Id: I8e71af0cb02fda7ea0fcf1c2f7a0404eca4bc073 Reviewed-on: http://gerrit.openafs.org/6971 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit fba35ba4e1d933126c788824f464a78ca1c93bf8 Author: Derrick Brashear Date: Mon Mar 26 20:33:26 2012 -0400 macos: find packagemaker instead of assuming path in xcode 4.3, packagemaker is unbundled. make no assumptions about where it can be found; instead, let spotlight tell us Change-Id: I5e3431ce40ad6e9114e98c9bf047a4312d42284d Reviewed-on: http://gerrit.openafs.org/6966 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d5c13a0f3ce7d9f0a01820ff9c12dfb1cbc12047 Author: Andrew Deason Date: Thu Mar 22 10:52:47 2012 -0500 afs: Slight adjustments in afs_GetDCache maxGoodSize is only used in one block, so move the decl to that block. Adjust some of the comments to more accurately reflect what's going on. Change-Id: Ifee3a6f98158a314cef6d241c53a0f881f4f2d2b Reviewed-on: http://gerrit.openafs.org/6936 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit e53221d9a82fd8e3d545704abae51cc844bc31a3 Author: Andrew Deason Date: Fri Mar 2 17:22:12 2012 -0600 afs: Do not limit fetches based on vcache length Currently, when we go to the fileserver to fetch some data, we try to make sure that we do not ask for data beyond the end of the file. For example, if our chunk size is 1M, and we need to get the first chunk for a file that is 4 bytes long, we will only ask the fileserver for 4 bytes. This can cause issues when the file is being extended at the same time as when we are trying to read the file. Consider the following example. There is a file named X that has contents "abcd" at dv 1, and we issue a FetchData64 request for X, only requesting 4 bytes. Right before the fileserver gets the FetchData64 request, another client writes the contents "12345" to file X. The client will then fetch the contents "1234" for that file, at dv 2, and store that as the contents of the first chunk for file X. On subsequent reads for file X, applications will now get "1234" as the contents, since the size of the file will be updated to 5, but the cache manager thinks that "1234" is the correct contents for the first chunk of X at dv 2. The cache manager will continue to think so until the cache entry is evicted or invalidated for whatever reason. To avoid this scenario, always request a full chunk of data if we have any data to fetch and the file has not been locally truncated. We can still avoid the fetch at all if it looks like we're fetching beyond end-of-file, since we know that at least at some point that was correct information about the file. If this results in us trying to fetch beyond end-of-file, the fileserver will respond with the correct length anyway. We still need to restrict the fetch request length based on avc->f.truncPos, since the dcache data after avc->f.truncPos needs to stay empty, since we don't track truncated data any other way. If we also avoided this restriction, extending a file via truncation after reducing a file's length via truncation could cause the old file data to appear again, instead of filling the new file range with NULs. Note that on at least Linux, with this fix an application can still read the contents "1234" on the first read in the above example, and "12345" on subsequent reads. This is just due to when we give the VFS updates about file metadata, and could be remedied by updating file metadata immediately from the FetchStatus information from the FetchData64 call. However, just reading the contents "1234" in the above example seems like a somewhat plausible outcome; at the very least, it is an improvement. Change-Id: I158593502ac96ba2c856a0b5997355a53d4173aa Reviewed-on: http://gerrit.openafs.org/6882 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit b3b267d16eefb993f52f66bf44f3e659c1017e58 Author: Andrew Deason Date: Thu Mar 22 10:42:38 2012 -0500 afs: Set DWriting when truncating a dcache entry When we truncate a file, we truncate the contents of the relevant dcache entry chunks, and prevent future FetchData operations from fetching data beyond the truncation offset. If we never write anything to that chunk, we never set DWriting, and so on disk it looks like that dcache entry has valid data for the specified DV. However, since the data is truncated, this is not true. If a process holds a file open, truncates it without writing to it, and then the client crashes (or we have trouble contacting the fileserver when we close the file), the dcache entry will appear valid on disk. So the next time we read the dcache entry, we will use the incorrect cache contents as if they were accurate for the specified DV. To avoid this, set DWriting when we truncate a chunk. Normally we only clear DWriting when we actually send data to the fileserver, so to clear DWriting in this case, add an additional line to clear it in afs_StoreAllSegments, after the StoreMini has completed. Change-Id: Ifc3bfc21712ab37b1f2865ce59fa45bf03811dd8 Reviewed-on: http://gerrit.openafs.org/6937 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 577d5d99fefb62f0b52a568207d2352946b36137 Author: Andrew Deason Date: Fri Mar 2 17:18:25 2012 -0600 afs: Log a message on invalid FetchStatus receipt If we get an invalid AFSFetchStatus structure from a server, log a message to indicate as such. This serves as a warning to urge people to fix their fileservers, and to explain what is doing. Change-Id: I33845f6228f96f693dcbfddcee38dae583f1b092 Reviewed-on: http://gerrit.openafs.org/6881 Reviewed-by: Alistair Ferguson Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5af63fabc553a2fecd4c3080b25fe14483f5bd98 Author: Andrew Deason Date: Fri Mar 2 17:06:48 2012 -0600 afs: Sanity-check some AFSFetchStatus structures We currently do not do any sanity checking on the AFSFetchStatus structures returned from fileservers. Add some sanity checking for BulkStatus and FetchStatus calls, so we do not screw up our cache if a fileserver gives us bogus data. If we do get an invalid AFSFetchStatus structure, act as if the server gave us a VBUSY error code, so we will retry the request. For OpenAFS fileservers prior to 1.6.1 that yield this situation, VBUSY is likely the error code the fileserver should have responded anyway. Change-Id: Ie16a5210149b21dd5945380f5d7b6a4d9ee01a72 Reviewed-on: http://gerrit.openafs.org/6880 Reviewed-by: Alistair Ferguson Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 29cb3b9f838eacf3348f83c81ce687f5882c77a2 Author: Chas Williams (CONTRACTOR) Date: Mon Mar 19 13:07:41 2012 -0400 Finish removing sunos 4.x references and build cruft Also, fix afsxbsa.h to always include since this should get struct tm on any fairly modern operating system. Change-Id: Idfb39f12d28a2a0aa470c8549e4149d0b2ccde9e Change-Id: Ia1c563e5954c533f18bd56155f2ae1825813efe3 Reviewed-on: http://gerrit.openafs.org/6923 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Tested-by: BuildBot commit 690a4c144b53fd1f3538d83017ecf581a2bcded5 Author: Andrew Deason Date: Fri Mar 2 14:55:04 2012 -0600 viced: Do not ignore all InlineBulkStatus errors InlineBulkStatus currently returns 0 unconditionally, no matter what errors are encountered. If we encounter an error early enough, from CallPreamble for example, we do not fill in the OutStats nor CallBacks structures at all. Since we return success anyway, this results in the client getting AFSFetchStatus structures full of zeroes (or garbage, before commit 726e1e13ff93e2cc1ac21964dc8d906869e64406). Since current OpenAFS clients do not perform any sanity checks on the information received, this can result in cache corruption of files being seen incorrectly as empty, and, before commit 726e1e, more arbitrary corruption. So instead, return an error if we encounter an error before we iterate over the given FIDs. We still of course do not return an error for any errors encountered during the actual metadata retrieval, as those are reflected in the individual per-fid status structures. Change-Id: Icfab4516e510be5f0063ddf9c69f11ab3d511b35 Reviewed-on: http://gerrit.openafs.org/6871 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit a0a1ad06c2dd632e3e471e5f40ff3eda470bf71a Author: Jeffrey Altman Date: Mon Mar 19 22:38:06 2012 -0400 Windows: Assign AuthGroup during Process Create As the process is being created, assign the AuthGroup so that the must up to date information is used to assign AuthGroup inheritance from Impersonation states and to prevent the parent process from being destroyed before the AuthGroup is determined. Change-Id: I176360a589d7f2bcf4b1ededad069424e3ce5393 Reviewed-on: http://gerrit.openafs.org/6927 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit a54fefc0449fbccc881c017480cb92878bb460cb Author: Jeffrey Altman Date: Mon Mar 19 21:10:31 2012 -0400 Windows: Refactor AFSProcessSupport Breakup AFSProcessNotify() into AFSProcessCreate() and AFSProcessDestroy(). Correct inconsistencies with ETHREAD vs ThreadId HANDLE. Add AFSProcessNotifyEx() and use PsSetCreateProcessNotifyRoutineEx() to register it on Vista SP1 and above. Change-Id: I2be85c3e8229883b4e239e1fdba9a65fc704daaa Reviewed-on: http://gerrit.openafs.org/6926 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 95ec152a850c0cde33829481b8e71e7e7e686a58 Author: Jeffrey Altman Date: Sun Mar 25 09:56:48 2012 -0400 doc: correct implicit ACL permissions volume owner OpenAFS changed the behavior of implicit administrator permission for directory ownership. In OpenAFS only the volume root directory owner has implicit administrator permissions and they apply to all directories in the volume not just those with matching ownership. Change-Id: I8ca0a8874fe17cf7fc575107bd76efb5dc472b10 Reviewed-on: http://gerrit.openafs.org/6951 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit d0ea3b18e2893943f9deb46244f2674db1920622 Author: Jeffrey Altman Date: Sat Mar 24 09:23:50 2012 -0400 softsig: not used on windows Do not install afs/softsig.h on Windows from src/util Do not include it in src/viced/viced.c Change-Id: I8b6dcb1508dcda7da297a0c9a6bfeaf037c40c88 Reviewed-on: http://gerrit.openafs.org/6950 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit eaea11ef0f44dc9d743f85bbce53b98c2d568b74 Author: Simon Wilkinson Date: Thu Mar 22 14:48:16 2012 +0000 tests: Add opr to the command test libraries The cmd/command-t test needs libopr, so give it to it Change-Id: I74ca08efffb0c0f6245498c9dc0dcf5287915bbd Reviewed-on: http://gerrit.openafs.org/6949 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 20429272805d029de80275a4e092291be7d747e9 Author: Simon Wilkinson Date: Thu Mar 22 14:39:27 2012 +0000 libafsrpc: Export connection accessor fuctions Add various connection accessor functions to the export map file for libafsrpc so they can be used from within RX security layers. Change-Id: I0b5c75d987aadd6942dcb87fb1b98586bcc9e553 Reviewed-on: http://gerrit.openafs.org/6948 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d2594f706b1eeaf7b16537f95b3617dcb1af63c2 Author: Chas Williams (CONTRACTOR) Date: Mon Mar 19 16:47:28 2012 -0400 opr: should be built as shared Since this library could be use anywhere (including a shared library) it should be built as position independent code. Change-Id: I9e9c8b5c08e73ce43c04341b1106126f7774c405 Reviewed-on: http://gerrit.openafs.org/6925 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 39964d08792f3a09694f97d7c7fa76a86ca213a7 Author: Jeffrey Altman Date: Thu Mar 22 15:55:47 2012 -0400 Windows: Client handling of VNOSERVICE VNOSERVICE should not be grouped together with the volume status error codes. It is used to indicate that the RPC was not serviced. The file server issues it when its idle dead timeout period is reached while receiving rx call data. The client's existing status information is still valid and the client can retry the call. Change-Id: I51e447824366381e740361576c96559f1c4f3fd3 Reviewed-on: http://gerrit.openafs.org/6938 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b695eb272d66269a57cdca2550c00f2b0003ae35 Author: Jeffrey Altman Date: Wed Mar 21 10:11:31 2012 -0400 Windows: AFSRedir Debug for STATUS_NOT_A_DIRECTORY Add additional logging to handle the case where the afsd_service returns STATUS_NOT_A_DIRECTORY for eval by id/name. Change-Id: Ib510fcea6102a92e5e810af5923f06dffbba1ed9 Reviewed-on: http://gerrit.openafs.org/6930 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f246aa5f84a5233b6525ae43456a8da5b7e92984 Author: Marc Dionne Date: Wed Mar 21 22:19:04 2012 -0400 Linux 3.4: Switch to d_make_root If d_make_root is available, use it instead of d_alloc_root. The helper was introduced in 3.3, and d_alloc_root gets removed in 3.4. Change-Id: I39aaa6fd14d04c05ad9cb5b610e7f12f70fe0c94 Reviewed-on: http://gerrit.openafs.org/6931 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e55f1b4dc3134762c61143c7dcc8e252d9973365 Author: Ken Dreyer Date: Tue Mar 13 20:06:43 2012 -0600 doc: remove references to AFS's NTP daemon AFS's own ntpd and runntp are obsolete. Remove them from the documentation, and recommend the OS vendor-supplied NTP instead. Change-Id: If0cd837aa407eb49049881790e618ccd75ca6e5b Reviewed-on: http://gerrit.openafs.org/6903 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 640fe82315838f60cce5789ad7d9965db3dabe0a Author: Michael Meffie Date: Mon Mar 19 19:27:33 2012 -0400 build on solaris 10 again Use min and max instead of the non-standard MIN and MAX macros. Commit 64b00c3a1a87739621f58c777fc3cc54fb15a0af removed inclusion of rx_packet.h, which included definitions of MIN and MAX on various platforms. Change-Id: I3d3c75af375704b8baddd72aec3aecf3c4fd43d7 Reviewed-on: http://gerrit.openafs.org/6924 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 4d98adc83cd09d75c99abd9d29af79f9de5b1d1a Author: Jeffrey Altman Date: Fri Mar 16 01:09:42 2012 -0400 Windows: invalidate correct objects during dir verification When processing a directory verification, if a change of data version is detected or if the FileID of a FileName changes, be sure to invalidate and verify the directory entry. Setting the verify flag on the parent after updating the directory entry's metadata does not result in the correct behavior. Change-Id: Ib24bd71b82964e150a6ce730071106c9cbea0d23 Reviewed-on: http://gerrit.openafs.org/6914 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 59b57ff85acbef10bcec9724c42e3bad78538687 Author: Derrick Brashear Date: Thu Mar 15 11:51:39 2012 -0400 osx: deal with more kerberos damage the number of things which can return success without succeeding is truly sad. Change-Id: Iab3a6ef72afc8075462dfd98548ad7aa3051d40f Reviewed-on: http://gerrit.openafs.org/6911 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit e5821239cde138f74f73bec1bd9a3880d08ac3df Author: Andrew Deason Date: Wed Mar 7 16:36:57 2012 -0600 afs: Never #define away afsd_dynamic_vcaches Some versions of the Solaris Studio compiler on SPARC (at least 12.2 and possibly others, but not 12.3) get a little confused by code like this: extern int foo; int somefunc(void) { if (0) return foo; return 0; } When optimization is turned off, this results in an undefined symbol reference to 'foo' (which is normal), but the resulting object file lacks a relocation entry for the symbol 'foo', so the symbol remains undefined after linking. In the OpenAFS tree, this occurs in afs_daemons.c which references afs_vcount and afs_cacheStats in this manner due to afsd_dynamic_vcaches being defined as '0' on Solaris. The end result is that the libafs kernel module is not loadable, since it complains about afs_vcount and afs_cacheStats being undefined, even though the symbol definitions are also in the module. While this is a bug in Solaris Studio and has since been fixed, it is simple to work around this so we are usable with more compilers. If we just always declare afsd_dynamic_vcaches as a regular variable, it works around this issue and keeps the code a tiny bit simpler. So, do that. Change-Id: I3f8fc6aafd52487d729289e393fc59dac84d36ea Reviewed-on: http://gerrit.openafs.org/6888 Tested-by: Michael Meffie Reviewed-by: Michael Meffie Reviewed-by: Derrick Brashear commit 0fdcf171a8d2b2153648b6b799096e09eb469beb Author: Simon Wilkinson Date: Wed Mar 14 10:56:06 2012 -0400 rx: hold call->lock across RXS_PreparePacket RX Security Classes have a right to assume that when RXS_PreparePacket is called that they have exclusive access to the rx_call structure. Commit e445faa68c5ec6e47d3fd9d7318ade71d98703a9 unintentionally failed to acquire the call->lock prior to RXS_PreparePacket being called. Change-Id: I5a9dfb2818fa17ba6fc1ab6f76ec5cde602c6f16 Reviewed-on: http://gerrit.openafs.org/6904 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 317b227a20a99960b313d06a3441822472d638c8 Author: Jeffrey Altman Date: Mon Mar 12 15:53:47 2012 -0400 Windows: Drop resource across AFSCleanupFcb Avoid additional deadlocks involving VolumeCB->ObjectInfoTree.TreeLock. Change-Id: Ibfeb8f230c54e95d3a0b7b9d84c63cb7f4b9ce2d Reviewed-on: http://gerrit.openafs.org/6893 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6fb1078e08d4077fb0602f97b1a83bcd72f55db8 Author: Jeffrey Altman Date: Wed Mar 7 06:54:54 2012 -0800 Windows: Wait for memory allocation if necessary The kernel has a limited pool of memory. If there is no memory available to satisfy a request, that request will fail initially with a STATUS_OUT_OF_RESOURCES error which in most cases is exposed to the user-mode application as STATUS_ACCESS_DENIED. This can produce inconsistent results. This patchset introduces an Event object, MemoryAvailableEvent, which is signalled when the redirector deallocates memory. This should in many cases permit requests to succeed where they otherwise would have failed immediately. The WaitingForMemoryCount field tracks the number of threads that are waiting for memory to become available. A subsequent patch could use this value to accelerate the tear down of cached data. To avoid deadlocks, blocking threads will only wait for a maximum of 30 seconds at a time. As long as the redirector continues to free memory, the thread can re-queue itself. However, if a timeout occurs, the allocation request will fail. Change-Id: I0aa549be3852b31b68d7b42ecab4ca982c75f6ba Reviewed-on: http://gerrit.openafs.org/6886 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit b7f6d8e3964592543d4706c58c395fbe2f81218b Author: Jeffrey Altman Date: Mon Mar 5 23:14:28 2012 -0600 Windows: Correct Data Version change synchronization The data version must be checked and set while the ObjectInformation DirectoryNodeHdr.TreeLock is held exclusive. Otherwise, it is possible for a race to occur. Change-Id: Ia4d94cca1d161062e9d98675976ba8fad5731032 Reviewed-on: http://gerrit.openafs.org/6883 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d62456255e13beef41770ad90ee6cb58068007b9 Author: Paul Smeddle Date: Mon Mar 12 19:56:11 2012 +0000 Make volscan's column delimiter option work Currently, volscan ignores the -delim command-line option, using the hardcoded default. This patch adds processing for this option, allowing alternative characters. Corrects an error in a08c3207255756c825ab69a19e04f79dd879c646 Change-Id: I750f2d998cff029fc02556ed0baaaa0ca1c95e08 Reviewed-on: http://gerrit.openafs.org/6894 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7dce85e4e5db7420c5c359fdd02a8005a12fb29c Author: Jens Wegener Date: Tue Mar 6 07:28:32 2012 -0600 viced: fix inverted lockCount assignment FIXES 130605 Change-Id: Ibfdbc03100094ca33630dc9e1ddbcacf770a1a02 Reviewed-on: http://gerrit.openafs.org/6884 Reviewed-by: Derrick Brashear Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 0f3cb2a43e3487d9b5ec774c417ae6744d6e4d83 Author: Jonathan Billings Date: Thu Mar 8 09:23:40 2012 -0500 redhat: Don't replace modified configuration files during rpm update The previous setting for three %config files mentioned in the spec file: %config /etc/sysconfig/openafs %config %{_prefix}/vice/etc/ThisCell %config %{_prefix}/vice/etc/cacheinfo When using an unadorned %config, it's possible that these files will be replaced by the packaged version during a package update. Changing %config to %config(noreplace) means that the packaged file will be installed with the extension .rpmnew if there is already a modified (from the existing package's version) file with the same name on the installed machine. The concern here is that updating an existing system could potentially change the configuration if the person installing doesn't pay close attention. The Rule of Least Surprise indicates that we should try to preserve existing configuration changes whenever possible. Change-Id: Ie132c12a3c5defe9bf6fec9ec0f8bd08f3d98646 Reviewed-on: http://gerrit.openafs.org/6887 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 4cc3923b1b857368a522be55c55fce4c9b62548a Author: chas williams - CONTRACTOR Date: Mon Mar 5 11:41:08 2012 -0500 rxgen: fix to use rx accessor routines apparently some uses didnt get converted during the previous work. Change-Id: Iaa4dcf73fd2e29e3f95feede5217eac4eaded4e2 Reviewed-on: http://gerrit.openafs.org/6874 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c0268c7299afc3eb0a3bde2972a8fee800b735b1 Author: Michael Meffie Date: Sat Mar 3 09:42:12 2012 -0500 viced: fix -realm option arg parse Advance only once per realm argument when processing the realm command line option. Change-Id: Id3873fbe213f27be673ec0c02a27a032dd33c002 Reviewed-on: http://gerrit.openafs.org/6860 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fc1c58910c5991fa9d132d171d1d976dbfc44a95 Author: Michael Meffie Date: Wed Feb 29 11:08:10 2012 -0500 viced: fix log message in hpr initialize The wrong dir object is used to log an error in hpr initialize. Change-Id: I4460b541a6458742839b47e8277990f426b233a7 Reviewed-on: http://gerrit.openafs.org/6845 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 0a3f0608fcf6c14b44484cfa6fe106c568aa1035 Author: Derrick Brashear Date: Sun Mar 4 09:48:07 2012 -0500 macos: don't crash on krb5 damage if we get success but still no client, don't crash Change-Id: I6be28ac6ecece3448123a84cf442a791eebc93cc Reviewed-on: http://gerrit.openafs.org/6868 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 88ec2929fddec2ae53a74d3e40cbdeb566aeacc5 Author: Jeffrey Altman Date: Fri Mar 2 10:54:38 2012 -0500 Windows: add __try..__except Wrap potential exception locations in __try ... __except so that the exceptions can be caught by us instead of Cc/Mm which use exceptions to signal status. Change-Id: Ifef02bbf2c76b8583b538e4b67d4136c832b6cc6 Reviewed-on: http://gerrit.openafs.org/6859 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 5762d9c3c7d941b856bfa86ce8e1ee6a76f41eda Author: Jeffrey Altman Date: Fri Mar 2 10:54:23 2012 -0500 Windows: fix indentation Change-Id: I2decb4093986c316fe6b9102f2d42a583a24b1f4 Reviewed-on: http://gerrit.openafs.org/6858 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit fdf1dfc5f92fcd149a7ae0945e4458993b2ad61e Author: Jeffrey Altman Date: Fri Mar 2 10:52:35 2012 -0500 Windows: Avoid deadlock in invalidation path During data version invalidation the AFS redirector must CcPurge any non-dirty extents on a file. This operation can be intercepted by a filter driver which in turn might open the file and close it again before the CcPurge completes. The AFSPerformObjectInvalidate call holds the ExtentsResource shared which can deadlock if AFSClose attempts an extent tear down which requires exclusive access to the ExtentsResource. Change-Id: I7cb0289d8036aabf56bb11fd12a79308be45faa8 Reviewed-on: http://gerrit.openafs.org/6856 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 81a9a33e0bc5455841ba105dab52735c64c7096b Author: Dave Botsch Date: Thu Mar 1 12:43:36 2012 -0500 Fixes dkms.conf for Redhat Enterprise commit 8e0aaae076f4cccfd2d6ed81ede4e355235b578e , while fixing dkms.conf for Fedora, broke dkms.conf for RHEL. In RHEL, you get a dkms.conf with too many backslashes in the "mv" line. The dkms.conf should have the mv line reading: mv src/libafs/MODLOAD-*/\$KMODNAME \$DSTKMOD" for Fedora. This change checks if we are building on Fedora, and if so, maintains the extra backslashes. Otherwise, not. modified: src/packaging/RedHat/openafs.spec.in Uses the dist tags as specified at http://fedoraproject.org/wiki/Packaging:DistTag Change-Id: I7fd7531758a63b2634424c2fcba23ae1b0fc8f2f Reviewed-on: http://gerrit.openafs.org/6851 Reviewed-by: Ken Dreyer Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 579976cf246bd55dea2dfd3bf8470fd8bb8bde0a Author: Jeffrey Altman Date: Thu Mar 1 15:49:12 2012 -0500 unix: always retry RX_CALL_BUSY RX_CALL_BUSY is an indication that the call channel is busy not that the server is down or otherwise cannot respond. Unconditionally retry the RPC and do not alter state. We just want to force the use of a different call channel. Change-Id: Ic4ef9bac800087f1b287d3da08fcd5eec84374ef Reviewed-on: http://gerrit.openafs.org/6852 Tested-by: BuildBot Reviewed-by: Hartmut Reuter Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 28a33f8492098c23f7c3c58763ace93b82ea80a7 Author: Jeffrey Altman Date: Wed Feb 29 13:07:47 2012 -0500 Windows: Workaround Win7 SMB Reconnect Bug The SMB specification permits the server to save a round trip in the GSS negotiation by sending an initial security blob. Unfortunately, doing so trips a bug in Windows 7 and Server 2008 R2 whereby the SMB 1.x redirector drops the blob on the floor after the first connection to the server and simply attempts to reuse the previous authentication context. This bug can be avoided by the server sending no security blob in the SMB_COM_NEGOTIATE response. This forces the client to send an initial GSS init_sec_context blob under all circumstances which works around the bug in Microsoft's code. Do not call smb_NegotiateExtendedSecurity(&secBlob, &secBlobLength); As a result of the SMB 1.x bug, all attempts to reconnect fail due to SMB connection resets. The SMB 1.x redirector will retry indefinitely but all processes with outstanding requests to \\AFS will block until the machine is rebooted. Change-Id: Iedd58fccbf85495d48871935f6e61ede1e1240ff Reviewed-on: http://gerrit.openafs.org/6846 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 2a6ddae62e4fac5eecdf4634746e7294405393d6 Author: Andrew Deason Date: Thu Jul 8 11:25:19 2010 -0500 viced: Ignore client loopback alternate addresses When we receive interface information from a client to determine its alternate IP addresses, ignore any addresses that look like loopback. Change-Id: I245ebfc74ad1e8bd2fcd235a00f000d29229668d Reviewed-on: http://gerrit.openafs.org/2368 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Reviewed-by: Alistair Ferguson Tested-by: Jeffrey Altman commit 0e610fdacb4484d245bf1f727d035812774192ea Author: Jeffrey Altman Date: Fri Feb 24 12:23:28 2012 -0500 Windows: Fix an ExtentResource trace message This instance is logging a SHARED acquisition not an EXCL one. Change-Id: Id4e69bb275ff4eb242b2c145df80ed9b73313776 Reviewed-on: http://gerrit.openafs.org/6792 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit cfb7f205d8153899c0165594a29d91926a40425d Author: Jeffrey Altman Date: Fri Feb 24 12:21:46 2012 -0500 Windows: cm_UpdateCell never applies to Freelance mode The Freelance.Local.Cell is updated by the registry monitor thread and cm_UpdateCell should be a no-op. Make it so. Change-Id: I2961114590af6b64b8ae06d608a97513e83aad4e Reviewed-on: http://gerrit.openafs.org/6791 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6bb0014be2c3ea5ca411bf349fb3987c5d496c40 Author: Vaibhav Kamra Date: Thu Feb 23 09:58:07 2012 -0800 Windows: Redirector opens must set a valid FsContext A successful open must have FileObject->FsContext set to a structure with a valid/initialized FSRTL_ADVANCED_FCB_HEADER object. Not having this breaks assumptions in the kernel. Patchset edited by Jeffrey Altman Change-Id: I70c9045bfa02c54074c015e6e871ead63efb6769 Reviewed-on: http://gerrit.openafs.org/6782 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit de93a78b870b40338cfd0f4839fe4ef3b959481b Author: Jeffrey Altman Date: Thu Feb 23 11:13:08 2012 -0800 Windows: remove AFSOpenRedirector from AFSRedirLib The AFSOpenRedirector functionality must exist in the framework, AFSRedir.sys, not the library, AFSRedirLib.sys. Change-Id: Id688efba016d94df558b241e9bee421c86c60e27 Reviewed-on: http://gerrit.openafs.org/6781 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 315b97ab587247d7750ff4b64275e397ac4b97a7 Author: Jeffrey Altman Date: Thu Feb 23 06:31:31 2012 -0800 Windows: do not bugcheck in AFSExAllocatePoolWithTag If the Bug Check flag is set, the call to AFSBreakPoint() in AFSExAllocatePoolWithTag() will trigger. There is no need for an explicit bug check test in AFSExAllocatePoolWithTag(). If AFSExAllocatePoolWithTag() returns NULL there is no need to ASSERT() the return value since AFSBreakPoint() would already have been called to signal a debugger. Change-Id: Ie8564f41f811c3afd99dc2e9c02f4aa68d63ef8e Reviewed-on: http://gerrit.openafs.org/6780 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit fe6cc80fdbbd3c66ddc32bb6a8e639753244da70 Author: Jeffrey Altman Date: Thu Feb 23 06:28:49 2012 -0800 Windows: Revert "AFSRedir DebugFlags Turn on BugCheck" This reverts commit 209df87d08fb07d9641b81858a0821b9fd95dbcc. Turning on BugCheck by default was a good idea because we needed to track down the cause of exceptions that were otherwise being thrown resulting in resource leaks. However, it is a bad idea because it results in out of memory conditions throwing bug checks that result in a BSOD. Change-Id: If0965657957ed73b83686a9be42b0d7f89964f2f Reviewed-on: http://gerrit.openafs.org/6779 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit fb03b1380f82a6bdc8a78ad92069da38b4e98c26 Author: Andrew Deason Date: Thu Feb 23 18:28:21 2012 -0600 Rewrite make_h_tree.pl in shell script The current usage of make_h_tree.pl adds a build requirement of /usr/bin/perl that we did not have prior to commit 1d6593e952ce82c778b1cd6e40c6e22ec756daf1. Do the same thing in a bourne shell script instead, so we don't need perl. Note that this is not as generalized as make_h_tree.pl, but it doesn't need to be. Specifically, this does not strip a leading ../ from found include directives (nothing in the tree that includes h/* files uses this), and header filenames containing whitespace almost certainly do not work correctly. The h => sys mapping is also much more hardcoded, but that's all we were using this for anyway. Change-Id: If07888abfdb9e8ec822b33abed0bf744b7210a52 Reviewed-on: http://gerrit.openafs.org/6790 Reviewed-by: Russ Allbery Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 46e85dd4682a3273e15bbf96c4d5492087555cab Author: Andrew Deason Date: Thu Feb 23 13:02:13 2012 -0600 salvager: Do not fork for single VG salvage Currently we always fork a child in the salvager in order to salvage a volume group. I believe this is in order to protect SEGV, exit(), etc in one salvage operation from preventing salvaging anything else. When salvaging a single volume group, though, there appears to be little benefit. In addition, we need to keep the VG salvaging code in the same process as the cleanup code for single-volume salvages, so we can know which volumes were deleted by SalvageVolumeGroup, so we know which volumes to bring back online. So, do not fork for the singleVolumeNumber case. Note that for DAFS, we already never fork for the entire salvage operation when salvaging an individual volume group. So, this is effectively a non-DAFS-only change. Change-Id: I2b646b9ff932a673c714bc27ac32ed41cc3e22e6 Reviewed-on: http://gerrit.openafs.org/6787 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 2a1719faa810663d6d9cf774339e286c18ef2717 Author: Andrew Deason Date: Tue Feb 21 18:05:32 2012 -0600 salvager: Remove VolumeSummary->fileName The 'fileName' field in VolumeSummary serves two apparent purposes: - Storing the filename of the volume header file (V0XXX.vol). - Indicating whether or not a given VolumeSummary object is referenced by any inodes on disk. fileName is set by AskVolumeSummary/GetVolumeSummary, and is cleared in SalvageFileSys1 when a matching inodeSummary entry is found. This is very confusing. The first purpose is completely unnecessary; we can always calculate the filename from the volume id for the volume, and we already enforce the filename to be of that specific format. The second purpose is very unclear in the current code, and overloads the meaning of the field. So instead, remove fileName entirely. Code that was using it to locate the header file are changed to use VolumeExternalName_r. Code that was using the field to determine if the volume is "unused" is changed to use a field just called "unused", set to 0 or 1. Change-Id: I5e257ea633b7ae821136c88e1b2024f62125ab30 Reviewed-on: http://gerrit.openafs.org/6786 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit d426e613b9a4802c3b404903f7122f6fd0046aba Author: Andrew Deason Date: Tue Feb 21 18:03:24 2012 -0600 salvager: Remove PrintVolumeSummary Nothing uses this function; remove it. Change-Id: I55ae048ba920bbd10030c227724323fa20681941 Reviewed-on: http://gerrit.openafs.org/6785 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 839638870986ebd4cf992f7a2c81a23e37c14228 Author: Andrew Deason Date: Tue Feb 21 17:46:41 2012 -0600 salvager: Do not require MaybeZapVolume fileName In MaybeZapVolume, currently we do not remove the volume header if the given isp->volSummary->fileName is not set. This effectively means that we only actually "zap" volumes for which we have just created the header, or which are not referenced by any inodes. For readonly volumes that have errors, we want to delete the volumes instead of salvaging. Readonly volumes with valid headers will have fileName as NULL, though (set back in SalvageFileSys1), so MaybeZapVolume will refuse to remove them. What ends up happening is that the headers will stay around, but since we do not finish checking the volume, all of the inodes for the data in the volume will be dec'd. This results in a volume whose header exists, but none of its inodes (including special inodes) exist, so the volume will need to be salvaged again, and during that salvage will be deleted (because there are no inodes for the volume). Avoid all this, and just delete volume headers for volumes that lack a valid fileName. Instead try to avoid deleting headers with volSummary->deleted set, just so we don't try to delete the same headers twice. Related issue reported by Ã…sa Andersson. Change-Id: I4797d0cabe3851debdc78f4ed9ee619534397970 Reviewed-on: http://gerrit.openafs.org/6784 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 76f12c2389fd2a8e09b4e869730169401d154ce9 Author: Andrew Deason Date: Tue Feb 21 17:40:46 2012 -0600 salvager: Do not set fileName on header fixup Currently, SalvageVolumeHeaderFile will set isp->volSummary->fileName to a new string whenever the volume header needs to be created or re-written. When control reaches back to SalvageFileSys1, this can cause DeleteExtraVolumeHeaderFile to delete the header, since vsp->fileName is used as a sort of indicator to see whether or not a volume has been referenced by the inode summary. When we create a new header, we avoid this because we allocate a new VolumeSummary struct, which is not caught by the last DeleteExtraVolumeHeaderFile for loop in SalvageFileSys1. However, we do delete the header when we simply re-write a header, since we use the existing VolumeSummary struct. Set fileName in neither, for consistency. Change-Id: Ibb7b5fbadb701028a6bafe01ae9f8d3265e2f443 Reviewed-on: http://gerrit.openafs.org/6783 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 634c6f184b17e30ade86c0a838ab55ddddc730d6 Author: Andrew Deason Date: Wed Feb 22 15:40:20 2012 -0600 LINUX: Use afs_convert_code in afs_notify_change afs_notify_change currently just returns "-code". This can cause a panic if the error code is negative, since we will return a positive error code, which may get interpreted as a valid pointer value in higher levels. Specifically, if we hit afs_notify_change via something like this code path: do_sys_open -> do_filp_open -> open_namei -> may_open -> do_truncate -> notify_change -> afs_notify_change (via inode->i_op->setattr) the positive error value will be interpreted by do_sys_open as a valid 'struct file' pointer, and will be dereferenced. So pass the return value through afs_convert_code, like all of the other vnode ops, so we ensure we return an error properly. Change-Id: I941cc2d77d5a96cf86dfe133d30af4ccf6e9f2cb Reviewed-on: http://gerrit.openafs.org/6776 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 620d4169b73088579e691aec2cfdafc7f44e2fee Author: Andrew Deason Date: Wed Feb 22 15:36:37 2012 -0600 LINUX: move afs_notify_change to osi_vnodeops.c afs_notify_change is almost always used solely in inode_operations structs, and is more similar to the other per-vnode functions. Put it with the other per-vnode functions for better organization, and so they can use the same static functions. Move the helper functions iattr2vattr and vattr2inode along with it. Change-Id: I47a69fe673cfc3318ce583596ba25cbeb9cb0b96 Reviewed-on: http://gerrit.openafs.org/6775 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 75a3dabe66a9fbc232b05e2f744ad5b867e18262 Author: Derrick Brashear Date: Wed Feb 22 15:57:46 2012 -0500 libafs: retry retriable RPCs instead of abandoning if we get e.g. an idle dead error we should retry retriable actions, namely data stores. in order for writing files to work correctly given how the writeback code is structured it's important that this not interfere with analyze's shouldRetry decision on those RPCs Change-Id: Ie091a72b924c8414ec66c377fa13da14575a69cf Reviewed-on: http://gerrit.openafs.org/6749 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 2378895fc66a19a050f302711f2e18dbbf2e3d6f Author: Derrick Brashear Date: Sun Feb 12 22:45:59 2012 -0500 libafs: ensure one nat ping connection per srvAddr track the natping conn with the srvAddr, ensuring exactly one. Change-Id: I2e424a71d398563f9d0ec3ca77b83320cbef4ea1 Reviewed-on: http://gerrit.openafs.org/6706 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4ed91fe59468ed6c834f968a5b8202e967ea43b5 Author: Jeffrey Altman Date: Wed Feb 22 14:19:51 2012 -0500 Windows: invalidate data version on link creation notify the redirector that the directory data version has changed when a pioctl is used to create a symlink or mount point. FIXES 130589 Change-Id: I07e1ae130b9db8d3dd68fef892c47de008be7cd4 Reviewed-on: http://gerrit.openafs.org/6747 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5965c5390bf8264dacf60016929fc8d3aa83a7ea Author: Jeffrey Altman Date: Mon Feb 20 20:50:53 2012 -0500 Windows: AFSPerformObjectInvalidate hold ExtentsResource shared The AFSPerformObjectInvalidate() was obtaining exclusive access to the Fcb ExtentsResource even though it was not tearing down the extents list. The ExtentsResource could be held shared instead. Doing so will avoid the following deadlock: Thread 1: nt!MmPurgeSection+0x403 nt!CcPurgeCacheSection+0x100 AFSRedirLib!AFSPerformObjectInvalidate+0xd4 AFSRedirLib!AFSWorkerThread+0xa4 nt!PspSystemThreadStartup+0x2e Thread 2: AFSRedirLib!AFSAcquireShared+0x18 AFSRedirLib!AFSMarkDirty+0x68 AFSRedirLib!AFSNonCachedWrite+0x603 AFSRedirLib!AFSCommonWrite+0x5fa AFSRedirLib!AFSWrite+0x20 nt!IofCallDriver+0x45 AFSRedir!AFSWrite+0x57 nt!IofCallDriver+0x45 fltMgr!FltpDispatch+0x6f nt!IofCallDriver+0x45 AMFilter+0x2c6e nt!IofCallDriver+0x45 PMDriver+0x112a nt!IofCallDriver+0x45 OpLoader+0x1cd2 nt!IofCallDriver+0x45 savonaccesscontrol+0x6f15 savonaccessfilter+0x2fa0 nt!IofCallDriver+0x45 nt!IoAsynchronousPageWrite+0xd0 nt!MiMappedPageWriter+0x127 nt!PspSystemThreadStartup+0x2e Thread 1 is attempting to perform a cache purge which cannot complete until Thread 2 is finished but Thread 2 requires the ExtentsResource which is held by Thread 1. Change-Id: I4582093cf973f61cf6aff0df5e23b6711ec708b3 Reviewed-on: http://gerrit.openafs.org/6744 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 08d800b896db688cd96d742781e8225c9e58ef57 Author: Jeffrey Altman Date: Mon Feb 20 01:48:20 2012 -0500 Windows: fsLockCount not accurate Prior to 1.6.2 the file server does not report an accurate value for the lock state. In addition, callbacks are not broken when locks are freed due to lease expiration. Change-Id: I5b79d1d59c2ace9834cf23dfbef33e343ce6dda0 Reviewed-on: http://gerrit.openafs.org/6741 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4603057d99a1501275f14f6d5aba089364785e09 Author: Jeffrey Altman Date: Mon Feb 20 01:40:03 2012 -0500 viced: lockcount only valid if not expired locks are issued on a lease. If the lock is expired, the lock count is zero. Change-Id: I628dd5b8b0d38694d653d9e8e82ff60ec2e1505c Reviewed-on: http://gerrit.openafs.org/6740 Reviewed-by: Derrick Brashear Reviewed-by: Alistair Ferguson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fd19b39b151e3dddd18b4280252ac3e0fdf3964d Author: Marc Dionne Date: Mon Feb 20 17:56:29 2012 -0500 volser: Remove unused variable tid is now unused - remove it to avoid a warning. Change-Id: If2d4fdf16415bbf19de3cd8a3e621d04d4d9b018 Reviewed-on: http://gerrit.openafs.org/6743 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fe4e52655ce7e5a8e5f6c23cde678fc66c3db490 Author: Andrew Deason Date: Fri Feb 17 17:12:46 2012 -0600 viced: Relax "h_TossStuff_r failed" warnings Currently, h_TossStuff_r bails out and logs a message if we detect that somebody grabbed a reference or locked the host while we tried to h_NBLock_r. The reasoning for this is that it is not legal for anyone to h_Hold_r a host that has HOSTDELETED set (but the error is detectable and recoverable); callers are supposed to check for HOSTDELETED and not hold a host in that case. However, HOSTDELETED may not be set when h_TossStuff_r is called, since we call it if either HOSTDELETED _or_ CLIENTDELETED are set. If CLIENTDELETED is set and HOSTDELETED is not, it's perfectly fine (and necessary) for callers to grab a reference to the host. So, if that's what is going on, don't log a message, since that's normal behavior. Check for HOSTDELETED before we h_NBLock_r, since it is technically possible (and legal) for someone to grab a reference to the host and somehow set HOSTDELETED while we wait for h_NBLock_r to return. Also log the flags when we see this message. Change-Id: Ie50a0617de094bb1c721da28f100ed4b31aa849f Reviewed-on: http://gerrit.openafs.org/6733 Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear Tested-by: BuildBot commit f52c33ea10de8d1d07a9c4805366283e6ca635dc Author: Andrew Deason Date: Fri Feb 17 16:24:16 2012 -0600 viced: Remove extraneous h_AHTAHT_r in h_GetHost_r We added this address to the host with an addInterfaceAddr_r call just a few lines before, which adds the host to the address hash table. Another call to h_AddHostToAddrHashTable_r is pure overhead and confusing. Change-Id: Ib08817274e632f67776956ede8b56eaf0dce879e Reviewed-on: http://gerrit.openafs.org/6729 Reviewed-by: Jeffrey Altman Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 3c803580bb503c7650f7b138c1b3f2eafd92b985 Author: Andrew Deason Date: Fri Feb 17 15:46:50 2012 -0600 viced: Set h_GetHost_r probefail if MPAA_r fails Currently, in h_GetHost_r, if we get a connection whose address does not match an extant host, but the reported uuid does, we ProbeUuid the old host. If it fails, we call MultiProbeAlternateAddress_r and set 'probefail'. Later on, if 'probefail' is set, we always add the connection address to the host, and remove the host->host,host->port address from the host. However, this is not always correct. Consider the following situation. We have an existing host that has primary address 1.1.1.1, and also has addresses 1.1.1.2 and 1.1.1.3 on the interface list but not on the hash table. Say that host A stops responding on 1.1.1.1, and a connection comes in from 1.1.1.2. We ProbeUuid 1.1.1.1 and get a failure, so we call MultiProbeAlternateAddress_r. MultiProbeAlternateAddress_r probes via rx_Multi the addresses 1.1.1.2 and 1.1.1.3. Say that 1.1.1.3 responds first, and responds successfully, so MultiProbeAlternateAddress_r sets 1.1.1.3 to be the primary address for the host. After MultiProbeAlternateAddress_r returns, 'probefail' is set. A few lines down, we see that oldHost->host does not match haddr, and 'probefail' is set, so we add 1.1.1.2 to the interface list, and remove 1.1.1.3, and set 1.1.1.2 to be the primary address, even though 1.1.1.3 is the address we most recently 'know' is correct. To fix this, only set 'probefail' if MultiProbeAlternateAddress_r also fails after the failed ProbeUuid call. Conceptually this makes sense, since if MultiProbeAlternateAddress_r succeeds, it found an address that responds successfully to ProbeUuid, and it sets that address to be the primary address. Therefore, after MultiProbeAlternateAddress_r returns success, the situation is the same as if the 'good' address was already the primary address, and the ProbeUuid call succeeded, so 'probefail' should be cleared. Change-Id: Id32817916a8a42db567ad099aae00745b79598c5 Reviewed-on: http://gerrit.openafs.org/6728 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Reviewed-by: Alistair Ferguson Tested-by: BuildBot commit 7a6efc9bfcd955901d19274cc96f9a1b67f54f95 Author: Andrew Deason Date: Fri Feb 17 13:14:31 2012 -0600 viced: Correctly update addrs on alt addr probe The functions MultiBreakCallBackAlternateAddress_r and MultiProbeAlternateAddress_r try to find a valid address in a host's interface list of addrs. If they find one, they update host->host and host->port. However, they do so just by changing those fields directly and by calling h_DeleteHostFromAddrHashTable_r and h_AddHostToAddrHashTable_r. This leaves the old host->host, host->port on the interface list, and leaves it marked as 'valid'. Similarly, the new host and port may still be marked as not 'valid'. This can result in the host being on the addr hash table via an address that is not on the host's interface list. After the above situation occurs, we may call removeInterfaceAddr_r(host, host->host, host->port); and then update host->host and host->port, which happens in a variety of places. Since host->host, host->port is not marked as valid in the interface list, it is not removed from the addr hash table, but it is removed from the interface list. Eventually, this can cause the host to be referenced from the addr hash table even after it has been freed. Since this can result in hash table entries pointing to the 'wrong' host, this can result in FileLog messages such as: Sun Feb 5 03:16:35 2012 Removing address that does not belong to host 0xdeadbeefdead (1.2.3.4:7001). And bogus instances of the message: Sun Feb 5 03:16:36 2012 CB: new identity for host 0xdeadbeefdead (1.2.3.4:7001), deleting(1 baadcafe 12345678-9abc-def0-12-34-456789abcdef fedcba98-76543210f-ed-cb-a9876543210f) To fix this, make MultiBreakCallBackAlternateAddress_r and MultiProbeAlternateAddress_r update the address list the same way as all of the code in host.c does; by adding the new address with addInterfaceAddr_r, removing it with removeInterfaceAddr_r, and updating host->host and host->port. Change-Id: I0a95e0186c03c1831c4df86daae901bf2462da0e Reviewed-on: http://gerrit.openafs.org/6727 Reviewed-by: Jeffrey Altman Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 9754c4e15fb9073ed9f95d5d4242d311eb65d717 Author: Andrew Deason Date: Thu Feb 16 16:20:16 2012 -0600 viced: Delete dup host before probing old host Currently, when the fileserver gets a new connection from an address not on the addr hash table, we allocate a new host structure and add that host to the addr hash table. If we then find that that host's uuid matches the uuid of an extant host, we do the following: - probe the old host with the uuid, and MultiProbeAlternateAddress_r if the probe fails - mark the duplicate host as HOSTDELETED - manipulate the interface lists Consider, for example, that we have an extant host ('oldHost') with address 1.2.3.4:7001, but with 5.6.7.8:7001 on its alternate interface list. At some point, the 1.2.3.4:7001 interface goes away or becomes unreachable. A new connection comes in from that same host on 5.6.7.8:7001. What will happen is we create a new host for address 5.6.7.8:7001, and then detect the uuid collision. When we try to probe the old address of 1.2.3.4:7001, it will fail, and we will try to MultiProbeAlternateAddress_r. MultiProbeAlternateAddress_r will determine that the alternate address 5.6.7.8:7001 responds successfully to the probe, and it tries to set 5.6.7.8:7001 to be the primary address of 'oldHost', and add 'oldHost' to the addr hash table under 5.6.7.8:7001. But the "new" host from the incoming connection is already hashed on the address hash table under 5.6.7.8:7001, so the h_AddHostToAddrHashTable_r call in MultiProbeAlternateAddress_r fails. Since we later delete the new duplicate host, this results in 5.6.7.8:7001 being the primary address for the host, but that address is not anywhere in the address hash table. This behavior can be seen by the following pair of FileLog messages: Wed Feb 1 11:02:38 2012 CB: ProbeUuid for 0xdeadbeefdead (1.2.3.4:7001) failed -01 Wed Feb 1 11:02:38 2012 h_AddHostToAddrHashTable_r: refusing to hash host beefdead, baadcafe (5.6.7.8:7001) already hashed While those message do not necessarily indicate this problem, this problem will result in those messages. To fix this, mark the duplicate host as HOSTDELETED before we do any probing on 'oldHost'. This way, if MultiProbeAlternateAddress_r tries to add 'oldHost' to the addr hash table under 5.6.7.8:7001, it will be able to do so successfully, since the old duplicate host is deleted. Change-Id: Id3aaab0718425492dca1deba892725160677b85f Reviewed-on: http://gerrit.openafs.org/6726 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Reviewed-by: Alistair Ferguson Tested-by: BuildBot commit 13a4f2b18bb84d05773529a794371d29f64570ab Author: Derrick Brashear Date: Tue Dec 13 12:46:36 2011 -0500 vos: allow releases without offline time allow releases using dumps to clones to avoid offline time Change-Id: I06ed71f12494e362aa10a851081c9dcaf8c9a1af Reviewed-on: http://gerrit.openafs.org/6254 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 8d618dceeefacbeb37c4ef3b1f9a8e80552311aa Author: Derrick Brashear Date: Tue Dec 13 12:29:30 2011 -0500 vos: refactor code change vos to remove lots of duplicated code for volume deletes and clones Change-Id: I1f39e857de6eefa0d8897e4eb8ece49e4a72f518 Reviewed-on: http://gerrit.openafs.org/6253 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 2a4c6c3b9e1dc30d5599e67e02237a1aeef8a0f0 Author: Andrew Deason Date: Mon Feb 13 14:11:36 2012 -0600 Rx: Avoid lastBusy/PEER_BUSY discrepancy If an rx call has the RX_CALL_PEER_BUSY flag set, but the call's conn->lastBusy is not set, we can easily cause an rx caller to loop infinitely. rx_NewCall will see that lastBusy for a call channel is not set, and will use that call channel, but rxi_CheckBusy will note that the call appears busy and that there are non-busy call channels on the same conn, and so will return RX_CALL_BUSY. This can currently happen in rxi_ResetCall, since we set RX_CALL_PEER_BUSY on the call again if the call had that flag set when rxi_ResetCall was called. If we are calling rxi_ResetCall with 'newcall' set, the passed in call is unrelated to the new call, since it was obtained from the free list. Thus, the busy-ness of the call should be ignored. Fix this by only paying attention to the incoming RX_CALL_PEER_BUSY flag if 'newcall' is not set. Also prevent this from happening by clearing RX_CALL_PEER_BUSY in rx_NewCall when we select a call and clear lastBusy for that call. Change-Id: Ic5a4709854b62d962ed91ee0103c6cbdd735d175 Reviewed-on: http://gerrit.openafs.org/6707 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 4b93c42513785d1094c5336b5c9cc4add1b89c5e Author: Derrick Brashear Date: Tue Dec 13 12:00:52 2011 -0500 vol: allow clones of readonly volumes allow writing of data where it's not user data we're changing (e.g. allow a vnode to be marked cloned in the vnode index) Change-Id: If3338ab0474ddbfe895b705217d61c054c4cb696 Reviewed-on: http://gerrit.openafs.org/6251 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit 641c67473615e80cfb8cf1e67636a82e42e5c899 Author: Derrick Brashear Date: Tue Dec 13 11:24:16 2011 -0500 volser: allow clonevol purge id to be new id effectively the same functionality that reclone already uses, but for some reason we artificially limit it out of clone despite the interface being there for it. it used to be there. put it back. Change-Id: I22868c41f8d3b920ba61d01e5334ff2320b38376 Reviewed-on: http://gerrit.openafs.org/6250 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear commit f1de04f3b35e91923efddca57e744b2138619223 Author: Derrick Brashear Date: Tue Dec 13 11:22:38 2011 -0500 volser: allow cloning non-rw volumes remove EROFS error which is the only thing preventing a working clone on a non-RW. Change-Id: Ic3d4d07519188712e9a38267fc74ebd1eaef7d8a Reviewed-on: http://gerrit.openafs.org/6249 Reviewed-by: Jeffrey Altman Reviewed-by: Alistair Ferguson Tested-by: BuildBot Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 91d38b93566734734f559a84c38a09e5c7d530c0 Author: Jeffrey Altman Date: Sat Feb 18 19:57:25 2012 -0500 Windows: Dereg Lanman and Lsa reg values for afsredir If the machine has been upgraded from an AFS SMB Server to the AFS Redirector, the registry will have leftover configuration for the "AFS" netbios name in the Lsa BackConnectionHostNames value and the LanmanWorkstation ReconnectableServers and ServersWithExtendedSessTimeout values. These values are not useful with the AFS Redirector since \\AFS is owned by afsredir.sys and not the SMB redirector. Remove the "AFS" netbios name from these values when afsd_service.exe has started in redirector mode. Change-Id: If8c100d3569595645c041ac58fedb1c835f9129f Reviewed-on: http://gerrit.openafs.org/6737 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1cc8feb6fc7b8d551b343b276e40e023ab1dccbe Author: Ken Dreyer Date: Sat Feb 11 09:43:30 2012 -0700 doc: replace hostnames with IETF example hostnames There were several different real and made-up hostnames and company names used throughout our documentation examples. The IETF has reserved "example.com" and other "example" TLDs for use in examples (RFC 2606). Replace almost all references to ABC Corporation, DEF Corporation, and State University, as well as "abc.com", "bigcell.com", "def.com", "def.gov", "ghi.com", "ghi.gov", "jkl.com", "mit.edu", "stanford.edu", "state.edu", "stateu.edu", "uncc.edu", and "xyz.com". Standardize on "Example Corporation", "Example Network", "Example Organization" (example.com, example.net, and example.org). The Scout documentation in the Admin Guide contains PNG images that contain the old cell names, so I left those references until the images can be replaced. Change-Id: I4e44815b2d2ffe204810b7fd850842248f67c367 Reviewed-on: http://gerrit.openafs.org/6697 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d5bf33ec94b1ac1a6c08863bac39154f762f0810 Author: Jeffrey Altman Date: Fri Feb 17 22:21:00 2012 -0500 Windows: Explorer Shell Set Unix Mode bits The Unix Mode bits were not being saved. This patch permits them to be saved. FIXES 130572 Change-Id: I6bf96c04115ee0f01e84b44b9efaacb578d95cbc (cherry picked from commit 534d95ef90ac5e5ebf5deb227008e0b023e7ef8b) Reviewed-on: http://gerrit.openafs.org/6734 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 168d730a6f227c9b9dce228314eb75aa76b8cddb Author: Jeffrey Altman Date: Fri Feb 17 10:37:34 2012 -0500 Windows: remove unnecessary DirectoryEnumEvent The DirectoryEnumEvent is not required to implement: AFSSetEnumerationEvent AFSClearEnumerationEvent AFSIsEnumerationInProgress The DirectoryEnumCount is modified by interlocked operations and can be used as a marker for when an enumeration is in progress. Change-Id: I414ce2bc753b0fd60a3fac51c2cf3d264a32ab05 Reviewed-on: http://gerrit.openafs.org/6725 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 780e497b32a927e008474a63b0427eca5d5a8877 Author: Jeffrey Altman Date: Thu Feb 16 23:50:18 2012 -0500 Windows: VolumeCB->ObjectInfoTree.TreeLock Deadlock AFSPrimaryVolumeWorkerThread held the VolumeCB->ObjectInfoTree.TreeLock exclusively across calls to AFSCleanupFcb() which in turn triggers a file extent release to the service which can in turn result in an object invalidation. Processing the invalidation requires shared access to VolumeCB->ObjectInfoTree.TreeLock which results in a deadlock. This patch alters the processing of AFSPrimaryVolumeWorkerThread so that the VolumeCB->ObjectInfoTree.TreeLock is not held across the AFSCleanupFcb() calls. FIXES 130431 Change-Id: I3726df02ab47d2dcc83a32c75957a5dafcfbf20e Reviewed-on: http://gerrit.openafs.org/6724 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e5e9260c7936ce0b4d51855291421679acccaed4 Author: Michael Meffie Date: Thu Feb 16 10:58:50 2012 -0500 volinfo: initialize vnode details Clear the vnode details object. Fixes the path lookup in volscan. Change-Id: I5176cf50bdb54529230fc72e4d1a65a20b4c14ba Reviewed-on: http://gerrit.openafs.org/6722 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a4d9fbaa8036cc78ae0119330314f6deab159c90 Author: Derrick Brashear Date: Mon Feb 13 16:11:19 2012 -0500 libafs: kill rxevent daemon even in upcall mode the switch from rxk listener env to upcall env could leave the event daemon running. fix that. Change-Id: Ibe36e7473536c36a739c0ad1e18fcf6880c98021 Reviewed-on: http://gerrit.openafs.org/6713 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 07d9b18e36fff6fc96c629ac2bebe8bb43f6b9dd Author: Ken Dreyer Date: Wed Feb 15 20:12:56 2012 -0700 doc: refer to aklog instead of klog klog (and kaserver) is deprecated. In generic examples, refer to the Kerberos 5 equivalents. Change-Id: I95806a384686033fe2f03573017fc619c2a376c7 Reviewed-on: http://gerrit.openafs.org/6721 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit f38780b38d6097832b6d49453a0a47044bc06903 Author: Jeffrey Altman Date: Wed Feb 15 00:06:47 2012 -0500 Windows: disable afsdhook.dll reload by daemon The daemon thread's loading and unloading of afsdhook.dll every second prevents the disk drive from sleeping and forces a search of the PATH. Make the periodic reloading configurable and disable it by default. Change-Id: I7e1a5b2bc7e1c4d4ea39fc30cf34c1195a326ed2 Reviewed-on: http://gerrit.openafs.org/6715 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fcc8244095a9cfb5235b39afc25c8817167e895c Author: Jeffrey Altman Date: Tue Feb 14 21:52:28 2012 -0500 Windows: remove install9x rules Change-Id: I293f982d0f1466fd9bf213db055eedafc3c79977 Reviewed-on: http://gerrit.openafs.org/6712 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 32de17264e229fca94742da7b6278536c24fe713 Author: Jeffrey Altman Date: Tue Feb 14 16:02:02 2012 -0500 Windows: remove AFS_WIN95_ENV No longer build for Win9x. Remove AFS_WIN95_ENV conditionals. Change-Id: I7082017a3aaa9a30723549974c4d8af50025b923 Reviewed-on: http://gerrit.openafs.org/6711 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9a394780abb782f7a4f8b6095b6faf46b8e819a6 Author: Jeffrey Altman Date: Tue Feb 14 15:35:07 2012 -0500 Windows: add KTC_TOKEN_MUTEX_FAIL error code If acquisition of the Global\AFS_KTC_Mutex fails, return a different error code from a pioctl failure since the pioctl was never issued. Change-Id: I001227f87e97a06bf419c68d6579843e4f93f032 Reviewed-on: http://gerrit.openafs.org/6710 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit da17eb6c8619c0f781cd4601c0da1258043aa475 Author: Jeffrey Altman Date: Tue Feb 14 12:01:38 2012 -0500 Windows: avoid GetComputerNameW call for all ioctl Cache the value of GetComputerNameW() to avoid repeated calls for each and every redirector ioctl request. Change-Id: I4476db982897a631510eba7d859385268b16ce34 Reviewed-on: http://gerrit.openafs.org/6708 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 12e2a3abe7ca640a7cef2630039c06964f779f17 Author: Andrew Deason Date: Wed Feb 8 16:03:29 2012 -0600 RedHat: Fail openafs-client 'stop' on rmmod error Currently, the openafs-client RPM init script ignores any error reported by rmmod. If 'umount /afs' succeeds but rmmod does not, the client may panic the machine if the client is started again (from e.g. running the 'restart' init script method), since afsd will try to initialize AFS with a libafs that has been shut down. So, do not ignore errors from 'rmmod', and instead fail the 'stop' method from the init script if we get an error. Change-Id: Id4a07703fb4df69ad3a6a3569c91e48f73a0d309 Reviewed-on: http://gerrit.openafs.org/6709 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit aaab21e7a123ce701a8d5b2144032739fe177d6f Author: Jeffrey Altman Date: Sat Feb 11 22:14:23 2012 -0500 doc: fix AdminGuide The AdminGuide was broken by e99224f2fe049bc339e87c8b6c195de67dca2f08. Change-Id: I4fc67d36857d62b562092b9892636f3e4c6d6623 Reviewed-on: http://gerrit.openafs.org/6703 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9d5a4530916a243632d911d78d93db676cd860d5 Author: Jeffrey Altman Date: Sat Feb 11 17:31:00 2012 -0500 Windows: default cell grand.central.org Change the default cell from openafs.org to grand.central.org since there is no openafs.org cell. All openafs software is distributed from the grand.central.org cell. Change-Id: I21ea2c5a9b55fbe3bb4ea19ae34ecf0e5a38084f Reviewed-on: http://gerrit.openafs.org/6699 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 8127eeced29beb43984de73b14ff55337103470c Author: Jeffrey Altman Date: Sat Feb 11 17:29:51 2012 -0500 Windows: reset version to 0.0.0 on master Master does not track a particular version number. For Windows builds on master, reset the version to 0.0.0 so that the builds are not confused with the actual 1.5.7600. Change-Id: I3c84bb117418284de0d65e2a4069b88908b91659 Reviewed-on: http://gerrit.openafs.org/6698 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5c4e49062af0e9b81b963d1d6e50c7cc52c68eb9 Author: Jeffrey Altman Date: Sat Feb 11 12:49:33 2012 -0500 Windows: AFSRemoveFcb() cannot race Modify AFSRemoveFcb to use InterlockedComparePointerExchange to ensure that only one thread can remove and deallocate an AFSFcb structure. Change-Id: I27d27b6a99806bee2fc2cfc04c2ac04d975a553d Reviewed-on: http://gerrit.openafs.org/6696 Reviewed-by: Peter Scott Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit e99224f2fe049bc339e87c8b6c195de67dca2f08 Author: Ken Dreyer Date: Thu Feb 9 17:37:01 2012 -0700 doc: add section on direct volume access Provide examples of the direct volume access syntax, using the fictitious example.com cell. Change-Id: Ia2ea592531e29f6b744d0bd6993d598d78a799c4 Reviewed-on: http://gerrit.openafs.org/6691 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 42aba4391ab3fadca2103e1df1f47445e40c436e Author: Jeffrey Altman Date: Fri Feb 10 08:56:12 2012 -0500 Windows: Perform rename to self check earlier In AFSSetRenameInfo(), the rename to itself check was performed after the name collision check. Move the check earlier in the routine to ensure that we catch the no-op before any real work is done. Change-Id: I580dd9958a259d4a1819c6bd882dae8067d2853d Reviewed-on: http://gerrit.openafs.org/6692 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d6f977830c164ee079c68101595c28ff1847f88f Author: Andrew Deason Date: Tue Dec 20 17:44:42 2011 -0500 viced: Keep H_LOCK while locking host in h_Alloc_r Currently in h_Alloc_r, we h_Lock_r the host, so we have it locked on return. However, h_Lock_r drops the host glock, which is bad in this situation since we have already added the host to the global hash table, so other threads may see it. This can mean that by the time h_Alloc_r returns, the returned host may have HOSTDELETED set, and/or the addresses associated with the host may be completely different. h_Alloc_r's caller, h_GetHost_r, seems to assume that the host is still associated with the address of the passed-in connection. When this is not true, this can result in the host structure getting into a strange state, such as the primary addr/port may not be hashed. The host may also have HOSTDELETED set, in which case we're not supposed to be dealing with it at all. To avoid these problems, lock host->lock directly in h_Alloc_r, without going through h_Lock_r and dropping H_LOCK. Also do it as one of the first things we do to initialize the host, just to make sure that if anybody else happens to see the host, it is locked by us when they do. Change-Id: Ia99cb84ad94f3e143ed0bae33485a88d60ff5b27 Reviewed-on: http://gerrit.openafs.org/6389 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 01301d0a5323a836efaae30cac325c25f6a7577a Author: Marc Dionne Date: Sun Jan 22 09:45:22 2012 -0500 viced: Allow null host for BreakCallBack For replication writes at the remote site, we will want to call this without a host structure. Change-Id: I9cdef18f35229c9ab162cc07f6d60fe443204654 Reviewed-on: http://gerrit.openafs.org/6674 Reviewed-by: Simon Wilkinson Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fb0d056c69489d76a5aad216277bf81ac3420aea Author: Jonathan A. Kollasch Date: Tue Feb 7 15:23:23 2012 -0600 libafsauthent, tvolser: fix objdir build Change-Id: I50c3424d61fc440f870207229a9540ebdb9a9632 Reviewed-on: http://gerrit.openafs.org/6689 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c0ac71d92fda5c1cd451bd453b00983362f47ce7 Author: Jeffrey Altman Date: Tue Feb 7 15:56:12 2012 -0500 Windows: Release Notes corrections Add missing BlockSize registry value Correct AFSRedirector\NetworkProvider registry key description Add note that LanAdapter value is ignored if SMB mode is not in use. Change-Id: I449988f1f6841c1b254d73b08a6ee53ca2dbaeda Reviewed-on: http://gerrit.openafs.org/6685 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 8bc139b4acdd2c06643abb44d3f5b3bfdcbf639d Author: Jeffrey Altman Date: Mon Feb 6 12:00:58 2012 -0500 Windows: OpenAFS reparse points are surrogates OpenAFS reparse points represent mount points, symlinks, and dfs referrals. All of which are file system objects that represent another named entity in the system. As a result the reparse tag field must include the Reparse Tag Surrogate bit (0x20000000) set. This permits the IsReparseTagNameSurrogate() macro provided in winnt.h to be used to determine if the reparse point is a surrogate or not. See http://msdn.microsoft.com/en-us/library/windows/desktop/aa365197%28v=vs.85%29.aspx Change-Id: I2561823e23371c2fdf01941da99fe848ca1fa11d Reviewed-on: http://gerrit.openafs.org/6668 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 58159672536df128cb21b449865acb011e8c90fc Author: Marc Dionne Date: Wed Jan 18 14:04:28 2012 -0500 RW Replication: Add basic definitions Add some basic definitions that will be needed to handle RW replicas. A new volume type RWREPL is added. Replicas will share the same volume ID as the RW volume, so the array of volume IDs by volume type is unchanged, as is the VLDB entry format. A new flag bit ITSRWREPL/VLSF_RWREPLICA for serverFlags identifies RW replica sites in VLDB entries. Change-Id: I882b238f34e682ebea782e11dc418ae1340d4546 Reviewed-on: http://gerrit.openafs.org/6676 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit e93786b01b358dce419fa7f446cf154e6e40f5a0 Author: Marc Dionne Date: Tue Oct 4 17:47:48 2011 -0400 vol: remove OPENAFS_VOL_STATS OPENAFS_VOL_STATS has been unconditionally defined since the IBM days. Adjust the code to assume it is set. Change-Id: I3b5ff99a469e6865ff1e10405a7f77d8c3890f59 Reviewed-on: http://gerrit.openafs.org/5551 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 80592c53cbb0bce782eb39a5e64860786654be9f Author: Andrew Deason Date: Mon Feb 6 13:23:41 2012 -0600 Disable kernel opt by default on Solaris 10 and 11 With newer Solaris Studio (sometime in the 12.* series), cc started adding SSE instructions to optimized x86 code, which is invalid for kernel code and can generate panics. There appears to be no way to turn this off currently (-xvector=%none is non-functional), so default to not optimizing kernel code. Change-Id: I5fdedb11219df68e0146b8e0cee9010c2eb4067e Reviewed-on: http://gerrit.openafs.org/6671 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3a621a8518f96e15a08448fecdfdb0cbce6a02c2 Author: Andrew Deason Date: Fri Feb 3 16:06:16 2012 -0600 Rx: Add missing rx_packet.h includes We no longer include rx_packet.h from rx.h, so rx_kcommon.h was not picking up some packet-related definitions. Some files (SOLARIS/rx_knet.c, IRIX/rx_knet.c) were using packet-related defines (e.g. RX_HEADER_SIZE) while just including rx_kcommon.h. Include rx_packet.h in those files to get the relevant definitions. Change-Id: Ib012f295d8e324dd8b38eb0b89933eac392a9583 Reviewed-on: http://gerrit.openafs.org/6670 Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit dc6beb3ea29a64bcf59807fd451a573aa54e1122 Author: Andrew Deason Date: Thu Feb 2 17:35:52 2012 -0600 SOLARIS: Use kcred instead of afs_osi_cred For many vfs ops to the cache, we currently pass &afs_osi_cred for our credentials, which is a mostly zeroed-out credential structure. In some modern versions of Solaris (Solaris 11), at least some parts of this structure need to not be NULL (cr_zone), or we will panic. The Solaris kernel provides a 'kcred' credentials structure for the purpose of using "kernel" credentials for i/o. So just use that instead, since kcred has existed at least since Solaris 8. Change-Id: Ia5252580d2de6dd7adfa1a1929148362d1da6360 Reviewed-on: http://gerrit.openafs.org/6669 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 39d152810de9adfa89acb994506d0b9d368395f2 Author: Jeffrey Altman Date: Sat Feb 4 17:26:02 2012 -0500 Windows: Avoid race during PIOCtl DirNode allocation Use InterlockedCompareExchangePointer to assign the DirNode to ObjectInfo->Specific.Directory.PIOCtlDirectoryCB. Otherwise, one thread could race with another thread when allocating the pioctl object. Change-Id: Ic5b1a0ff2e44f2c4520cc7f5e536bd876bc83a65 Reviewed-on: http://gerrit.openafs.org/6661 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit b819d3e3abcfedf10a1c91a26f45d0d85e6b93f1 Author: Jeffrey Altman Date: Sat Feb 4 12:48:24 2012 -0500 Windows: Hold Fcb references prior to service call If the Fcb reference count hits 0 while the service is called it is possible that the Fcb can be garbage collected prior to the completion of the call. Change-Id: I32c3c5e3debb246fe63ac6f6cc5625b493ee47a9 Reviewed-on: http://gerrit.openafs.org/6660 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit deb41441f0671d46de876d30f641f86cca7d256e Author: Jeffrey Altman Date: Sun Feb 5 12:58:22 2012 -0500 Windows: Do not build NSIS by default NSIS installers are no longer up to date and do not support 64-bit builds. OpenAFS no longer distributes them for 1.7 and beyond. Stop building them by default. Change-Id: I6b8c2b46ccc30654cfb4661c9bde50483bc99785 Reviewed-on: http://gerrit.openafs.org/6664 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 339189c88ba9c6bc7e4ea6434acef0b96da24dae Author: Jeffrey Altman Date: Fri Feb 3 11:35:33 2012 -0500 Windows: add buf_InvalidateBuffers Add a utility function that invalidates all buffers for a cm_scache_t object. Change-Id: Ib10139fb2aefa03d597d5afd494652fade40432e Reviewed-on: http://gerrit.openafs.org/6651 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 865f2442e682ff71b28a6b21363de8262f9e2bd1 Author: Jeffrey Altman Date: Fri Feb 3 11:21:45 2012 -0500 Windows: fix cm_DirOpDelBuffer assert In cm_DirOpDelBuffer() the data version field for a buffer in cm_dirOp_t.buffers[] can be CM_BUF_VERSION_BAD if the buffer was added to the buffer list but was never fetched from the file server. If the buffer was recycled by buf_Get() an attempt to remove an entry from the directory will be failed as opposed to fetching the buffer from the file server and performing the local removal. Change-Id: Id9af5180f2176c2a90ef9907ae84139e66ffe5d6 Reviewed-on: http://gerrit.openafs.org/6650 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 25142a9c2db933607507ee20e20216c635465d6d Author: Jeffrey Altman Date: Fri Feb 3 11:17:40 2012 -0500 Windows: buffer DV ranges do not work for directories In cm_MergeStatus, always set cm_scache_t.bufDataVersionLow to the new data version because the cm_dir package does not support version ranges. All modified dir buffers have their dataVersion field set to the current data version value. Failure to update the bufDataVersionLow field can result in B+ Trees being constructed from out of date directory information. Change-Id: Ic6bb6f78275de9c6c7960f2fc7c06c507b1144c1 Reviewed-on: http://gerrit.openafs.org/6649 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 09ab91bf9d27258c126411d4c80e5363118b7bba Author: Jeffrey Altman Date: Fri Feb 3 11:16:04 2012 -0500 Windows: update btree debugging code B+Tree key strings were changed to wchars for unicode support, the debugging printf format patterns were not updated to match. Do so now. Change-Id: I70619d2e3fbc007f3f21eaf56cc5d61503203818 Reviewed-on: http://gerrit.openafs.org/6648 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4224dc5c281ffc2bf8dd34eadb76762304eece75 Author: Jeffrey Altman Date: Fri Feb 3 11:14:50 2012 -0500 Windows: Do not open file if shutdown in progress Perform the shutdown check earlier in AFSCommonCreate() to prevent a request from being processed after the service indicates that a shutdown has begun. Change-Id: I8959141b5e2161ffe960e93a500b1153d9594a28 Reviewed-on: http://gerrit.openafs.org/6647 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 209df87d08fb07d9641b81858a0821b9fd95dbcc Author: Jeffrey Altman Date: Tue Jan 31 22:34:30 2012 -0500 Windows: AFSRedir DebugFlags Turn on BugCheck Turn on bug checking by default via the installation. This permits sites to disable the functionality but will allow us to capture more meaningful minidump output. Change-Id: I62b6d0ce5deed2c8798c9afb09565a8846c32a8c Reviewed-on: http://gerrit.openafs.org/6646 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fe952116f3f0968e6c9f584297bafd3e8dd56903 Author: Jeffrey Altman Date: Tue Jan 31 15:51:34 2012 -0500 Windows: Improve AFSNotifyDelete Do not call AFSNotifyDelete after the reference count on the DirEntry->ObjectInformation is given up. Log the Parent FID and file name since that is what are passed to the service to perform a delete. Log the actual FID of the object being deleted and not the address of the FID fields. Change-Id: Ic02e2cec625258356d1b08e03a02a7a9c4eb4ce7 Reviewed-on: http://gerrit.openafs.org/6645 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9a1d7518b62f43586f4d228f9261adb0fac4f5a4 Author: Jeffrey Altman Date: Tue Jan 31 15:49:22 2012 -0500 Windows: do not lower case direct volume references Not all volumes are lower case. Do not lowercase the string. Change-Id: Icb5f5ee9865bd856775486dffb1849f17f9b23f7 Reviewed-on: http://gerrit.openafs.org/6644 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ef63547e955edc60e2d074ef825b091e1c43882e Author: Tom Keiser Date: Wed Feb 1 03:31:23 2012 -0500 com_err: correctly deal with lack of libintl On machines lacking a libintl, _intlize() currently fails to initialize the output error string--leading to tools (e.g., translate_et) returning a null string; make afs_com_err fall back to returning the en/US canonical error text when we don't have any i18n support... Change-Id: I333745fb0a16e5bc9adb0755591d80de010d4d31 Reviewed-on: http://gerrit.openafs.org/6638 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 20e82cecd9008f9b3467c9a323c5c3abf27f3021 Author: Christof Hanke Date: Sun Jan 29 18:08:57 2012 +0100 linux: fix probing for noop_fsync Commit 267934d0e6910c8d8166a6e78f93c1bab40857b8 introduced probing code to deal with the renameing of simple_fsync inside the linux-kernel. This test does not take different parameter-lists for noop_fsync or simple_fsync resp. into account. Fix this. Change-Id: Ib490f0bb7e8098acc83fce001a43c08f478ad582 Reviewed-on: http://gerrit.openafs.org/6628 Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 87049b873b08ddd2246c02cd66099940eae2b1fd Author: Jeffrey Altman Date: Sun Jan 29 16:46:22 2012 -0500 man-pages: add fs_getverify and fs_setverify Add man pages for two new Windows only commands fs getverify fs setverify -verify {on, off} Change-Id: Id784608fba35147a4e33f22e43c7cd50a2307b9e Reviewed-on: http://gerrit.openafs.org/6632 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 7b3f5df6dca09a15d56aae5c431a50529c119db2 Author: Jeffrey Altman Date: Sun Jan 29 14:41:06 2012 -0500 Windows: do not panic if afsredir not ready during shutdown Change-Id: I0de6ad0f799e2acf1c02c6d53cfd9b1b437328fc Reviewed-on: http://gerrit.openafs.org/6630 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5e08628da2c24b40aeedebe0fef4e6ddd4690904 Author: Jeffrey Altman Date: Sun Jan 29 10:39:28 2012 -0500 Windows: Increase size of worker thread pools The size of the afs redirector worker thread pools should be made configurable but for now just increase the pool size to be in parity with the default worker pool created by the afsd service. Change-Id: Ib3c9356783162620112041582fa3d9dbaf8fce37 Reviewed-on: http://gerrit.openafs.org/6627 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0f65600b675e641575efaf81a71db990cebbb7d3 Author: Jeffrey Altman Date: Sun Jan 29 10:37:50 2012 -0500 Windows: Run Workers until empty task queue Do not allow a worker thread to sleep until the task queue is empty. It is better for the running thread to pick up and process a task then to sleep this thread and wait for another one to wake up to perform the work. Change-Id: I776bb9408ab054b045acb9bc003b88436cc4266b Reviewed-on: http://gerrit.openafs.org/6626 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 55af3387ef90053a10b012ffe7ae1ebee7575e01 Author: Jeffrey Altman Date: Sun Jan 29 00:22:03 2012 -0500 Windows: Release Notes for 1.7.5 Release notes updates for 1.7.5. Change-Id: Ie44441150fc077cc4ca7924c67322a1aed4cb9af Reviewed-on: http://gerrit.openafs.org/6624 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit de4d12dd5366bfddb6fde5bb050ce8fbaeb95f1a Author: Jeffrey Altman Date: Fri Jan 20 14:43:06 2012 -0500 Windows: Stop the thundering herd The afs redirector used notification events to wake up worker threads when a task was added to a work queue. Notification events when signalled wake up all threads instead of just one. Instead, use synchronization events to wake up a single thread at a time and restructure the code to permit workers to wake up additional workers if there is additional work to be performed or during library shutdown. Thanks to Peter Scott for his assistance. Change-Id: I0fb9d8578035f606f03170622fc9c50a1dbfee3a Reviewed-on: http://gerrit.openafs.org/6595 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1161d5fc3cde5e15cb2d13f01ff225710fc04766 Author: Jeffrey Altman Date: Wed Jan 25 11:27:39 2012 -0500 Windows: DriveSubstitution handle too small buffer If the buffer passed to DriveSubstitution is too small the resulting file path will end up being truncated. At the very least log the fact that truncation is occurring. In addition return the fact that truncation occurred to the caller. In NPGetUniversalName allocate a 4K buffer on the heap instead of calculating a buffer based on the local name buffer size. The local name buffer size has no relationship with the required buffer size for the expanded unc or device path. FIXES 130548 Change-Id: I86fbb9db4aa6a438dbb5e793678ec52283d5546b Reviewed-on: http://gerrit.openafs.org/6618 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 3d10edc2d49e0e1c7a7a67c538a932347a91504c Author: Jeffrey Altman Date: Tue Jan 24 17:09:01 2012 -0500 Windows: Invalidate all volumes at library init The afsredirlib.sys library driver is unloaded when the afsd_service stops and is reloaded when the afsd_service restarts. During the shutdown window any objects known to the kernel are preserved by afsredir.sys. When the afsd_service restarts, there are no valid callbacks on any objects so the afsredirlib.sys must invalidate all status info to permit the service to request a callback from the file server on next use. Change-Id: I3e8fa9513f435ff5cd1a8cfb8daa766aa30dd8c1 Reviewed-on: http://gerrit.openafs.org/6617 Tested-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit e44163a5470c6a9ff766641e4ce1ade6569cbadb Author: Jeffrey Altman Date: Tue Jan 24 12:52:12 2012 -0500 Windows: Refactor and consolidate afsredir invalidation Invalidation requests were being processed in an inconsistent manner because different rules were being applied to volume root directories and other objects and whether or not the invalidation was a whole volume invalidation or not. This patchset consolidates all invalidation logic for an object in the new AFSInvalidateObject function. AFSInvalidateObject is then called from AFSInvalidateCache and AFSInvalidateVolume as necessary. AFSInvalidateVolume executes AFSInvalidateObject on all objects in the volume object tree. As a result, whole volume invalidations whether triggered by the file server or "fs flushvolume" now work. Change-Id: I83f110b0987eb153794b6803a1fe48247090277f Reviewed-on: http://gerrit.openafs.org/6616 Tested-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit e0eb5405a8fab142be26375f8daa87621d20cbe9 Author: Marc Dionne Date: Sun Jan 22 21:21:51 2012 -0500 vlserver: Consolidate VLDB entry server flag definitions Group the definitions of server flags for VLDB entries in one place, and rename VLSERVER_FLAG_UUID to make its name consistent with the other flags. This makes it easier to see the complete set of flags and avoid conflicts. Change-Id: I3b326e3d97bc297c0314cfc48f0a066c3ff0415e Reviewed-on: http://gerrit.openafs.org/6615 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ca0fdd84a4311628b8310be66c62aaec51c86d4d Author: Simon Wilkinson Date: Mon Nov 7 09:48:14 2011 +0000 viced: Remove the LWP fileserver *) Remove all LWP specific code from the fileserver, and make pthread the default *) Build the pthreaded fileserver in the 'viced' directory, rather than in tviced *) Move the DAFS specific files from tviced to viced (arguably, these should move into dviced, but there are currently no source files in that directory) *) Remove tviced from the build Change-Id: I6e186c9fad6d9dccd04cf1317a80c087587ef25f Reviewed-on: http://gerrit.openafs.org/5816 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 40bf6dee2409197f7494c3d09bf2dea7c248d185 Author: Andrew Deason Date: Fri Jan 13 13:43:16 2012 -0500 vol: remove SYNC fatal_error processing Currently SYNC clients will "disable" themselves on certain error patterns. For example, if the server end closes its file descriptor too many times, or takes too long and then closes the fd, the SYNC client will return an error and set fatal_error. On any subsequent SYNC requests, the request will immediately fail without contacting the server, often making SYNC client programs effectively useless until they are restarted. There isn't really any reason to cause future requests to fail. Transient problems in the fileserver can easily make this situation possible (e.g. a fileserver can crash but still take several minutes to close the SYNC fd while the core is written to disk), and so while we may return an error for a specific problematic request, future requests may be fine. So, just remove everything related to fatal_error, so future SYNC requests can continue to be attempted. Adjust some log messages to reflect the new behavior. Change-Id: I4b8bfe53f591a9e8541cd5a98c909208df5bcbac Reviewed-on: http://gerrit.openafs.org/6548 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cd1f72649650404581cfcdcf3beeeaf2bb960bd6 Author: Derrick Brashear Date: Thu Jan 12 16:48:54 2012 -0500 libafs: add replicated connection pool keep pool of connections to use for replicated volumes, so we can have a separate idle time setting Change-Id: I61ed62c652c924b33fde920fac766c4ca0043826 Reviewed-on: http://gerrit.openafs.org/6546 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a9803ae643b070b8c805cf94b4ac3205ba8668b1 Author: Jeffrey Altman Date: Sun Jan 15 11:43:40 2012 -0500 Windows: make lock reader history debug only The lock reader history on osi_rwlock is proving to be too expensive. Only use it for DEBUG builds. Leave the data structures the same so that DEBUG builds can be mixed with a RELEASE build of afsd_service.exe. Change-Id: If0eeddb63c8f9919cdb5e119f31cde77974447b6 Reviewed-on: http://gerrit.openafs.org/6559 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit dfd0c2acc103cd2881bbfecd923c05012001e12a Author: Jeffrey Altman Date: Sun Jan 22 18:42:32 2012 -0500 Windows: store data verification mode Over the lifetime of OpenAFS a number of bugs have been discovered that can result in data corruption. This new mode (Windows only) will double check that the data received by the file server does in fact match the data that was written by the cache manager. After a successful StoreData and status merge but before the BIOD is released, a fetchdata is issued to read the data written by the cache manager. If the data fails to match, the StoreData operation is repeated. Data verification mode can be queried with "fs getverify" and set with "fs setverify {on, off}". The default value can be set with the TransarcAFSDaemon\Parameters DWORD "VerifyData" registry value. By default verification is disabled. Change-Id: Ic99c1692e6e78790e65ae600c3e428a79df59370 Reviewed-on: http://gerrit.openafs.org/6601 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1474b4a739c60f96a8d2e38546778ab9572c138d Author: Jeffrey Altman Date: Sun Jan 22 18:38:49 2012 -0500 Windows: VIOC_GETUNIXMODE = smb_IoctlGetUnixMode VIOC_GETUNIXMODE pioctl should execute smb_IoctlGetUnixMode not smb_IoctlSetUnixMode. Change-Id: Ia7dc3e1a82d7d14810f743f50ff7666f13ba8afc Reviewed-on: http://gerrit.openafs.org/6600 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 898930fc3ca81a5e5dde31967c00cdf5f4734ffa Author: Jeffrey Altman Date: Sun Jan 22 18:37:14 2012 -0500 Windows: fix fs setcrypt help message Options are on, auth, and off. Change-Id: I671df4233801f39482b8cac096e89fa38955a852 Reviewed-on: http://gerrit.openafs.org/6599 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 111de76ea8dac713247c99ebe2182ae16cc0a3c0 Author: Jeffrey Altman Date: Sun Jan 22 18:33:43 2012 -0500 Windows; release BIOD after status merge Releasing the BIOD permits the accumulated buffers to be accessed. Releasing the BIOD before the cm_MergeStatus() call creates a window where the buffer data version is larger than the cm_scache data version. Release the BIOD after the status merge. Change-Id: I023413cd41fbbd2d844d79a3b29c087792fffa24 Reviewed-on: http://gerrit.openafs.org/6598 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 05f3a0d1e0359f604cc6162708f3f381eabcd1d7 Author: Derrick Brashear Date: Thu Jan 5 17:19:45 2012 -0500 viced: disable rx keepalives during disk io when we are going to hit the backend storage, disable keepalives. the net effect of this is that no idle dead time is needed; instead, the normal dead time will result in a connection with no activity simply dying naturally if i/o blocks forever. it's important that keepalives be enabled during callback breaks, so that is done. Change-Id: I1a7bfe0bc62a092ca7dd6dbc4710f1b8254ca9a1 Reviewed-on: http://gerrit.openafs.org/6515 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 6e85044efe1305cec56a2589e096eca7d8a1053a Author: Jeffrey Altman Date: Fri Jan 20 20:10:51 2012 -0800 Revert "Windows: disable memory extent interface" This reverts commit 503bc56403baf741a4a7056a4077edc43812b9d1 Change-Id: I9e40787ecd0833370a86486fab6644667e03aa3b Reviewed-on: http://gerrit.openafs.org/6603 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 44261b25648a419abbc61b2a9d2d3f0373428080 Author: Marc Dionne Date: Tue Oct 4 17:35:18 2011 -0400 viced: remove FS_STATS_DETAILED FS_STATS_DETAILED has been unconditionally defined since the IBM days. Adjust the code to assume it is set. Change-Id: If7fb913bbb42dba5d749e7c30b8d9b7d81e4b4f8 Reviewed-on: http://gerrit.openafs.org/5550 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 9056d09887c84a480e0a9ee3457a9469fbb97064 Author: Jeffrey Altman Date: Tue Jan 17 19:46:30 2012 -0500 Windows: failover and retry for VBUSY When a file server returns the VBUSY error for an RPC the cache manager records the 'srv_busy' state in the cm_serverRef_t structure binding that file server to the active cm_volume_t object. The 'srv_busy' was never cleared which prevents the volume from being accessed. Clear the 'srv_busy' flag whenever cm_Analyze() receives a CM_ERROR_ALLBUSY error which means that all replicas have been tried or whenever the error is not VBUSY or VRESTARTING. FIXES 130537 Change-Id: I5020198e4f0ded1df0f64e228e699852f9de7c4d Reviewed-on: http://gerrit.openafs.org/6563 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f768fb95f3eb3815d6225e074c43341ed2ad5347 Author: Jeffrey Altman Date: Fri Nov 25 09:28:18 2011 -0500 Windows: improved idle dead time handling RX_CALL_IDLE has been treated the same as RX_CALL_DEAD which is a fatal error that results in the server being marked down. This is not the appropriate behavior for an idle dead timeout error which should not result in servers being marked down. Idle dead timeouts are locally generated and are an indication that the server: a. is severely overloaded and cannot process all incoming requests in a timely fashion. b. has a partition whose underlying disk (or iSCSI, etc) is failing and all I/O requests on that device are blocking. c. has a large number of threads blocking on a single vnode and cannot process requests for other vnodes as a result. d. is malicious. RX_CALL_IDLE is distinct from RX_DEAD_CALL in that idle dead timeout handling should permit failover to replicas when they exist in a timely fashion but in the non-replica case should not be triggered until the hard dead timeout. If the request cannot be retried, it should fail with an I/O error. The client should not retry a request to the same server as a result of an idle dead timeout. In addition, RX_CALL_IDLE indicates that the client has abandoned the call but the server has not. Therefore, the client cannot determine whether or not the RPC will eventually succeed and it must discard any status information it has about the object of the RPC if the RPC could have altered the object state upon success. This patchset splits the RX_CALL_DEAD processing in cm_Analyze() to clarify that only RX_CALL_DEAD errors result in the server being marked down. Since Rx idle dead timeout processing is per connection and idle dead timeouts must differ depending upon whether or not replica sites exist, cm_ConnBy*() are extended to select a connection based upon whether or not replica sites exist. A separate connection object is used for RPCs to replicated objects as compared to RPCs to non-replicated objects (volumes or vldb). For non-replica connections the idle dead timeout is set to the hard dead timeout. For replica connections the idle dead timeout is set to the configured idle dead timeout. Idle dead timeout events and whether or not a retry was triggered are logged to the Windows Event Log. cm_Analyze() is given a new 'storeOp' parameter which is non-zero when the execute RPC could modify the data on the file server. Change-Id: Idef696b15a8161335aa48907c15a4dc37f918bdb Reviewed-on: http://gerrit.openafs.org/6118 Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit c7673f4fad8e8b9390564e3cbfa11d5f1b52ba2f Author: Jeffrey Altman Date: Mon Nov 28 12:58:02 2011 -0500 rx: RX_CALL_IDLE and RX_CALL_BUSY Allocate new Rx error codes for Idle and Busy calls but do not send these errors on the wire. They are only intended for local use. RX_CALL_IDLE is an indication to an application that requests it that the rx peer is maintaining an open call channel but has not sent any actual data for the length of the registered idle dead timeout. RX_CALL_BUSY is an indication to an application that requests it that the rx peer believes the selected call channel is in use by a pre-existing call. When either RX_CALL_IDLE or RX_CALL_BUSY are assigned as the call error and an abort must be sent to the rx peer, the errors are translated to RX_CALL_TIMEOUT. This is necessary because it is not possible to add new Rx error values in a method that is safe for peers that are not expecting them. This patchset also documents which Rx errors defined in rx.h are used on the wire and which are not. The Unix and Windows cache managers are updated to build with these new error codes. Change-Id: Ib236f27b88d503c68134534bb069e12dd83537d8 Reviewed-on: http://gerrit.openafs.org/6128 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f6828bd9f158870002e8eeeb2325a40eb7ca5041 Author: Peter Scott Date: Wed Jan 18 18:42:19 2012 -0700 Windows Asynchronous purging of file content after a DV change Purge all regions of the file surrounding the extents which are to be purged. If a failure occurs on the purge due to an existing mapping, flag for purge during handle close Change-Id: Id8ef81afaa614ea08e03bbd55ec2cdded0d7139f Reviewed-on: http://gerrit.openafs.org/6573 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 22cba8e9702f3673c335bf834a9ee2c5e5fd9b6e Author: Jeffrey Altman Date: Thu Jan 19 15:25:44 2012 -0500 Windows: cm_buf refcnt must hold buf_globalLock An assertion in buf_Recycle() was being triggered when a cm_buf_t object was supposed to be in the free buffer list but wasn't. buf_Recycle() was racing with another thread. The test for refCount == 0 was performed while holding the buf_globalLock exclusively but the InterlockedDecrement(refCount) in buf_Release() was performed without holding buf_globalLock at all. buf_globalLOck must be held at least as a read lock. Otherwise, the refCount can reach 0 prior to the thread blocking for exclusive access to the buf_globalLock. This provides buf_Recycle() which is holding buf_globalLock the opportunity to race. The solution is to make sure that buf_Release() always holds buf_globalLock as a read lock and then use buf_ReleaseLocked() to perform the actual decrement and test. Change-Id: Ieb67548a7e44fa5f06f9346f428b1edadfc80696 Reviewed-on: http://gerrit.openafs.org/6576 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 201c954a36fe6ec19f96e4c8e24e6e080c3ba55a Author: Jeffrey Altman Date: Thu Jan 19 01:21:02 2012 -0500 Windows: Redesign daemon thread queue management The daemon thread worker pool has some very poor properties. The threads spend a significant amount of time polling for ready to process tasks because so frequently a store/fetch data request is accompanied by many other requests for the same FID that would block. Lets try a new approach. Create one queue for each worker thread and assign the tasks to a thread by a hash of the FID. This ensures that all tasks for a single FID are serialized and prevents multiple threads from attempting to perform the same task only to decide that the thread would be forced to block. Change-Id: I1d00ba0df1aa646e05b2cb3cb0796629f2e6d233 Reviewed-on: http://gerrit.openafs.org/6575 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit afeb3c3a83ed0869e4a70b0725e3f85713330c3a Author: Jeffrey Altman Date: Tue Jan 17 19:43:54 2012 -0500 Windows: prevent race assigning Fcb in AFSInitFcb() AFSInitFcb() is executed when the ObjectInformation->Fcb pointer is NULL. More than one thread can make that determination at the same time. Use InterlockedCompareExchangePointer() to detect a race and permit cleanup to be performed. Remove the output parameter of AFSInitFcb() to avoid a double assignment. Change-Id: I3870cccd5cd5e95134446523cce3547a2135d5e3 Reviewed-on: http://gerrit.openafs.org/6562 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 503d09413add1831dff5db24ee907eec59eda9e2 Author: Jeffrey Altman Date: Sat Jan 14 10:32:51 2012 -0500 Windows: cm_EndCallbackGrantingCall refactoring Refactor cm_EndCallbackGrantingCall to prevent assigning a callback to the cm_scache object in the case where it is going to be discarded. If the race was lost the callback data was already discarded by cm_RevokeCallback. By assigning and then discarding we are forced to issue an additional change notification to the smb client or afs redirector. Not only is this extra work but the afs redirector notification can result in a deadlock with a kernel thread that is waiting for the current thread to complete. modify the function signature to return whether or not a race was lost with a callback revocation. rename 'freeFlag' to 'freeRacingRevokes' since that is what the flag is meant to indicate. create a new 'freeServer' flag to indicate when the server reference should be released. There was a leak of server references when a race occurred. modify all calls to cm_EndCallbackGrantingCall() that provide an AFSCallBack structure on input to check for a lost race. If a race occurs, cm_MergeStatus() should not be performed. Change-Id: Ib17091ed51a24826bf84d33235125b3ccbbe47d4 Reviewed-on: http://gerrit.openafs.org/6556 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d9884a480c96d14a3e5a6b08cde5e5003d7a4694 Author: Jeffrey Altman Date: Sun Jan 15 11:08:23 2012 -0500 Windows: deadlock bet. DirEntry lock + DirectoryNodeHdr.TreeLock The DirectoryNodeHdr.TreeLock must be obtained before the DirEntry->NonPaged->Lock. In AFSLocateNameEntry(), the DirEntry lock is obtained before the TreeLock when processing a symlink object. For that case obtain the TreeLOCK first. Drop it if it is not required. Change-Id: I5b73f98b4bc7fcd5c02b8f255fa2423b52eb4a4d Reviewed-on: http://gerrit.openafs.org/6558 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 2fa7f36f74adc9a40a6b7c7ac5b5ea528733e0dc Author: Peter Scott Date: Wed Jan 18 12:04:29 2012 -0700 Windows: Correctly mark extents dirty when using the non-persistent AFS cache Change-Id: I9e03264bb94fe6494f1ca3721e4d7c7faf469fb5 Reviewed-on: http://gerrit.openafs.org/6571 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3cf5064c91af5efb5e2be80fb59db43b674d467a Author: Peter Scott Date: Wed Jan 11 06:49:23 2012 -0700 Windows: Performing async work after cache invalidation The code now queues a work item to perform additional work on extent processing after a cache invalidation has occurred. This additional work involves walking the current list of extents and purging/flushing regions of the system cache based upon the current state of the extent. Additional changes to filter which invlidation events result in a queued worker to perform asynchronous work. Change-Id: I72e4e0bac2caf69e41a095ce8fc4c2e083702b5c Reviewed-on: http://gerrit.openafs.org/6528 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6fda61ba2e2290dac818b42440fac1346d05b73d Author: Marc Dionne Date: Wed Jan 18 10:06:36 2012 -0500 Parallel build fixes Assorted fixes for issues seen with parallel builds: - bucoord must depend on butm, since it uses libbutm - for most object files in roken and hcrypto, headers must be installed before building - remove rules with 2 targets in rxkad and ubik - budb: add dependencies for db_dump.o Change-Id: Ide05f223c2f1fe53bff33cb03011ca47bf741c80 Reviewed-on: http://gerrit.openafs.org/6568 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit beafc7f742ebad021bfcbed73884aecedee4e04b Author: Marc Dionne Date: Wed Jan 18 11:22:35 2012 -0500 Linux 3.3: use umode_t for mkdir and create inode ops The mkdir and create inode operations have switched to using umode_t instead of int for the file mode. Change-Id: Ib8bbf6eaa6e87d6a9692c45b1a3fe93fcc3eff7a Reviewed-on: http://gerrit.openafs.org/6567 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 64bd0b728ca95ba7bb4f1fdd909386fde3ce81e1 Author: Marc Dionne Date: Wed Jan 18 10:25:03 2012 -0500 Linux: use standard macro for set_nlink configure test A generic macro exists to test for functions in the kernel, use it for set_nlink. Change-Id: Iaec2b29e48f500bcf7a1ef80a3f2a1305e5dbb8f Reviewed-on: http://gerrit.openafs.org/6566 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 60df98806b1aaf6ea4ba8f089faf8e9247b2fba5 Author: Derrick Brashear Date: Tue Jan 17 16:08:56 2012 -0500 volinfo: fix formating of placeholder printfs needed to placate gcc-llvm on lion Change-Id: Ie15e4768d2e3feb7ad80dfef05395f2c4a227c0f Reviewed-on: http://gerrit.openafs.org/6565 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6ad3d646e62801cb81a3c9efeac320daa44936e1 Author: Marc Dionne Date: Tue Jan 17 20:19:54 2012 -0500 rx: Correctly test for end of call queue The intention of this condition is to check if the current call being considered is the last one on the queue, but the test is incorrect. A null next pointer indicates a removed item, not the end of the queue. Use the queue_IsLast macro instead to correctly determine that this is the last item in the queue and that a call has to be selected, either the current one or a previously seen good choice. This can cause calls to get permanently stuck in the call queue and never get assigned to a thread, even when all threads are idle. Change-Id: Ie44a45734ab25bd3d2be3635c2e8f05857ca935e Reviewed-on: http://gerrit.openafs.org/6564 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 20151a869911a98f0938d74ae6096f3308d7ec01 Author: Jeffrey Altman Date: Sat Jan 14 10:44:56 2012 -0500 Windows: disable memory extent interface There have been reports that the memory extent interface which is used when NonPersistentCache is active can lead to data corruption. Change-Id: I3a8acae0648a67534e46c73ef1dcbf7f939a558d Reviewed-on: http://gerrit.openafs.org/6557 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 69196e41ec9c5a6ce8efd370fb8582f66667bcf7 Author: Jeffrey Altman Date: Sat Jan 14 10:31:01 2012 -0500 Windows: restrict service to 2 cpus by default Performance drops off considerably when the number of processors increases due to lock contention and the cm_SyncOp wait processing. If the MaxCPUs registry value is not set, limit ourselves to two. Setting MaxCPUs to zero permits use of all CPUs. Change-Id: I4bae328ed589811b0ea2a514501a0c1aa74e8015 Reviewed-on: http://gerrit.openafs.org/6555 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7ae2c0df3373bdce129694efaf8d0097bab606da Author: Jeffrey Altman Date: Fri Jan 13 23:58:50 2012 -0500 Windows: AFS_SERVER_FLUSH_DELAY AFS_SERVER_PURGE_DELAY Alter the flush delay to 5 seconds from 30 seconds Alter the purge delay to 300 seconds from 5 seconds Change-Id: I3f8e79d84582c4015e35d58cf1bedc9a023c0d73 Reviewed-on: http://gerrit.openafs.org/6554 Reviewed-by: Peter Scott Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f549911027417cdb4fbacfc8deaa8bd664d1651f Author: Jeffrey Altman Date: Fri Jan 13 23:57:10 2012 -0500 Windows: AFSParseName edge cases If the input path is \afs\ behave as if the path is \afs. If the input path is \afs\*\ detect the wildcard and return STATUS_OBJECT_NAME_INVALID. Change-Id: I0ef4f30fb3b6245a52160b5e7f9233bc5f599485 Reviewed-on: http://gerrit.openafs.org/6553 Reviewed-by: Peter Scott Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 96b9900d306645bb79d631250e3d740f163a2b40 Author: Jeffrey Altman Date: Fri Jan 13 19:32:16 2012 -0500 Windows: afs root is always a directory If the root is opened with the FILE_NON_DIRECTORY_FILE option, fail the request with STATUS_FILE_IS_A_DIRECTORY. Change-Id: Ic7d29f9032c2a19617276138833938fcf304838e Reviewed-on: http://gerrit.openafs.org/6552 Reviewed-by: Peter Scott Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7fd67cb2899368ff091c9fca8b3ad82ac9cf004b Author: Ken Dreyer Date: Mon Jan 16 16:04:14 2012 -0700 fix spelling in comments Change-Id: I4b4558833825295bbd16134cbd403a87b1c7b14c Reviewed-on: http://gerrit.openafs.org/6561 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fda2fe8538e00baddcd7fcf2c669162634b9d14e Author: Andrew Deason Date: Wed Jan 11 10:28:56 2012 -0500 DAFS: Fix SYNC_FAILED VScheduleSalvage_r log SYNC_FAILED is not an unknown protocol code, so stop saying it is. Change-Id: I87ce896fe061e6b5bfd3efdbb442281682a3e652 Reviewed-on: http://gerrit.openafs.org/6530 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 627cfb1d4e7b32b4342c59b162a36ba9beb8a066 Author: Andrew Deason Date: Wed Jan 11 10:00:35 2012 -0500 vol: Fix VCreateVolume special inode cleanup In order to dec the relevant special inodes, we need to know the parent vol id in addition to the vol id itself. Use the appropriate volume IDs when IH_DEC'ing special inodes after we fail to create the volume, so we don't leave behind special inodes. Change-Id: I77cfafac80c49debf46c86faefadd2a586d6f06b Reviewed-on: http://gerrit.openafs.org/6529 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e77b6858ee889ec9e4e3fe3bb62c23b1c1f5727f Author: Jeffrey Altman Date: Tue Jan 3 21:10:32 2012 -0500 Windows: dir buffers out of date - mark them as such if cm_CheckForSingleDirChange() fails, mark the cm_scache_t bufDataVersionLow as the current data version so that old directory buffers are discarded. Change-Id: I8d587a024027e74e66190fdc993564b640993b4c Reviewed-on: http://gerrit.openafs.org/6498 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7a25010a6e1719fc056b7367893c24267334978e Author: Jeffrey Altman Date: Thu Jan 5 11:52:00 2012 -0500 Windows: Avoid file server rpcs on deleted files If a file has been deleted, do not attempt to issue RPCs to the file server in response to AFS redirector extent processing. All RPCs will fail with VNOVNODE which will in turn trigger invalidation requests to the AFS redirector which can deadlock. Change-Id: I85b6b4a0ce619e54df648163392be93761f709f0 Reviewed-on: http://gerrit.openafs.org/6514 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit cde0539f79b54dc3c4aa496be16b89a5e6a3654c Author: Jeffrey Altman Date: Wed Jan 4 12:13:40 2012 -0500 Windows: use local var for interlocked result Save the result of the interlocked operations for use in debug logging. Do not reference the incremented or decremented object in the log messages, it may have changed. Local assignment is provided even in functions that are currently not logging to assist with debugging and as a reminder to use the result variable in future log messages. Change-Id: Ia7ed8bf14b204b265e1db7713b96864634a731d7 Reviewed-on: http://gerrit.openafs.org/6508 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 6185532db58692e58fca035a7b89767523d33225 Author: Jeffrey Altman Date: Wed Jan 4 01:10:37 2012 -0500 Windows: AFSParseMountPointTarget buffer overrun When parsing the AFS mount point string do not overrun the buffer if the colon cell/volume separator is not found. Change-Id: Id7275cc8815223730f7c39bd11a6f495beb117c4 Reviewed-on: http://gerrit.openafs.org/6507 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit ba4f5afc9c68f74587c7a9669571c2c32cb7a13b Author: Jeffrey Altman Date: Wed Jan 4 00:02:42 2012 -0500 Windows: Directory Enumeration, DVs, and TreeLocks Hold the TreeLock exclusively across all operations that enumerate, validate, or otherwise manipulate directory tree lists or data versions. Take the data version into account when deciding what to do with directory data. If a directory enumeration takes more than one request to service and the DV has changed from the time the directory snapshop was taken by the service and the enumeration completion, merge in the changes and then mark the directory as requiring verification. If a directory change operation completes (create, rename, remove) and the directory DV has changed by more than one force a full directory verification. Set the directory data version to -1 whenever a directory verification is required. Otherwise, the check to clear the VERIFY flag will only update the metadata for the directory. During a directory verification, if a new entry has been discovered it is added to the directory. Make sure the VALID flag is set so that the entry will not immediately be removed as invalid. Change-Id: I6be8d00126fccf88bde8ae5f97e850dfb9a2f60f Reviewed-on: http://gerrit.openafs.org/6460 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9783384af764fae23eb34cb26193cc295ee1a185 Author: Jeffrey Altman Date: Wed Jan 4 00:01:09 2012 -0500 Windows: correct log messages in AFSCleanup Change-Id: I1e202547d82195f85e6de20e72f6b07c6c7475ba Reviewed-on: http://gerrit.openafs.org/6506 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit bd09d06c3f5bb81023b438e43c4b9b49d663bb34 Author: Jeffrey Altman Date: Tue Jan 3 23:58:04 2012 -0500 Windows: Return Dir Data Version from AFSCleanup This patchset returns the directory data version from AFSCleanup(). It does not do anything with it. Change-Id: I86ac37f9e237bfec3ea612b896bec4ed7d43d068 Reviewed-on: http://gerrit.openafs.org/6505 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit d2f9f8fa05b5b07965c8001d7b716da4ba486d83 Author: Jeffrey Altman Date: Tue Jan 3 23:43:30 2012 -0500 Windows: reorg open handle counts and Fcb->NPFcb->Resource Reorganize when open handle counts are decremented in order to avoid a race with worker threads performing garbage collection. Change-Id: I07c1c5e80fad48cd3439dbc9c85bd6dff9b9bf44 Reviewed-on: http://gerrit.openafs.org/6504 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit e28d77fc4b3b6e5a93e5518d28c241eb9767d863 Author: Jeffrey Altman Date: Tue Jan 3 23:39:53 2012 -0500 Windows: Permit renames of open files AFS does not impose a restriction on renames of open files. Failure to permit the rename can cause problems if an anti-malware service opens the file immediately after the application performing the rename does so. Change-Id: Ib23a6a893c5c575e89b8a817faec4c11300a04b7 Reviewed-on: http://gerrit.openafs.org/6503 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit b92a676517084432c64e1ccb1efff59e7bcbe088 Author: Jeffrey Altman Date: Tue Jan 3 23:36:50 2012 -0500 Windows: Do not prime the service directory cache Performing a directory enumeration is an expensive operation that we should be attempting to avoid. The current directory enumeration and evaluate target requests will use inline bulk status RPCs to the file server which obtain status for 49 items at a time from a single directory. Change-Id: I78e08680fec9715c3c446d0c4c5226cd79db80bd Reviewed-on: http://gerrit.openafs.org/6502 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 6ee54eb3821b70a51cfde8096f2d50d46ead1b8a Author: Jeffrey Altman Date: Tue Jan 3 23:35:51 2012 -0500 Windows: More specific error values When a mount point, symlink, or dfslink cannot be resolved return STATUS_REPARSE_POINT_NOT_RESOLVED. When an operation fails because the volume is readonly, return STATUS_MEDIA_WRITE_PROTECTED. Change-Id: Ib35f0d7851c087bf8aa25d4b0138ee72fb6f3c68 Reviewed-on: http://gerrit.openafs.org/6501 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit e5a2f955c782ee46d1b24671fd0bac555e11d1a8 Author: Jeffrey Altman Date: Tue Jan 3 23:12:34 2012 -0500 Windows: do not flush dirty extents without permission When closing file handles, do not permit dirty extents to be released back to the service if the current handle (Ccb) does not have write permission. The cleanup operation will fail with STATUS_ACCESS_DENIED, the extents will be released and all of the dirty data will be discarded. Change-Id: Iceacf5319147d1bd6277ea160bc67d91f1a49d5b Reviewed-on: http://gerrit.openafs.org/6500 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman commit 22005aae24006dbe9ed9169c82d09ecfb032438d Author: Derrick Brashear Date: Sun Jan 8 21:02:04 2012 -0500 opr: fix generated target we need opr for comerr, but we don't want it after. build, then clean up. Change-Id: I621f36bc5f6db85720b73b33578975d0dd126a18 Reviewed-on: http://gerrit.openafs.org/6525 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 2caf0778ddeb6eeb854360cac20c6b3f0894f3eb Author: Marc Dionne Date: Fri Jan 6 17:22:35 2012 -0500 libuafs: only rebuild h directory when needed A few changes to allow a "make all ; sudo make install ; make all..." workflow to work without manually removing files in between. Make the rebuilding of the h directory dependent on the source files scanned to build it. This prevents it from being rebuilt for every "make install". While we're here, use -f when removing linktest for the clean target. This allows "make clean" to remove it without prompting when the user doesn't have write access to the file, as is the case when make install rebuilds it as root. Change-Id: I45b34ad41560ef8c905e6be4201fa438a3cc7bc3 Reviewed-on: http://gerrit.openafs.org/6519 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 80a2e6ed74c9bc1634f2aca76ee69fd81fcbb386 Author: Marc Dionne Date: Sat Jan 7 15:40:42 2012 -0500 opr: add buildtools target opr needs a buildtools target for "make generated". Make it install the headers, which are needed by the other generated targets. Change-Id: I34faa81fa84407c5e6e1460dc765d0c2ce1ef3e8 Reviewed-on: http://gerrit.openafs.org/6523 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 967d7201ee5c27db6d75d5efafcad9458e2b5167 Author: Andrew Deason Date: Sun Jan 8 11:31:39 2012 -0500 Make libjafs buildable again libjafs is surprisingly close to being buildable. Fix a few misc things which have bitrotted over the years so it is possible to actually build: - Add -I$SRC/config to the cflags, so we can include afsconfig.h - Remove references to the nonexistant rxkstats.o - Do not link with UAFS' AFS_component_version_number.o, since this gives us duplicate version number symbols - Include afs_vosAdmin.h in Group.c, to satisfy some missing symbols Change-Id: Ie8da88872288073d080a58ed7fe8c8b52052488e Reviewed-on: http://gerrit.openafs.org/6524 Reviewed-by: Steven Jenkins Tested-by: Steven Jenkins Reviewed-by: Derrick Brashear commit 9620b67c138797e815621f0254cf15d0de504121 Author: Derrick Brashear Date: Wed Jan 4 15:04:41 2012 -0500 afs: discard cached state when we are unsure of validity in the event we got a network error, we don't know if the server completed (or will complete) our operation. we can assume nothing. a more complicated version of this could attempt to verify that the state is what we expect it to be, but in extended callbacks universe this is potentially easier to solve anyway. for now, return the error to the caller, and mark the vcache unstat'd. Change-Id: Iafb67f24b89d78b8236660d047da12fce1dd6061 Reviewed-on: http://gerrit.openafs.org/6510 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit a12527c87a6f9e476861abbf18b9af84cef0db04 Author: Derrick Brashear Date: Fri Jan 6 06:33:22 2012 -0500 afs: put back conn if not using in checkserver loop we get a conn, check it for eligibility, and if not, just abandon it. "oops" Change-Id: Ie3841c19b05a87fb225c3e8124cd485cba3c3648 Reviewed-on: http://gerrit.openafs.org/6516 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Derrick Brashear commit 2a31f35936698c504c863702ebb675ac9dfe47e1 Author: Derrick Brashear Date: Fri Jan 6 06:53:46 2012 -0500 rx: add and export a public keepalive toggle make enabling and disabling keepalives a public function. export the function Change-Id: Ia553d91488511edc0b483d95326f14ac0e315332 Reviewed-on: http://gerrit.openafs.org/6517 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit d6876d3d8c7888cb9ef8efc9971e24259adf025a Author: Chaskiel Grundman Date: Thu Dec 29 13:06:31 2011 -0500 Make src/opr objdir safe Update the Makefile for src/opr to use $? to reference headers, so objdir builds work correctly Change-Id: I3d8e0d885715a1d1bc1578f4e8ce69fe4239bb56 Reviewed-on: http://gerrit.openafs.org/6444 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman commit 0f4da13137612a9b0c0c3b57aa939d6661fb67f8 Author: Derrick Brashear Date: Tue Jan 3 15:57:14 2012 -0500 afs: increase idledead time it's actually important this be more than the rx call dead time so timing out server callbacks to clients don't result in us idle deading a call to the server when callbacks need to be broken FIXES 130327 Change-Id: Ibe2468edb61f307da9174d2c51cb0ea61c118c56 Reviewed-on: http://gerrit.openafs.org/6497 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 38b74b34d2d370030f0e1abf835cfefefeaa0de2 Author: Derrick Brashear Date: Wed Jan 4 13:21:43 2012 -0500 ukernel: enable nat ping again if we're not root, no nat ping at all. fix that. Change-Id: I7ea4db77b30ba639921b11c4ccad35a2e14133b4 Reviewed-on: http://gerrit.openafs.org/6509 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e3c8bd457476ddd83a0e483a24fb08c436cf4aac Author: Simon Wilkinson Date: Wed Jan 4 21:44:30 2012 +0000 afs: Negate codes using a clear, standard method The bulk of our code uses 'code = -code' to negate an error code. Use this, rather than 'code *= -1', as the latter form makes my head hurt. Change-Id: I578fbd7c123c37d89ceb1a6373409feb8b619d86 Reviewed-on: http://gerrit.openafs.org/6511 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 52944ff61a455770da451b551ffa0ae10c19ea2e Author: Marc Dionne Date: Wed Jan 4 19:27:18 2012 -0500 Use offsetof() in set_header_word to get field offset Use offsetof() to replace a few instances where the same logic is open coded in set_header_word and inc_header_word macros. In cases where the field name involves a variable as an index to an array, newer gcc gives a sequence point warning. Change-Id: I43e3d6ef6a63b51003496a1beb72c445a9109615 Reviewed-on: http://gerrit.openafs.org/6513 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d4fba5f92db18d77c1fab20af3815637c132bc6f Author: Marc Dionne Date: Wed Jan 4 18:49:32 2012 -0500 vol: initialize readmeinode Newer gcc complains about readmeinode being potentially used uninitialized. Doesn't look possible in the code, but initialize it to quiet the warning. Change-Id: I7172475a64a3bfb90a76c0266d7812d5d42a2c4c Reviewed-on: http://gerrit.openafs.org/6512 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit faa58c9f60a158481bdfee27e175a37c5fcd64aa Author: Michael Meffie Date: Wed Dec 14 12:52:51 2011 -0500 Unix CM: reset blacklist on hard-mount retry Reset black-listed servers on a request when retrying due to a hard-mount retry. When hard-mounts are in effect, a request may retry indefinitely. If all the servers have been black-listed due to a transient error, the request may never complete. Change-Id: I2510f729cbbb21836b139c94e25867118a6ad873 Reviewed-on: http://gerrit.openafs.org/6330 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 8e15e16c9e6a5768f31976cc21b48d5bb10617b7 Author: Andrew Deason Date: Fri Nov 18 10:25:08 2011 -0600 DAFS: Atomically re-hash vnode in VGetFreeVnode_r VGetFreeVnode_r pulls a vnode off of the vnode LRU, and removes the vnode from the vnode hash table. In DAFS, we may drop the volume glock immediately afterwards in order to close the ihandle for the old vnode structure. While we have the glock dropped, another thread may try to VLookupVnode for the new vnode we are creating, find that it is not hashed, and call VGetFreeVnode_r itself. This can result in two threads having two separate copies of the same vnode, which bypasses any mutual exclusion ensured by per-vnode locks, since they will lock their own version of the vnode. This can result in a variety of different problems where two threads try to write to the same vnode at the same time. One example is calling CopyOnWrite on the same file in parallel, which can cause link undercounts, writes to the wrong vnode tag, and other CoW-related errors. To prevent all this, make VGetFreeVnode_r atomically remove the old vnode structure from the relevant hashes, and add it to the new hashes before dropping the glock. This ensures that any other thread trying to load the same vnode will see the new vnode in the hash table, though it will not yet be valid until the vnode is loaded. Note that this only solves this race for DAFS. For non-DAFS, the vol glock is held over the ihandle close, so this race does not exist. The comments around the callers of VGetFreeVnode_r indicate that similar extant races exist here for non-DAFS, but they are unsolvable without significant DAFS-like changes to the vnode package. Change-Id: I84c5d1bdd29f9e7140e905388b4b65629932c951 Reviewed-on: http://gerrit.openafs.org/6385 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 7461fa11939556d3b6f3ea38da7ff65607805579 Author: Andrew Deason Date: Mon Dec 26 21:22:08 2011 -0500 afs: Grab a reference to setp in afs_icl_Event4 We can drop GLOCK in several places in afs_icl_Event4 and the afs_icl_AppendRecord callee. To ensure that the given afs_icl_set does not get freed while we have GLOCK dropped, grab a reference to the set. Thanks to Ryan C. Underwood for reporting an issue triggered by this. Change-Id: Ifeda229b444abd75b0f22c7acf18a7553d833964 Reviewed-on: http://gerrit.openafs.org/6431 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 267934d0e6910c8d8166a6e78f93c1bab40857b8 Author: Geoffrey Thomas Date: Sat Dec 31 19:51:29 2011 -0500 linux: fsync on a directory should return 0, not EINVAL Directory writes are synchronous, so this is fine. There's a mostly-convenient function in fs/libfs.c that returns 0 that we can use to do what we want ("mostly" because it was renamed in 2.6.35). FIXES 130425 Change-Id: I9a2af60ed3152be036f0145c94152d8cff2e1242 Reviewed-on: http://gerrit.openafs.org/6491 Reviewed-by: Simon Wilkinson Tested-by: BuildBot Reviewed-by: Derrick Brashear commit dee93ff1d114da711df345e06b5e1a682c877315 Author: Geoffrey Thomas Date: Sun Dec 11 05:06:24 2011 -0500 rpm: Don't attempt to restart on upgrade when using systemd systemd is actually rather capable of leaving the OpenAFS client in an incredibly broken state, thanks to its willingness to track services and kill their processes. We should not attempt to restart the client on upgrade, whether a normal upgrade or a migration from SysV initscripts. In the former case, it's fine (and correct) for the old AFS to keep running; in the latter case, the unit file is capable of correctly shutting down an initscript-launched client. The same is true for the OpenAFS server. This brings the packaging in line with the SysV initscript code in the specfile, which does not attempt to restart the service, as well as with e.g. Debian's packaging, which uses --no-restart-on-upgrade. While we're here, clean up a redundant BuildRequires on systemd-units. Change-Id: I3b1771a7246f04be0e82765976664c50e0adae47 Reviewed-on: http://gerrit.openafs.org/6247 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit af08b745117899d116d4ee14e08e1184369f591f Author: Peter Scott Date: Thu Dec 29 17:23:32 2011 -0700 Windows: Support correct status codes from service When performing object verification, check for status failures corresponding to parent object issues which require a validation of the parent Change-Id: I4a73b55961eda62079c933f9e85888ea24b39f1f Reviewed-on: http://gerrit.openafs.org/6447 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 52c3bace5ac4c93883d4913933a58573abded3e9 Author: Peter Scott Date: Thu Dec 29 17:30:45 2011 -0700 Windows: Handle invalid node types In the case where the direntry data is invalid, construct an Fcb of type INVALID so that the direntry can be displayed and the objected deleted even if it cannot be evaluated. Change-Id: I37da154b7429929fe833874c7cd048a3a804a96f Reviewed-on: http://gerrit.openafs.org/6445 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ac56cd9e6182742e0b586ea8d833e4c7346e03b8 Author: Jeffrey Altman Date: Fri Dec 30 21:45:54 2011 -0500 Windows: AFSFileUpdateResultCB ParentDataVersion Add the parent directory data version to the AFSFileUpdateResultCB structure. Change-Id: Ia1b1345c410ff216b35f3d42912ac921b978a299 Reviewed-on: http://gerrit.openafs.org/6459 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 85f4971f850c0110915ba862922c1536ebe506c2 Author: Jeffrey Altman Date: Fri Dec 30 20:09:06 2011 -0500 Windows: renames that overwrite existing target The Windows client up to this point has never correctly implemented directory renames. For the longest time it assumed that the file server would not replace a pre-existing target. As a result, when the target name was already in use the contents of the directory would end up with the target name existing but its previous file id associated with it. A second problem was that lookups for the source and target names were not performed while the directory (or directories) were exclusively held to ensure that competing changes could not occur. This patchset corrects both issues in cm_Rename() and adjusts the redirector interface to match the new behavior. Change-Id: I4f5cff7debcf9925947ac3fc6931565acb57ebd9 Reviewed-on: http://gerrit.openafs.org/6457 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d64983bab047ad6349d2edfe2ffa35b484529889 Author: Jeffrey Altman Date: Fri Dec 30 01:34:51 2011 -0500 Windows: AFSDirEnumResp and AFSDirEnumEntry changes A directory enumeration is not an atomic operation. The redirector reads an enumeration a chunk at a time. During the entire enumeration it is possible that the data version of the directory object has changed due to entries being added or removed. This patchset adds two data version values to the AFSDirEnumResp structure. The first is the snapshot data version which is the dv of the directory object at the time the entry list snapshot was taken. The second is the current data version number of the directory object. If an object has been removed from the directory after the snapshot was taken, attempts to fetch status information for the object will fail with a VNOVNODE (aka CM_ERROR_BADFD aka STATUS_INVALID_HANDLE). The NTStatus field has been added to the AFSDirEnumEntry structure to permit notifying the redirector of such failures. RDR_PopulateCurrentEntry() has been extended with an additional cm_Error parameter that accepts the errorCode field provided by the cm_direnum_entry_t object constructed during the enumeration. Change-Id: Iee8f6bf9919780ce4dd6c2b184810c0d6afc39cc Reviewed-on: http://gerrit.openafs.org/6455 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f142b615bbac6195aa4e275179f37da490013432 Author: Jeffrey Altman Date: Fri Dec 30 01:24:27 2011 -0500 Windows: Add AFSFileEvalResultCB In response to AFS_REQUEST_TYPE_EVAL_TARGET_BY_ID and AFS_REQUEST_TYPE_EVAL_TARGET_BY_NAME, return the new AFSFileEvalResultCB instead of a raw AFSDirEnumEntry. AFSFileEvalResultCB includes the data version number of the parent directory at the time the node was evaluated. Change-Id: Ida25790688f8ab193c234c9b3fadf4f594edd740 Reviewed-on: http://gerrit.openafs.org/6454 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ccd6614c8f92e349e1892fa59f814b615c8816e0 Author: Jeffrey Altman Date: Fri Dec 30 01:10:08 2011 -0500 Windows: Add AFSFileCleanupResultCB Add AFSFileCleanupResultCB which includes the parent directory data version number. This is necessary because object deletion occurs during the Cleanup processing and the redirector needs to know the resulting data version of the affected directory. Change-Id: Iac07ddaaa3e3373f1690c85d247313e070450169 Reviewed-on: http://gerrit.openafs.org/6453 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9115c437c4113a554f3c3b97c4eaeafea6949600 Author: Jeffrey Altman Date: Thu Dec 29 18:31:11 2011 -0500 Windows: STATUS_OBJECT_PATH_INVALID == invalid parent directory Modify evaluation of nodes by name and id to consistently return STATUS_OBJECT_PATH_INVALID if the parent FID no longer exists. Change-Id: I94f56e5b525a35279152f6f7848654a56bbfa235 Reviewed-on: http://gerrit.openafs.org/6446 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e7ecda66eb2054012b4ec153a656ce674d6e70e4 Author: Jeffrey Altman Date: Mon Dec 26 20:46:46 2011 -0500 Windows: Request extents readability Two minor code modifications to make the code easier to read. Change-Id: I1cf72911ace4eff17c857cd000cb24fbe0f28c2b Reviewed-on: http://gerrit.openafs.org/6433 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 970d6e268011ab4ad8a4857121933514f7768b55 Author: Jeffrey Altman Date: Mon Dec 26 20:44:36 2011 -0500 Windows: RequestExtents avoid bufWrite if rdr held If the cm_buf_t is held by the redirector the buffer cannot be written back to the file server even if dirty. Therefore, do not check whether or not the cm_buf_t is dirty until after it is known that the buffer is not redirector owned. Change-Id: I10dc8f74915c2267dc44138284eba273eb708e0a Reviewed-on: http://gerrit.openafs.org/6432 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2ef57a3ee951660cb69d8656e9293c93b28e0d1e Author: Jeffrey Altman Date: Sat Dec 31 16:07:00 2011 -0500 Windows: avoid race during Fcb cleanup The worker thread can race with a AFSCleanup() operation and tear down the Fcb before the AFSCleanup() drops the Fcb->NPFcb->Resource. Avoid this race by requiring the worker thread to obtain the resource once before deleting the resource. Change-Id: Iafad8260c5dfc4187a62c04b14d55ac0bf0e4aeb Reviewed-on: http://gerrit.openafs.org/6462 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e2b42e2cde170102c07937d55db376416cb3965c Author: Jeffrey Altman Date: Sat Dec 31 16:04:27 2011 -0500 Windows: avoid deadlock if bulk error during enum If the cache manager has a valid callback at the start of a directory enumeration, the service can begin a bulk status rpc which can fail. The error code from the rpc is never propagated to the caller, therefore the caller loops forever attempting to complete the enumeration with status info. Fix it by returning the error. Change-Id: I53892ddf338152d53c533ef31c3b1047c96bfbf2 Reviewed-on: http://gerrit.openafs.org/6461 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 36657b8505e3b232158a63b4ecad12fa59548b3a Author: Jeffrey Altman Date: Fri Dec 30 20:24:49 2011 -0500 Windows: AFSInsertHashEntry can fail If AFSInsertHashEntry() fails, the object information structure that was being inserted is not in the btree. Therefore, ensure that the object does not have the AFS_OBJECT_INSERTED_HASH_TREE or AFS_VOLUME_INSERTED_HASH_TREE flag set (as appropriate). This permits the unreferenced object to be garbage collected. Change-Id: I023f765571a7ba014556d9505ab2d46ec930f1a2 Reviewed-on: http://gerrit.openafs.org/6458 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit d4eb369e7a5dada7e13585d934a63fa27e0d20ee Author: Jeffrey Altman Date: Fri Dec 30 12:55:30 2011 -0500 Windows: additional AFSValidateEntry logging Change-Id: Iecfbaff197b83de1c31c51d18f819c9d1be54f60 Reviewed-on: http://gerrit.openafs.org/6456 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit ad3c00520b93174808f692ced3e35261030a8c1b Author: Jeffrey Altman Date: Thu Dec 29 22:20:38 2011 -0500 Windows: add DV and error status to dir enumerations The cm_BPlusDirEnum family of functions are atomic when generating the directory enumeration but are not atomic with respect to the rest of the system as the enumeration is accessed. Therefore, the data version of the directory at the time the enumeration is created may not be the same as the directory version when the enumeration is fully processed. We therefore store the initial data version in the cm_direnum_t object. When the enumeration is fetching status information for each of the directory entries, it is possible that the fetch status will fail. We therefore store the fetch status error code in the cm_direnum_entry_t object. By doing so, the consumer of the enumeration can make a reasonable decision about the lack of status info. For example, if the resulting error is CM_ERROR_BADFD it is known that the entry has been removed from the directory since the initial enumeration. Change-Id: I289881e2c59525a9f998559b00769d3ac3f335c0 Reviewed-on: http://gerrit.openafs.org/6452 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9b42af9326dbf34a7a657a7d4a2ea6d845c845e1 Author: Jeffrey Altman Date: Thu Dec 29 22:18:59 2011 -0500 Windows: protect merge status against dscp == scp If the directory status object is the same as the object for which status info is being merged, the object will refer to itself as its own parent. Do not permit that. Change-Id: I6f7b6416f4c875a30dd5b85ba679389484523b12 Reviewed-on: http://gerrit.openafs.org/6451 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 60992d4ffb94a8472ccff3ff7890c34e2572688d Author: Jeffrey Altman Date: Thu Dec 29 19:58:19 2011 -0500 Windows: protect dir ops by CM_SCACHESYNC_STOREDATA CM_SCACHESYNC_STOREDATA is used to ensure that only one directory modifying rpc can be issued to the file server at a time on a single cm_scache_t. However, the local directory modifications were being made after cm_MergeStatus() and cm_SyncOpDone() were called. As a result, serialization of changes against the local directory buffers and b+tree was lost. Change-Id: I1e99685767b6b9b51e546be0946b189386e8dbd2 Reviewed-on: http://gerrit.openafs.org/6450 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit dc06ebad8ba7a58c1561ddd03f0a8a79e610d7c7 Author: Jeffrey Altman Date: Thu Dec 29 19:19:04 2011 -0500 Windows: init scache DV=CM_SCACHE_VERSION_BAD zero is a valid DV. CM_SCACHE_VERSION_BAD is not. Change-Id: I65c10153059bae6dbd4da344958db4a6be309633 Reviewed-on: http://gerrit.openafs.org/6449 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 83c52997b7b9e4d91a0263fbd26ec19fb2092d9c Author: Jeffrey Altman Date: Thu Dec 29 12:45:16 2011 -0500 Windows: afsredirlib log messages Improve or correct a number of log messages. Report the correct FID or NT Status value, etc. Change-Id: I434b47e1350767f868170323280298f77e1a840a Reviewed-on: http://gerrit.openafs.org/6442 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit ea0865e3266884f15a05bb3edd316f5ce8f972ed Author: Jeffrey Altman Date: Thu Dec 29 12:42:26 2011 -0500 Windows: Symlink resolve failure error If a symlink cannot be resolved, return STATUS_REPARSE_POINT_NOT_RESOLVED instead of STATUS_ACCESS_DENIED. The symlink is after all a reparse point. This results in a more meaningful error being delivered to the end user. Change-Id: I30713dac7b916efaf3cf7a5d7717cb0bc971a31a Reviewed-on: http://gerrit.openafs.org/6441 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 07655bc23e2ab7b5d0c808d79b3c7838a01eacfa Author: Jeffrey Altman Date: Wed Dec 28 17:08:23 2011 -0500 Windows: Make idle dead timeout very long The idle dead timeout processing must eventually be removed from Rx for initiators. In the meantime, make the timeout period ten times longer than the hard dead timeout. This permits eventual failure when the server doesn't respond in ten minutes but avoids more transient issues. Change-Id: Ia673666dd55b33c4375ee8fdcbb89c82e8b01185 Reviewed-on: http://gerrit.openafs.org/6440 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 19f1e0f7cf40c3da1d49c789358bd814f7e3b3eb Author: Jeffrey Altman Date: Wed Dec 28 17:07:01 2011 -0500 Windows: replace strdup with xdr_alloc in callback processing The CRT allocator cannot be used for memory that will be freed by afsrpc.dll. Use xdr_alloc() instead. Change-Id: Idd33710c225d58b4e6eba0bfdb2f8b3282996258 Reviewed-on: http://gerrit.openafs.org/6439 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 5d11bd665cd93b736f735d689f703e44f865cefc Author: Jeffrey Altman Date: Mon Dec 26 20:59:21 2011 -0500 windows: osi_TSignalForMLs simplify Simplify logic for readability and efficiency. Change-Id: I3c78b23b6fcf8478fe20a803755923108995d532 Reviewed-on: http://gerrit.openafs.org/6438 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit f6f95ac4bfc5e504c1b825fd52b787d12a89e53c Author: Jeffrey Altman Date: Mon Dec 26 20:56:38 2011 -0500 Windows: osisleep do not tamper with queues There is no need to manually remove an entry from a queue before executing osi_QRemoveHT(). osi_QRemoveHT() removes the item from the queue and fixes up the pointers correctly. Manual intervention is a waste of cpu and can be harmful. Change-Id: Iaea4ceac2cb5f61e5bb73fd181bd934e06ddf0a6 Reviewed-on: http://gerrit.openafs.org/6437 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 4c2190784f1d4bb613cc140b8d189f0ab4ae10fc Author: Jeffrey Altman Date: Mon Dec 26 20:55:22 2011 -0500 Windows: osi_sleepInfo tid type The thread id type is DWORD not size_t for consistency with the rest of the client_osi package. Change-Id: I2e2d31d8738d9de82d99f346f5109de133f3e25e Reviewed-on: http://gerrit.openafs.org/6436 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 3011a8228a04a54e04f5626e9f686840a25f2d5f Author: Jeffrey Altman Date: Mon Dec 26 20:51:33 2011 -0500 Windows: add osi_TWaitExt(), fix osi_TWait() osi_TWait() was adding new locks to the turnstile at the tail which is the end of the queue locks are removed from. This implemented LIFO instead of FIFO when FIFO is the "fair" order to service lock requests. osi_TWaitExt() is added to permit the Reader to Writer upgrade request to use LIFO when more than one reader is present. Change-Id: Ib6435a3edc2cb8519939cfad93e0db4b0604da2d Reviewed-on: http://gerrit.openafs.org/6435 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 2b6a8d384bd4426a61c72e79c34ffd75a03e612e Author: Jeffrey Altman Date: Mon Dec 26 20:48:24 2011 -0500 Windows: use waiters counter instead of osi_TEmpty The osi_TEmpty() macro examines the values of the turnstile pointers. Instead use the lock's 'waiters' counter to determine if there are waiting threads to signal. Change-Id: I8e14a03a30adcf1e67b07fc020104c2ada3b5c6a Reviewed-on: http://gerrit.openafs.org/6434 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 2cdd59d8f318193d0ef7937910466531caf1c963 Author: Jeffrey Altman Date: Sat Dec 24 15:16:12 2011 -0500 Windows: kauth search for kerberos iv port first Modify src/kauth/user_nt.c to match the service name search order of the Unix code: kerberos4 kerberos-iv kerberos The standard Windows SERVICES file includes "kerberos-iv" as port 750. FIXES 127907 Change-Id: I518a812cc2d465334e8ef6929f8988c51b33749b Reviewed-on: http://gerrit.openafs.org/6430 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 8a574ba16a80fc2b8b703ddcfc99486b977e6071 Author: Andrew Deason Date: Thu Dec 22 15:48:49 2011 -0500 afs: Panic on afs_conn refcount imbalance An undercounted afs_conn can easily cause a panic and/or memory corruption later on, since we put an rx_connection reference with each afs_conn reference. Panic as soon as we detect this, as this indicates a serious bug. Change-Id: I251fd3303114d0822b8cf70805a8a447986a7762 Reviewed-on: http://gerrit.openafs.org/6413 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 79f69f2eb130c1c5cb6cdfa4e7a129f450a58339 Author: Andrew Deason Date: Wed Dec 21 17:01:16 2011 -0500 afs: Add afs_WriteDCache sanity checks Writing a non-free non-discarded dcache entry with a zero volume id can easily cause hash table corruption later on, so make sure we don't do that. Also log something if the write itself fails, as this usually indicates an unusual situation involving I/O errors or something. Change-Id: Ib9602227e8cee324cb63a4a3dee28e53af69b446 Reviewed-on: http://gerrit.openafs.org/6419 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9ed26da26f4a5a3fef3bf0a7b6f9dae751ce6659 Author: Andrew Deason Date: Wed Dec 21 16:05:40 2011 -0500 afs: Cope with afs_GetValidDSlot errors Make callers of afs_GetValidDSlot deal with getting a NULL dcache, which can occur if an error is encountered. Some of these just panic at least for now, since a code path for recovery is complex, but this is at least better than dereferencing a NULL pointer. Change-Id: I4022a914bbaa0e1f3f4daadfdc32d165a6e2febd Reviewed-on: http://gerrit.openafs.org/6418 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1a672914ab050811c99b6307c657630ab9b5c8ee Author: Andrew Deason Date: Wed Dec 21 15:04:32 2011 -0500 afs: Do not always ignore errors in afs_GetDSlot Currently afs_UFSGetDSlot will silently swallow any error in reading the specified dslot from disk, and will return a "blank" dcache to the caller. However, many callers of afs_GetDSlot will be asking for a dcache that we know exists, and more importantly, we know is on the global hash table. If a disk error is encountered and we're given a "blank" dcache, we will erroneously believe the dcache entry is not on the hash table, causing corruption of the hash table later on. So instead, modify all callers of afs_GetDSlot to use either afs_GetValidDSlot or afs_GetNewDSlot. Calling afs_GetValidDSlot indicates that the given dentry index is known to be valid, and any error encountered while reading the entry from disk should result in an error (for disk I/O errors we have no control over, this results in a NULL dentry returned; for internal consistency errors we panic). Calling afs_GetNewDSlot indicates that the specified index may not exist or may not be valid, and so returning a "blank" dentry in that case is fine. For memcache, the situation is the same, except any time we go to "disk" it is an (internal) error, since there is no disk. Change-Id: I53ea6e99649e4d6d5cbde58929dfcee1d45a3e7b Reviewed-on: http://gerrit.openafs.org/6417 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 12177ba6fffaf8a693dd8c8e9445d5e7725ae743 Author: Andrew Deason Date: Wed Dec 21 17:25:29 2011 -0500 afs: Remove second argument to afs_GetDSlot All callers of afs_GetDSlot were passing NULL as the second argument to afs_GetDSlot. So, remove the argument, and behave as if tmpdc was NULL unconditionally. Change-Id: I138fe917d739c3020c35c20da48ffdf38f682fd6 Reviewed-on: http://gerrit.openafs.org/6416 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b5ca12ac4696c4049be14974f1e946bb55e1c440 Author: Andrew Deason Date: Thu Dec 22 15:01:52 2011 -0500 afs: Indicate error from afs_osi_Read/Write better Currently afs_osi_Read and afs_osi_Write just return -1 on any I/O error, even though they know the error code given from the OS VFS. Just return that code instead so the caller can see what the error was; but negate it, so it's clear that it is an error. Change-Id: I3d8350da18d075713356137a1cacf182a749fe3e Reviewed-on: http://gerrit.openafs.org/6412 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 456ee898ae77b201275363f4efc0098c28e195d5 Author: Andrew Deason Date: Thu Dec 22 14:50:09 2011 -0500 afs: afs_osi_Read/Write returns negative on error afs_osi_Read and afs_osi_Write need to return negative values on error. EIO is not negative; return -EIO so we don't accidentally return "success" if someone requested to read or write EIO bytes. Change-Id: Id0693776737fdf7086de16a935ad3942f5026e55 Reviewed-on: http://gerrit.openafs.org/6411 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 2d8fa26022e6a9aac1877d0b6b73a3b1922a2674 Author: Andrew Deason Date: Thu Dec 22 13:50:53 2011 -0500 klog.krb5: cast get_cred_keylen to unsigned get_cred_keylen can yield a type besides an unsigned int (such as a size_t on heimdal). But we are printing it with %u, which causes a warning, so cast it to an unsigned int. Change-Id: I7b89de5b0b163b9532ac347e9c56e865cb58f266 Reviewed-on: http://gerrit.openafs.org/6410 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 2e5545342b0c644546f8a370bdbf836a6da68b60 Author: Andrew Deason Date: Fri Dec 23 18:31:10 2011 -0500 fuse: Autodetect Solaris 11 FUSE FUSE exists in Solaris 11, but it does not come with a fuse.pc pkg-config configuration. Autodetect the presence of FUSE anyway. Change-Id: Ia052ba0a1bfe511dd051f3cfbee10395dc9d2c60 Reviewed-on: http://gerrit.openafs.org/6422 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 98a6db0b047efcfbeb0fb3c8b1e4e136b206f10d Author: Andrew Deason Date: Wed Dec 21 23:19:01 2011 -0500 afsd.fuse: Solaris 11 support The FUSE in Solaris 11 has a couple of quirks; work around them. Change-Id: I29b8a8858467d1c6ebacb4926a15165feae64f2c Reviewed-on: http://gerrit.openafs.org/6421 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit af218dee6c517f4636a18c681bff6f1212a7d9c0 Author: Andrew Deason Date: Wed Dec 21 22:00:12 2011 -0500 afsd: Parse cacheinfo during argument parsing Currently we parse cacheinfo in afsd_run, when the client is initialized and started. Parsing cacheinfo can change afsd_cacheMountDir, however, which may be of interest to afsd.o users; in particular, libuafs exposes this via uafs_MountDir(). This means that if a mount dir is not explicitly specified in the libcmd arguments to afsd, a libuafs-using program will see the mountpoint as the empty string if it is queried after afsd_parse but before afsd_run. For afsd.fuse, this causes the cryptic error message: fuse: bad mount point `': No such file or directory since the mountpoint is the empty string if it is not specified explicitly on the command line. To fix this, move cacheinfo parsing to effectively near the end of afsd_parse, so the mountpoint is calculated in afsd_parse(). Change-Id: I058f2c7c2f0cc21db21c4b1d38ff63b9e9ed1562 Reviewed-on: http://gerrit.openafs.org/6400 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 83d3084e95ac025660f0b8064f49400eb94bfb60 Author: Andrew Deason Date: Fri Dec 2 16:06:42 2011 -0600 fuse: Add -oallow_other by default where possible By default, fuse mountpoints are only accessible by the same uid as that which mounted the fuse filesystem. When we're running as root, specify -oallow_other so by default anyone can access the afs mountpoint. Change-Id: Idc732a22136fbe6bc585b76ac6291d8518f1f9de Reviewed-on: http://gerrit.openafs.org/6390 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3ca42749357edc97922918d04558deb268fe78f0 Author: Peter Scott Date: Fri Dec 23 17:00:57 2011 -0700 Windows: Avoid bottleneck on VolumeLock The VolumeLock resource was obtained during each AFSParseName() and held across a wide range of operations including volume info queries, renames, and extent requests. These operations can take a long time to complete and as long as the VolumeLock was held exclusively there could only be one operation in flight at a time on a given volume. This significantly reduced the parallelism of operations. The VolumeLock was not required in almost all cases. This patchset adjusts the use of the VolumeLock and avoids the bottleneck. Change-Id: I9d60fe41d157b9e315aeaa15feee8d1e0d4ded4c Reviewed-on: http://gerrit.openafs.org/6420 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit ff368a7ec70fca0673a21f6b283db13cabcc2286 Author: Jeffrey Altman Date: Sat Dec 24 03:15:53 2011 -0500 Windows: avoid race in cm_GetNewSCache The cm_scacheLock is dropped while walking the scache LRU queue. As a result it is possible for the cm_scache_t that is being considered for recycling to be accessed and moved to the head of the queue. Track the prev and next pointers so it is possible to detect if the cm_scache_t that is about to be recycled has been moved. If so, restart the search from the tail. Change-Id: I6c3b645b85aa60197b9b6d60cffdcb818eb6f4b2 Reviewed-on: http://gerrit.openafs.org/6424 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 17ce77f843e01ff96f66e05b4b932b0c6187493e Author: Jeffrey Altman Date: Sat Dec 24 03:11:04 2011 -0500 Windows: cm_BufWrite() must wait in cm_SyncOp() Now that it is permissible for more than one store data operation to construct BIOD lists in parallel, cm_BufWrite() must be willing to wait in cm_SyncOp(). Otherwise, the daemon threads will spin. Change-Id: I77ee2005025de9255b4c9cdb8bed8efc44b9518a Reviewed-on: http://gerrit.openafs.org/6423 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5f939c64e575dab937feda819937ce3087a2d2e8 Author: Simon Wilkinson Date: Sat Dec 24 17:23:48 2011 +0000 rx: Don't adjust non-existent events If we notice that time has gone backwards (that is, the current time is older than the time of the last event we fired), then we reschedule all pending events. On Windows, immediately after we have resumed from a suspend, this code path can be executed with an empty event tree, causing an exception: FAULTING_IP: afsrpc!adjustTimes+cf [c:\src\openafs\openafs.git\repo\src\rx\rx_event.c @ 213] 00000000`61041847 4c8b4030 mov r8,qword ptr [rax+30h] EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff) ExceptionAddress: 0000000061041847 (afsrpc!adjustTimes+0x00000000000000cf) ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 0000000000000000 Parameter[1]: 0000000000000030 Attempt to read from address 0000000000000030 Resolve this by checking for an empty tree before we attempt to adjust event times. If the tree is empty, we just zero the last event time (so we don't keep running the adjustTimes routine), and continue as normal. Change-Id: I42a42ff1bd53a9d5c4733efc7ac5f629426b3aa1 Reviewed-on: http://gerrit.openafs.org/6425 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e18c620aa0e49fde31beaa8327bf02eb87d89e3f Author: Jeffrey Altman Date: Wed Dec 21 21:47:56 2011 -0500 Windows: AFSCleanup extent processing 1. Perform a CcFlushCache() any time the file is cached and the Context Control Block indicates that the handle has FILE_WRITE_DATA permission. 2. Perform an AFSFlushExtents() whenever there are dirty extents and the handle has FILE_WRITE_DATA permission. No point flushing the extents if the AuthGroup does not have write permission. Another Ccb must exist that does have write permission. Change-Id: I3ece011b484c12e7dc936b81c272ba6a42f6c7d6 Reviewed-on: http://gerrit.openafs.org/6399 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 68b10efa7dbabbedbb95928dccac29ed8d4179c4 Author: Jeffrey Altman Date: Wed Dec 21 21:37:41 2011 -0500 Windows: AFSRetrieveValidAuthGroup FILE_READ_DATA Only an AuthGroup belonging to a Context Control Block that was granted the FILE_READ_DATA permission is capable of reading data from the file server. Change-Id: I93a7d8e65a6bc87b44399a30da5c0dd7d4e07685 Reviewed-on: http://gerrit.openafs.org/6398 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4fa01ad7fc5434ca5ca42f30407d47c736f8b000 Author: Jeffrey Altman Date: Wed Dec 21 21:34:14 2011 -0500 Windows: AFSRequestExtentsAsync retry with alt authgroup If AFSRequestExtentsAsync() fails to obtain requested extents due to STATUS_ACCESS_DENIED using the AuthGroup associated with the Context Control Block, try to find an alternate AuthGroup to use to perform the extent request. We have already told Windows what permissions the application has when the file was opened. Windows will perform its own validation checks prior to permitting the data to be accessed or altered. Change-Id: I430657e8c8e30c9f636a5ec81065af4122c926d7 Reviewed-on: http://gerrit.openafs.org/6397 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b9ca435dcb5433218ecbb37ab41b85dabe0a5912 Author: Jeffrey Altman Date: Wed Dec 21 21:17:33 2011 -0500 Windows: Use AuthGroups for extent request error reporting The afs redirector current tracks the most recent extent error in the File Control Block. Prior to this patchset the error was returned to the requesting thread when the process Id matched the most recent Process to issue a request. This approach resulted in a couple of problems. 1. There are multiple threads that can issue an extent request on the same file at the same time representing different processes. Resetting the process Id with each new request could clear the error prior to its receipt. 2. The failure may be due to inappropriate permissions. Permissions are not associated with proceses but with Authentication Groups. This patchset makes several changes: 1. It enables the afsd_service to track the active authgroup as part of the cm_user_t structure and associates that object with the BIOD object to ensure that the active authgroup can be reported to the afs redirector. 2. It modifies the AFSExtentFailureCB structure to include the AuthGroup GUID. 3. It tracks the AuthGroup GUID associated with the extent failure in the non-paged file control block. 4. It converts all tests on Process Id to use AuthGroup instead. 5. It alters the behavior of error delivery such that reported error is only cleared after it has been reported once to a thread using the matching AuthGroup. These changes make the situation better but not perfect as error states can still be lost. However, it avoids the case most often seen in production where two processes (a end user process and an anti-malware process) are fighting over a file and the anti-malware process has no permission to access the file under its own credentials. Change-Id: Ia5c3877b8d46de695c86884c4166dc812885a72c Reviewed-on: http://gerrit.openafs.org/6396 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7e26dfd6dc893d14717aad411460fc781acc4001 Author: Jeffrey Altman Date: Wed Dec 21 21:10:45 2011 -0500 Windows: Explicit permission check on extent release When a data extent is released by the afs redirector or the afsd_service performs an extent claw back during a cleanup operation, perform an explicit permission check before attempting to store dirty buffers to the file server. Instead of waiting for the file server to fail the request, fail it immediately. The permission check is performed using the currently active authentication group. Change-Id: I533f06ec10b8a6f4dbe5e18b1205b20881b5559a Reviewed-on: http://gerrit.openafs.org/6395 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6cd09ca2e699d2f9817b897e7165fac60560adcc Author: Jeffrey Altman Date: Wed Dec 21 21:08:59 2011 -0500 Windows: RDR_CleanupFileEntry restrict extent claw back Only demand that extents be returned by the afs redirector if this cleanup is the last open handle or the redirector has requested that the file be flushed to the file server. Change-Id: I03ddcd153d2ded5fc805148a192234742d20b29e Reviewed-on: http://gerrit.openafs.org/6394 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f6c85f40c06ddb2e527fcd9c39cba779bc82485b Author: Jeffrey Altman Date: Wed Dec 21 21:03:52 2011 -0500 Windows: remove unused AFSRequestExtents() Change-Id: I25251827ab2cfb68ba20cf97eaebb669e4f36a82 Reviewed-on: http://gerrit.openafs.org/6393 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7a1c8e57a08dcebce2f3b861a0d7bbabcc5272ba Author: Jeffrey Altman Date: Wed Dec 21 20:49:59 2011 -0500 Windows: Bad DV invalidate only when new DV not 0 If the current DV is BAD_VERSION and the new DV is 0, do not send an invalidation to the redirector. It only results in wasteful work. If the current DV is BAD_VERSION the object either: 1. was never previously known 2. was recently flushed 3. the cm_scache_t was recycled In all cases, the redirector does not have knowledge of the object since either it didn't exist or a previous invalidation was sent. Change-Id: I7e0cf41bae64660e4e1ec342bafcf3ef8a693d56 Reviewed-on: http://gerrit.openafs.org/6392 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f417dba69230c6b72882ca614a3a8c5691fe561c Author: Jeffrey Altman Date: Wed Dec 21 20:45:19 2011 -0500 Windows: Define times in terms of AFS_ONE_SECOND The afs redirector defines the macro AFS_ONE_SECOND to indicate the number of 100ns units necessary to indicate one second of time. Use that definition when defining other time values. Also define AFS_ONE_MILLISECOND and AFS_ONE_MICROSECOND. Change-Id: Ie2a173b4037af61e9a1c5aa06129520c36d714bb Reviewed-on: http://gerrit.openafs.org/6391 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 37f537a21db6d560dd16a53ff5e0d2f0456d4c48 Author: Andrew Deason Date: Mon Dec 19 17:11:31 2011 -0500 Include afsconfig.h before anything else afsconfig.h can define various preprocessor symbols that can affect how system headers behave. For example, the presence of the _POSIX_PTHREAD_SEMANTICS symbol changes the number of arguments to getpwnam_r on at least Solaris 8. So, we must include afsconfig.h before including anything else, to ensure consistency. Change-Id: I84bc73b3fada5dbc68cd355c24f2f746f2e982b3 Reviewed-on: http://gerrit.openafs.org/6387 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 7ad2965bad8e8b2f085d05be661086dc81da52d3 Author: Jeffrey Altman Date: Sun Dec 18 18:36:14 2011 -0500 Windows: avoid deadlock during SetRenameInformation The VolumeLock must be held before the Fcb->NPFcb->Resource. Obtain the VolumeLock in AFSSetFileInformation only in the rename case instead of obtaining the VolumeLockin AFSSetRenameInformation. Change-Id: I84f086e3a8f7d08630266c9e409e1e22c1f92742 Reviewed-on: http://gerrit.openafs.org/6377 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2d8f9141fa98df50ce682364ef5a7958ce422613 Author: Jeffrey Altman Date: Sun Dec 18 12:08:24 2011 -0500 Windows: terminate HOSTS/LMHOSTS with newline If the original file did not terminate with a newline, add one before appending the "AFS" entry. FIXES 130210 Change-Id: I35f96120904d09679d62ea4fb65f29648c4abfa5 Reviewed-on: http://gerrit.openafs.org/6375 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 92bfaae062c596d678220dcb93f9dc61304d3c5a Author: Peter Scott Date: Wed Dec 14 12:27:54 2011 -0700 Windows: Track AuthGroup in Context Control Block Tracking the AuthGroup in the File Control Block proved to be insufficient to ensure that dirty extents can be stored back to the file server when an anti-virus service opens a file in authgroup without 'write' permission immediate after the application performing a WriteFile() opens it. In this situation the Fcb ends up with the AuthGroup set to the anti-virus value and not the one that belongs to the writing application. Tracking the AuthGroup by Ccb provides the ability to select an AuthGroup from the list of open handles instead of tracking the most recent one. Change-Id: I851ea646feb531d7c765e1cf789a4ba541e4a150 Reviewed-on: http://gerrit.openafs.org/6333 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 714ae7f1840757e0575d25c910b0b9fa2499e354 Author: Jeffrey Altman Date: Sat Dec 17 12:14:28 2011 -0500 Windows: Tear down extents upon file deletion When processing AFS_INVALIDATE_REMOVED, tear down all extents since they are no longer necessary and return them to the service for recycling. Change-Id: Iec6c0d2c68db16dbf3bd04c51536e13d45f0c1b8 Reviewed-on: http://gerrit.openafs.org/6365 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c29dc399769c54bbab4af5bd4f828f0d49755860 Author: Jeffrey Altman Date: Sat Dec 17 12:13:17 2011 -0500 Windows: notify file size change if flushed When processing AFS_INVALIDATE_FLUSHED, notify any listeners that the file size has changed to force a complete refresh. Change-Id: Ie5f0076ea786357ae77ef6a76f162c776d555953 Reviewed-on: http://gerrit.openafs.org/6364 Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit 20d986fddf6b21abc58b2f3c24aac425cf5d2bf0 Author: Jeffrey Altman Date: Sat Dec 17 12:08:49 2011 -0500 Windows: forget data version only for flushing The AFS redirector was intentionally forgetting the data version number for AFS_INVALIDATE_DATA_VERSION events. The point of that event is to ensure that clean data be purged if the data version in fact changed. Checking the data version for change cannot be performed if the data version is reset to -1. Only when AFS_INVALIDATE_FLUSHED is processed should the data version be reset to ensure that all of the data is purged. Change-Id: I430afc4889c55c49ef24904a987b08042994cfea Reviewed-on: http://gerrit.openafs.org/6363 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ef31f0f6d1f23bcd882740db4d54a9ffea6e0a64 Author: Jeffrey Altman Date: Sat Dec 17 12:07:53 2011 -0500 Windows: fix indentation Change-Id: I187cfa466830a528d0ac2c77b0006e2b66b0a47c Reviewed-on: http://gerrit.openafs.org/6362 Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit 20c871cc67f332f77b1b766f15b2659c0fab8e40 Author: Jeffrey Altman Date: Sat Dec 17 11:57:15 2011 -0500 Windows: AFSSetRenameInfo log message Fix a typo in the log message and change its priority from error to verbose Change-Id: I807d7d6d9118b0fa6af3de638bb9fa2c0d90cbcb Reviewed-on: http://gerrit.openafs.org/6361 Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit d142082caed1eba870ffee017193883a0508306e Author: Jeffrey Altman Date: Fri Dec 16 17:24:36 2011 -0500 Windows: return error to system paging requests If an error has been set on a file, return that error to the System process for any outstanding extent requests. Change-Id: I8f7244f19cc0e3f96a1599ce011251ade0afe3f4 Reviewed-on: http://gerrit.openafs.org/6360 Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit 307856353c3f168105ce82f3f3fa8e4c5efb0b6c Author: Jeffrey Altman Date: Fri Dec 16 18:24:50 2011 -0500 Windows: log volume and authgroup for redir open If opening a volume root fails, log the authgroup and volume to make it easier to debug the error. Change-Id: I0c9ffc58ffaf7582a1b22043de2b5d096530de5b Reviewed-on: http://gerrit.openafs.org/6352 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit db9e5775dd26e6362820b7267f8d971f62dfe2ed Author: Jeffrey Altman Date: Fri Dec 16 00:12:39 2011 -0500 Windows: save fid/type for redirector invalidation Must save the fid/type fields of the cm_scache_t object before recycling in order to invalidate the contents in the redirector. Change-Id: I7914faaa80082033044980deb471eaffbddf3cfc Reviewed-on: http://gerrit.openafs.org/6359 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0b2639ff4fd732dfac2c1dc058d6c517cc966737 Author: Jeffrey Altman Date: Fri Dec 16 17:22:49 2011 -0500 Windows: move to head of queue no-op if not in queue If the buffer is not in the queue, do nothing. Change-Id: Icdb95775bcc6d010ca1926ce4384d9edcd8f1cd3 Reviewed-on: http://gerrit.openafs.org/6351 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b63ff1319e0ebecdfbdef7365d49d02543bccce8 Author: Jeffrey Altman Date: Fri Dec 16 16:15:56 2011 -0500 Windows: Properly convert FID structures Use the FID conversion function in RDR_SetFileStatus(). The FID structures are not the same in afsd_service and the afsredirlib.sys driver. Change-Id: I6360f39c8b90c46d468a06c08f0911f55f9142fb Reviewed-on: http://gerrit.openafs.org/6350 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit b3e6db22a1755b7633b522dfe5cbb61949e06466 Author: Jeffrey Altman Date: Fri Dec 16 11:43:32 2011 -0500 Windows: propagate directory enumeration failures If a directory is enumerated with an AuthGroup that has no permissions, do not treat the enumeration as successful. Change-Id: I6a543a1b19b9d2e68ee2c99f67398ed94ad52896 Reviewed-on: http://gerrit.openafs.org/6344 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f73685c233974403fe63795303cd1659c5bcb2af Author: Peter Scott Date: Thu Dec 15 17:52:54 2011 -0700 Windows Problem with cross-directory rename Not correctly handling cross-directory rename processing Change-Id: I36e30a68d7755241c727868074e344beb9580c2d Reviewed-on: http://gerrit.openafs.org/6343 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2d472f94ab1017724e56bcdd29b9ef451a13f182 Author: Jeffrey Altman Date: Wed Dec 14 12:58:36 2011 -0500 Windows: Update Adv Firewall Rules Do not specify the Service Name property. According to feedback on openafs-info the Service Name blocks the rule from working properly. If the rule already exists, attempt to remove the Service Name filter and update NAT Edge Traversal and Permitted interface rules. Change-Id: I1ab1a0c57f9271b68f91b08e530483a1fa40a165 Reviewed-on: http://gerrit.openafs.org/6332 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 37a0c3d00a6e2d072faf7c2958ef0c7224add161 Author: Jeffrey Altman Date: Thu Dec 15 03:28:34 2011 -0500 vol: fix a08c3207255756c825ab69a19e04f79dd879c646 Patchset a08c3207255756c825ab69a19e04f79dd879c646 broke the suse and windows builds by relying on C99 language syntax. Fix it. Change-Id: I8220e0504048d2caff00deb08e3bf53599e596b7 Reviewed-on: http://gerrit.openafs.org/6337 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f469be407789e696c0b9e9a431b4879798a00e2a Author: Andrew Deason Date: Wed Dec 14 14:42:08 2011 -0600 afs: Clear VHardMount on ResetVolumeInfo afs_Analyze sets VHardMount on a volume struct when a hard-mount scenario is encountered, and clears it after sleeping. However, if the volume struct has VRecheck set, or if it's not in memory, afs_Analyze cannot retrieve the volume struct in order to clear VHardMount again. For the VRecheck case, this can results in VHardMount never getting cleared, and so hard-mount messages for the volume seem to disappear. So, clear VHardMount when we set VRecheck so this does not occur. For the case where the volume struct is not in memory, this is not a problem, since when we allocate a volume struct again, the VHardMount state will not be retained. Change-Id: I607741241e330391b8c857b2a72f0e0cfc0b91cc Reviewed-on: http://gerrit.openafs.org/6335 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit da3f8d86dd216a90bc400367b7b95e9a427f99e8 Author: Andrew Deason Date: Wed Dec 14 14:16:16 2011 -0600 viced: Yell when we GetSomeSpace_r A GetSomeSpace_r call indicates we don't have enough callbacks configured. For many people, this can happen without the administrator realizing anything is wrong, since we never give any indication that something is amiss, unless the administrator checks the xstat statistics. Since this can indicate a serious performance problem, yell in the log when this happens. Only do it once, so we don't spam the log. Change-Id: I5c881a3c127c20b4f086d59bf3768864307efe92 Reviewed-on: http://gerrit.openafs.org/6334 Reviewed-by: Michael Meffie Tested-by: BuildBot Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit b8e7d61965564557160dcc69301e35ab62ea0510 Author: Jeffrey Altman Date: Thu Dec 15 07:00:28 2011 -0800 Revert "Windows: cs_CZ localization" This reverts commit 642153cae6700e855a8abcc20be207612e1e6b3c cs_CZ localization cannot be committed to the repository until: 1. Resource DLLs for all components are built in the tree. 2. All built components have been successfully tested so that OpenAFS is not shipping code that caused executable components to crash in the cs_CZ locale. Change-Id: Id287d150a4c63afdc3f4105d26c9faf211da5395 Reviewed-on: http://gerrit.openafs.org/6339 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 170ce3db8a32c2b5df68ada3e84ecdaa98785e71 Author: Michael Meffie Date: Thu Sep 29 14:44:11 2011 -0400 bozo: retry start after error stops After a bnode is stopped because of two many consecutive exits delay for some time and attempt to start the bnode again. Countine to retry on each error stop, doubling the delay for each retry attempt until a maxium number of attempts. Change-Id: Ib6a4935d09c70c69de87f65717562bd3dcde761b Reviewed-on: http://gerrit.openafs.org/5534 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit db472e730e3989dac1d49b54d7371b54b24cd63c Author: Michael Meffie Date: Fri Sep 30 12:22:27 2011 -0400 bozo: preserve all options over restart On unix, save all the bosserver command-line options and reuse them on bosserver restarts. On Windows, the SCM integrator saves the argument list, just use them. Change-Id: Ib54d1b0c9430946cce666d09f5ed923016d5ac8b Reviewed-on: http://gerrit.openafs.org/5532 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 112b9b35fc701ca26ba7f99c31a73a7a1eecbdc0 Author: Andrew Deason Date: Thu Feb 3 16:11:38 2011 -0600 volser: Do not reset copyDate in ReClone When we ReClone in the volserver, do not reset the clone's copyDate to the current time. If we retain the copyDate between ReClone operations, then we can know when the clone was first created (and thus makes local RO clones more consistent with remote RO sites). Change-Id: Ic76862c1a03ee3cafaf199f414fabc90e3b058d2 Reviewed-on: http://gerrit.openafs.org/3892 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit ba24ef73934c2a84dc505cdffad5e41e904aec4b Author: Garrett Wollman Date: Fri Jul 29 21:33:10 2011 -0400 util: simplify thread-name interface It appears that we don't actually need an interface to set the name of an arbitrary thread (which Mac OS can't do), so remove the afs_pthread_setname() interface and promote afs_pthread_setname_self() to the status of primary. Change-Id: I2d915d8165dac9ccfe0cb99630db657cb1473389 Reviewed-on: http://gerrit.openafs.org/5121 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit da89855b492d8d06128ed62b219dc968f5b38a9d Author: Jeffrey Altman Date: Tue Dec 13 23:28:15 2011 -0500 Windows: AFSRDFSProvider stack overrun StringCchXXX functions take the number of characters not the number of bytes. Use StringCbXXXX functions whenever the buffer size is being specified. Check return codes from StringXXXXXX functions and return errors instead of blindly continuing with a truncated string. Allocate a larger buffer for substitution strings since they need to handle the device path plus the target path. FIXES 130392 Change-Id: I62ca980d145d6fef8cf771c26cd634ce1dd55b91 Reviewed-on: http://gerrit.openafs.org/6248 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 44045af35a6ae44880655115685e0755d6a0c828 Author: Derrick Brashear Date: Tue Dec 13 12:19:48 2011 -0500 vos: fix code to not triple-negate !!! is !. just write it that way. Change-Id: I8e788177280c4a1d78cedaffd144a5c4ecba28f2 Reviewed-on: http://gerrit.openafs.org/6252 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1ca207f18491147bb7f7de3e588fb1979ac3d0c5 Author: Jonathan A. Kollasch Date: Tue Oct 11 12:33:19 2011 -0500 build tsalvaged, tvolser, and dvolser targets on *nbsd* Change-Id: Idb744f57ab92ba2d9af4d7d9ca7c800b3ee880d2 Reviewed-on: http://gerrit.openafs.org/5595 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit a08c3207255756c825ab69a19e04f79dd879c646 Author: Michael Meffie Date: Tue Jul 26 09:18:44 2011 -0400 volscan: print vnode metadata information volscan program to print vnode meta-data in a grep/awk/perl friendly format. Optionally, find the paths of each vnode relative to the volume root. Access control list data can be reported, and are listed as one access entry per line. Mount point information can be shown to which volumes are mounted from given volumes. The path lookup code originally written by Tom Keiser. Change-Id: I743e1a33d9e6076e4f1b1b2cc462960a94e3763b Reviewed-on: http://gerrit.openafs.org/5102 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 33526acb56c1794838c6a8c02e9b8f5022a04ac1 Author: Simon Wilkinson Date: Thu Nov 24 17:43:45 2011 +0000 Unix CM: Log reason for marking server up or down When we mark a server up or down also log the error code that says why we did so, for help in debugging connection issues. Change-Id: I1a14434607499c9932e23724b8e403442dc400c7 Reviewed-on: http://gerrit.openafs.org/6116 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 752daf71cd75aa707fabb1b4598dd8ef1f51f973 Author: Michael Meffie Date: Mon Jul 25 22:02:04 2011 -0400 volinfo: implement -checkout option Implement the -checkout option using the FSSYNC communication channel with the fileserver. Change-Id: I119fab0c238fd37eb85c9810626ee91210b2efb6 Reviewed-on: http://gerrit.openafs.org/5101 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0d0a8288c1cdd05bbf5717ac45638cf6760ee7a8 Author: Michael Meffie Date: Mon Nov 21 19:12:56 2011 -0500 vol: log error reason on header read failure Log the error reason instead of just VSALVAGE when ReadHeader() fails. Change-Id: I24d5ca175310345ee4ce095229b08d9e7c75f700 Reviewed-on: http://gerrit.openafs.org/6108 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit 2df43a5cb6add00eed05d70537b3172452f4674c Author: Lukas Volf Date: Sun Dec 4 18:52:49 2011 -0500 Windows: cs_CZ localization Resource conversion for the cs_CZ locale. Does not include installer updates. Change-Id: Ifac0d7d9818dc662e584bc74701133cada9fbf33 Reviewed-on: http://gerrit.openafs.org/6227 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4d76b19b600aad461ee1231eeadb9b7a27b7f117 Author: Derrick Brashear Date: Tue Dec 13 23:49:38 2011 -0500 libafs: disable mtu discovery we need to rework this to use lack of soft acks instead of this method, which is too fragile Change-Id: Iedcd1e57e2c6a6c15ce3c040a9a9e6ae7d78bb36 Reviewed-on: http://gerrit.openafs.org/6256 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 78885611ac8aa6602a4a1f42379c9d78ef226100 Author: Derrick Brashear Date: Tue Dec 13 23:20:01 2011 -0500 libafs: only do pings for default conn with root uid instead of doing it for potentially every unauth user, just do it for root. Change-Id: I39ef22578eb07c339b096b25753a1775c9917e0b Reviewed-on: http://gerrit.openafs.org/6255 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit f30d70ba5575753302be0a2b08c27a639898d4aa Author: Jeffrey Altman Date: Sat Dec 10 13:28:17 2011 -0500 Windows: memory leak when setting tokens via smb The SID string of the RPC used to set the token sessionKey was being leaked. Be sure to free it when it is no longer required. Change-Id: I28261643680d608d5c8805e095650a751193ab6d Reviewed-on: http://gerrit.openafs.org/6244 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 41d145b303d61aa6f8f336e4d66748dea860d08f Author: Jeffrey Altman Date: Fri Dec 9 18:40:42 2011 -0500 Windows: Suspend/Resume for afsd_service The power mgmt events are received in the service. The service can block all requests from the redirector from being processed until it knows that it is safe to process them. The service will receive a SERVICE_CONTROL_APMSUSPEND just before the system goes to sleep. The service has two seconds to respond and it uses that time to attempt to send RXAFS_GiveUpAllCallBacks to all file servers as an rx_multi with no wait. It also marks all servers down and updates the callback expirations to be just after the servers were marked down so that they will be forced to be refreshed when the server is marked up. Upon resume the service receives two events. First, SERVICE_CONTROL_APMRESUMEAUTOMATIC which is used to perform an SMB lan adapter change detection and perform a probe of all down servers. The second, SERVICE_CONTROL_APMRESUMESUSPEND is used to resume SMB listeners, perform a 2nd lan adapter change check (just in case), check the status of all down servers in additional networks have come up, and finally resume processing of redirector requests. With these changes no special logic in the redirector is required. Change-Id: I5405ecab754dca04f34afb024c4dacc3fe089088 Reviewed-on: http://gerrit.openafs.org/6243 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6d6d52e18f3bd537331de6021a0fcc2e96fc48db Author: Karl Ramm Date: Sun Dec 4 13:56:29 2011 -0500 Print "waiting for job termination" at most once. This message is useless, annoying, and is the UI equivalent of littering... but it does explain why your backup command is just sitting there. Change-Id: Ied49d0bf9f81b0e10804133c6f05814321d80438 Reviewed-on: http://gerrit.openafs.org/6223 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit f238d4854d1f32836228f2d191c8a9d265d4b181 Author: Jeffrey Altman Date: Thu Dec 8 10:00:57 2011 -0500 Windows: increase timeout for extent request retries The AFS Redirector requests file data extents from the afsd_service.exe. If it does not receive the requested extent within 10 seconds it issues another request for that extent. Extent processing in the afsd_service is handled by background daemons that process tasks serially from a work queue. When the load on the system is large enough that satisfying the work queue takes longer than 10 seconds, the redirector would retry the request. This would increase the length of the work queue and increase lock contention. Increasing the timeout period for extent retries to two minutes significantly reduces the number of retry attempts while maintaining protection against a lost extent request. Two minutes is selected because that is the rx hard dead call timeout. Change-Id: I8169fbdc2d3456f151359ffe9eaa8eeccb2ceaf1 Reviewed-on: http://gerrit.openafs.org/6237 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f2c0c51f781495be0d28a75e5d7a786bbe9dddda Author: Peter Scott Date: Wed Dec 7 20:29:00 2011 -0500 Windows: include owner/group in Security DACL Include the World (Everyone) SID as the owner and group for all files in AFS. FIXES 130343 Change-Id: I01d697d7a6dea8e0bea67b81c14597c197b4241d Reviewed-on: http://gerrit.openafs.org/6236 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7a93c827f353e2ad695d8019ab789b02a3596f2e Author: Jeffrey Altman Date: Sun Dec 4 23:15:13 2011 -0500 afs: prevent nat pings on destroyed connections If the connection is no longer in use, reset the nat keep alive timer to 0 seconds. Change-Id: I72b69979fb8b15ab5afaa654b317edc254253b4b Reviewed-on: http://gerrit.openafs.org/6230 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 942dae0dd02f2e222ace5d003b1c55397a4018ff Author: Jeffrey Altman Date: Sun Dec 4 13:42:08 2011 -0500 Windows: Release Notes Updates Updates for 1.7.3. Grammar improvements. Reformatting. Change-Id: Iff829f343e0140943495a19406746b30a70ed235 Reviewed-on: http://gerrit.openafs.org/6222 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 57316878e03691f7e320013b21f0c7640877e11e Author: Simon Wilkinson Date: Sun Nov 20 18:11:53 2011 -0500 rx: Make CALL_RELE and CALL_HOLD lock refcnt mutex The reference count mutex must always be held when calling CALL_RELE or CALL_HOLD. Instead of requiring that the caller obtain, and release the mutex, do so within the HOLD and RELE macros, greatly simplifying calling code. Provide CALL_RELE_R and CALL_HOLD_R as versions of these macros which can be used by callers who already hold the reference count mutex for other purposes. Change-Id: Ie3e9df8b9d2a79476f1707bd65e588f43271c636 Reviewed-on: http://gerrit.openafs.org/6219 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1ef8dc3dfbddcbe5610c276afc627c9fcfe30a65 Author: Ben Kaduk Date: Sat Dec 3 14:37:09 2011 -0500 FBSD: switch afsi_SetServerIPRank implementation Upstream has removed the ia_net{,mask} elements from struct in_ifaddr, so we can no longer use them directly. Switch to passing an rx_ifaddr_t (i.e. struct ifaddr*) in instead, as that uses a slightly different codepath which still works for our purposes. We compile the kernel module with -Werror, so storing a pointer (memcpy return value) in an int is forbidden, hence the conditional declaration of 't'. Change-Id: Ifefef88a353f4bd50a714ad88afa3a6f012fa3a1 Reviewed-on: http://gerrit.openafs.org/6203 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit aefb10920740e537aa26d841d16302e6ce8e3d76 Author: Simon Wilkinson Date: Sun Nov 20 18:07:41 2011 -0500 rx: Helper function for decrementing conn refcnt The code to lock the reference count mutex, reduce the connection reference count, then unlock the mutex, is duplicated many times throughout rx.c. Replace all of these multiple copies with a single inline function. Change-Id: I7adb460019d7434b32a16250cc026be667e7c55d Reviewed-on: http://gerrit.openafs.org/6218 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 64b00c3a1a87739621f58c777fc3cc54fb15a0af Author: Simon Wilkinson Date: Sun Nov 20 16:31:28 2011 +0000 rx: Hide the rx_packet.h Hide the rx_packet.h, and hence the rx_packet structure from application view. rx_packet.h is currently still installed, and is included directly by RX security classes, to reduce the per-packet overhead there. Change-Id: I269ccf4405a8f83cab4b0392b830bc1f36471c29 Reviewed-on: http://gerrit.openafs.org/6182 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a57f6434e81539d3f261f0dd57327ae4dcd98caa Author: Jeffrey Altman Date: Sat Dec 3 21:20:05 2011 -0500 Windows: define MIN and MAX MIN and MAX are used throughout the tree. Windows does not define them. A future patchset should convert the openafs src tree to use min and max. Change-Id: Ibe7bba6a49e3c85f94cd1e1c45e904764bf06e02 Reviewed-on: http://gerrit.openafs.org/6209 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d3eaa39da3693bba708fa2fa951568009e929550 Author: Simon Wilkinson Date: Sun Nov 20 14:58:28 2011 +0000 rx: Make the rx_call structure private Hide the rx_call structure for public view. Provide accessors for those elements which are currently accessed by applications. Note that this change as it currently stands removes the visibility of the last sent time, and sequence number information, from the VolMonitor function. Change-Id: Ib25ab5635126f893ae43acb684d92a78278d6ca6 Reviewed-on: http://gerrit.openafs.org/6181 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit aa76c8f670012d4591489db374bad48118defa36 Author: Simon Wilkinson Date: Tue Nov 15 10:40:44 2011 +0000 rx: Make struct rx_connection private Move the rx_connection structure into a private header file, so that it is only visible from within the rx module. This allows us to use types within the structure that are not visible to everywhere that includes rx.h, as well as being a step towards a more stable ABI for RX. Add accessor functions for all of the connection members which are currently used by external callers, and modify those accessors which were implemented as macros to also be functions. Change all external access to the connection structures to use these new functions. Change-Id: Ife67e63f37cb04273fbfc9079db3907bde78ab98 Reviewed-on: http://gerrit.openafs.org/6180 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 01f55bbf14210ef3e4f4c0246409af370de3a383 Author: Jeffrey Altman Date: Sat Dec 3 17:49:47 2011 -0500 Windows: apply Nat Pings only to cm_rootUser connections Use CM_UCELLFLAG_ROOTUSER flag to identify the cm_rootUser connections and only apply Nat pings to those connections instead of examining the security state of the connection. Change-Id: I978501972509d1e58b08b630e1ff046b404e59d8 Reviewed-on: http://gerrit.openafs.org/6208 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2495d02951fa1a9f6f48cc2a5bc7750f310dae75 Author: Jeffrey Altman Date: Sat Dec 3 17:46:41 2011 -0500 Windows: track cm_rootUser connections Add CM_UCELLFLAG_ROOTUSER flag to cm_ucell_t for the purpose of tracking which connections belong to the cm_rootUser. Change-Id: Icd809631637d4fc6c2bb1bd93e7cab74f2fb5c2b Reviewed-on: http://gerrit.openafs.org/6207 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f37df60763a306fb70f791f7dcba9cec2ec27c7e Author: Jeffrey Altman Date: Sat Dec 3 15:45:53 2011 -0500 rx: rx_conn/rx_peer refCount signed Can't trace reference count underflows with rxi_LowConnRefCount and rxi_LowPeerRefCount if they cannot become negative. Change-Id: I429da00a8e711c2e562378ec5d6601093293a55b Reviewed-on: http://gerrit.openafs.org/6205 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5c6640bf0b2b365d4871051db7a1be6075d44666 Author: Simon Wilkinson Date: Sat Dec 3 21:10:43 2011 +0000 rx: Some kernels have no reschedule function If RXK_TIMEDSLEEP_ENV isn't set, then Unix kernel cache managers call rxevent_Init without a reschedule function. Check for this so we don't end up calling a NULL function in these situations. Change-Id: I5e89f5247aeffc4c27d3f81c0ccabe4979232846 Reviewed-on: http://gerrit.openafs.org/6206 Reviewed-by: Benjamin Kaduk Tested-by: Benjamin Kaduk Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 0fb7d852845effce50d896416cf8b4ba3c19d6e1 Author: Jeffrey Altman Date: Fri Dec 2 23:38:01 2011 -0500 Windows: npdll connected query returns no usage In response to a NPEnumResources CONNECTED scope query, the usage field is always set to zero. If the CONNECTABLE flag is set, mpr.dll will filter the entry out of the result list. Change-Id: If939f9f168fe2e02a1a8287c661ec2e1cda5eb8f Reviewed-on: http://gerrit.openafs.org/6195 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b34a2df4c706838e680bdcd15528862c49b5ba6c Author: Simon Wilkinson Date: Sat Dec 3 11:20:57 2011 +0000 Windows: Use roken's min and max roken provides min() and max() macros. Use these, rather than our own MIN() and MAX() Change-Id: I82456c061cb274490e2ef2966a7075c2bde1f016 Reviewed-on: http://gerrit.openafs.org/6196 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3328770612b7205abb92df5b5f4737eb3349c910 Author: Edward Z. Yang Date: Sun Nov 20 15:48:33 2011 -0500 Add OpenAFS to the dependencies of remote-fs. Signed-off-by: Edward Z. Yang Change-Id: Icd1fd34dc3a5c849a2b698c1da08eb4003e6efa1 Reviewed-on: http://gerrit.openafs.org/6093 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c22aa6c121bfbc71d5d6d4b628ee4585f4e134cf Author: Ben Kaduk Date: Fri Dec 2 20:24:04 2011 -0500 Remove dead code from rxi_FindIfnet() There is a separate implementation for DARWIN and XBSD above, so having a check for DARWIN here is pointless. Change-Id: I66741dd1d8dbddc19809fd6e6fcd0897f047f222 Reviewed-on: http://gerrit.openafs.org/6193 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1c4cd446605706e55e415cec15841acf8b1572e1 Author: Simon Wilkinson Date: Sun Nov 20 16:29:55 2011 +0000 rx: Refactor MaxMTU error checking The error checking on the rxMaxMTU parameter was done individually by every server that sets it, using "internal" RX #defines to do so. Instead, do the error checking within the function that actually sets the MTU, reducing both the amount of code duplication, and the amount of RX knowledge held within the servers. Change-Id: Ic2cdd9425d5344a5137f76f66f711f4dee91a7b6 Reviewed-on: http://gerrit.openafs.org/6091 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit ae227049fca2519e1f5ae1e8b68efbff10ebb665 Author: Andrew Deason Date: Fri Dec 2 14:36:59 2011 -0600 salvager: Create link table with volume group id The link table needs to be created with the VG id or RW vol id, not the non-RW vol id. Unlike other special inodes, this goes for both the 'parent' and 'volume' volume ids, not just the 'parent' id, since there is only one link table per VG. Without this, the salvager can generate invalid linktable special inodes if it encounters a VG with no inodes for the RW vol. Change-Id: I10725c514ef1b8a5b09a506e42596b51b74af5a2 Reviewed-on: http://gerrit.openafs.org/6179 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 53230846a202a50f6c3a61b38d62ccba8876f89d Author: Andrew Deason Date: Wed Nov 30 17:41:53 2011 -0600 DAFS: Ensure logging on attach2 errors The attach2 error path transitions a volume to VOL_STATE_ERROR, in case whatever got us to that error path did not already put the volume in an appropriate state. Log when we do this, to make sure we do not end up with a volume in VOL_STATE_ERROR state silently. Change-Id: I02c842b64882d96e707e867ee0f7730a2bebd405 Reviewed-on: http://gerrit.openafs.org/6168 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d5d2d00a47cf53054bd18d7404be26bea34cba6f Author: Andrew Deason Date: Wed Nov 30 17:35:56 2011 -0600 DAFS: Avoid unnecessary preattach on FSYNC_VOL_ON FSYNC_VOL_ON/FSYNC_VOL_ATTACH can be called to "online" a volume that was actually kept online for the duration of the volume operation. Avoid calling VPreAttachVolumeByVp_r for such a volume if it's already attached, in order to avoid an unnecessary log message and to save a tiny bit of processing. Change-Id: I7776b933599ec0488941ccbd9a8e1279f5a552f4 Reviewed-on: http://gerrit.openafs.org/6167 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4fd8347e842af61681c1718e456500b92c5b6ea9 Author: Andrew Deason Date: Wed Nov 30 17:21:32 2011 -0600 DAFS: Log more for VPreAttachVolumeByVp odd states When we encounter "odd" states in VPreAttachVolumeByVp_r, say what the actual state we encountered was, along with the attach flags, so we have a better idea of what's going on. Change-Id: Ic5d07d249db7b51301b3ac903ba987cfa21922ee Reviewed-on: http://gerrit.openafs.org/6166 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f59312c0aee1a5376b29262efc6e6ea71264305a Author: Andrew Deason Date: Wed Nov 30 17:08:57 2011 -0600 DAFS: Ensure GetVolume errors on ERROR volumes In GetVolume, after we call VAttachVolumeByVp_r, there is no explicit check to see if vp is in VOL_STATE_ERROR state. Make sure we don't try to use such a volume, or blindly transition the volume away from that state. Change-Id: Ib2c975ac215eeff28b4ff5f5bb0a387298d7aab9 Reviewed-on: http://gerrit.openafs.org/6165 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5fc2365f5dff7f193781093ecb886b4c7391d5a3 Author: Andrew Deason Date: Wed Nov 30 14:36:06 2011 -0600 DAFS: Do not transition to ERROR on trivial errors attach2 can result in many different errors; some indicate that the volume is in an inconsistent state, but many others just indicate that the volume cannot be attached for benign reasons (such as VNOVOL if the volume doesn't exist, or VOFFLINE if the volume is being used by a volume utility). Currently, for DAFS, attach2 transitions the relevant volume to the VOL_STATE_ERROR state for almost all errors encountered, even the benign ones. Instead, skip the error state transition for error handling paths that do not reflect a "broken" volume. Change-Id: I07754f715920c4ee30fb156fb2412d1e1a7e2597 Reviewed-on: http://gerrit.openafs.org/6164 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9de84a1e67cb3570dedef4ac4552901210b19e5f Author: Jeffrey Altman Date: Fri Dec 2 18:49:23 2011 -0500 Windows: GetInfoTip really set return to NULL When we are not returning an info-tip string from the shell extension the string output parameter must be set to NULL. Change-Id: I63cd9bbe078edd01e62d4b0c810a513dfbf205ae Reviewed-on: http://gerrit.openafs.org/6183 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3fce5b3541d118bc452fe236e557acde57587462 Author: Jeffrey Altman Date: Fri Dec 2 13:41:38 2011 -0500 Windows: memset in RDR_RequestFileExtentsAsync The logic in RDR_RequestFileExtentsAsync() made it possible for memset() to be called multiple times on a buffer that is already known to be up to date. Restructure the code to make things faster. Change-Id: Iea09b01f126a6d8915e6bf3dd3978ad4b482eb03 Reviewed-on: http://gerrit.openafs.org/6178 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a60594ef54c1458f6778d0b16d870803e1594d41 Author: Jeffrey Altman Date: Fri Dec 2 13:36:01 2011 -0500 Windows: cm_MergeStatus redirector invalidation The redirector maintains its own cached status information which must be updated when a DV change occurs that is not the result of a redirector initiated data change. If the current old DV is BAD, send a DV change notification. If the DV has changed and request was not initiated by the redirector, send a DV change notification. If the request was initiated by the redirector, send a notification for store and directory operations that result in a DV change greater than the number of active RPCs or any other operation that results in an unexpected DV change such as FetchStatus. Change-Id: I6dd4c9d450901e4b5d4c8d67841e3b833cebbe1f Reviewed-on: http://gerrit.openafs.org/6177 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2a2ae16511bae032025ffcfbbe4e78b2de1f8eff Author: Jeffrey Altman Date: Fri Dec 2 13:31:15 2011 -0500 Windows: cm_MergeStatus use new DV to purge buffers When deciding whether or not to purge buffers on a DV change it is the new DV that matters not the old DV. If the new DV is 0, there should be no purging because there are no buffers to purge. Change-Id: Ie505348dbbf8173e477645e5022410ddd3028240 Reviewed-on: http://gerrit.openafs.org/6176 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6ee14eef3679fbcdecfe6b1d7879309c9360bb61 Author: Jeffrey Altman Date: Fri Dec 2 13:21:24 2011 -0500 Windows: use interlocked increment on cm_buf_t refcnt For consistency use interlocked increment when setting the cm_buf_t refCnt to 1 even though it is protected by a lock. Change-Id: I91fbb1469715ee6b7d6f94f416c59ebcd1645336 Reviewed-on: http://gerrit.openafs.org/6175 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 500ffccfd66123c74a0d32c04801e5906f58e58a Author: Jeffrey Altman Date: Fri Dec 2 11:21:46 2011 -0500 Windows: buf_GetNewLocked should use cleaned cm_buf buf_GetNewLocked() searches the free buffer list for a buffer that has a 0 refcnt, is not in the chunk that is being populated, is not actively having I/O performed on it and is not dirty. If it comes across a dirty buffer, it calls buf_Clean() with the assumption that buf_CleanAsync() (as it was previously called) was in fact asynchronous and would return immediately. Instead buf_Clean() is synchronous and when it completes the buffer will in most cases be clean. buf_GetNewLocked() should use the newly cleaned buffer if it is still available and not continue the search from the next entry in the free buffer list. Change-Id: Iae629df57b9d27a813f7f4c6740be23bd33fe039 Reviewed-on: http://gerrit.openafs.org/6174 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7dccf17840a53e96b21f8c092910f3e4d7628b71 Author: Jeffrey Altman Date: Fri Dec 2 11:19:13 2011 -0500 Windows: fix buf_Recycle() comment buf_Recycle() does not return with a reference count to the cm_buf_t object held. Correct the comment. Change-Id: Ic6acde3178afe59181436d9c10d4ddfb05340372 Reviewed-on: http://gerrit.openafs.org/6173 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c712403f192bd9932f3ec1dce5fb23461d3d0349 Author: Jeffrey Altman Date: Fri Dec 2 11:14:11 2011 -0500 Windows: buf_CleanAsync is not async; rename it buf_CleanAsync() calls cm_BufWrite() which stores the dirty buffers synchronously. There is nothing asynchronous about buf_CleanAsync() so rename it to buf_Clean() and buf_CleanAsyncLocked() to buf_CleanLocked(). Update the comments to remove the references to the asynchronous processing which doesn't exist. That is not to say that the call to buf_Clean() in buf_GetNewLocked() should not be asynchronous; it should. There is no such functionality at the moment. One approach would be to modify buf_IncrSyncer to trigger on an event set by buf_GetNewLocked() instead of the call to buf_Clean(). Another approach would be registering a background store event. In any case, that is for another patchset. Change-Id: I4c6d08d2a81b36f3cc43ada96acfa0ff9db23845 Reviewed-on: http://gerrit.openafs.org/6172 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b26161284fef682e570377e70c7ebe5b6e8902fb Author: Jeffrey Altman Date: Fri Dec 2 11:11:59 2011 -0500 Windows: convert buf_IncrSyncer to pthreads buf_IncrSyncer() calls rx therefore it should be a pthread thread so as not to count against the 63 native thread count limit. Change-Id: If00eeb7d26bfbf7d0f35addb05290f3704d11a89 Reviewed-on: http://gerrit.openafs.org/6171 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2aeb041bb0f5de94d553bc3fb6b2d39c82750952 Author: Jeffrey Altman Date: Wed Nov 30 23:29:56 2011 -0500 Windows: invalidate rdr for CM_SCACHE_VERSION_BAD If the cm_scache_t.dataVersion is set to CM_SCACHE_VERSION_BAD, invalidate the redirector notion of status so that we do not leak info to users that do not have permission. If the dataVersion is CM_SCACHE_VERSION_BAD and is updated with real status info, invalidate the redirector so it attempts to read the directory contents. Change-Id: Iaa15b37f7f1863169ffe93ae9bc3d24086a3b734 Reviewed-on: http://gerrit.openafs.org/6159 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 79833cbc64c8ccd051060782a381af1ad0cc8d50 Author: Jeffrey Altman Date: Wed Nov 30 23:28:46 2011 -0500 Windows: do not set CM_SCACHEFLAG_EACCES twice correct a merge error. Change-Id: Iaf57703403a5c7555da730be0907bd31c9dfb34f Reviewed-on: http://gerrit.openafs.org/6158 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0ee7fcc0a49494ad66778012b7808f80ee3af8d3 Author: Andrew Deason Date: Thu Dec 1 11:20:41 2011 -0600 SOLARIS: Define BSD_COMP for non-UKERNEL on 5.11 We were defining BSD_COMP twice for UKERNEL. Move one of the #define's up to the !UKERNEL section. Change-Id: I91b90d666ab83a2037549c3f66ea038234a42e11 Reviewed-on: http://gerrit.openafs.org/6162 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit a9007cf81cb8cb390cbd2e5a93e47b1d231819e8 Author: Derrick Brashear Date: Thu Dec 1 12:34:38 2011 -0500 afsd.fuse: link libopr needed for rbtrees. linktest does so; we also need to Change-Id: Ic5c8aaa0727a979212ed4f089d915b106c00fac8 Reviewed-on: http://gerrit.openafs.org/6163 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 25672ad8cdda42231b15937f0d390bea5b9e3b17 Author: Derrick Brashear Date: Wed Nov 30 16:20:23 2011 -0500 remove CopyOnWrite2 and unused vars unused static functions make grumpy compilers grumpy. Change-Id: I2a48e2993193a615bffe331f19948bfc46fba16b Reviewed-on: http://gerrit.openafs.org/6157 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cdc26d92ed2022d7a424ca0fffb96bba5e9ea503 Author: Derrick Brashear Date: Sun Nov 27 11:23:29 2011 -0500 viced: disable accelerated copyonwrite don't do multistage CoW FIXES 130295 Change-Id: Iec35619b970d87a72ed497d4bbec0b9415c9ddf7 Reviewed-on: http://gerrit.openafs.org/6135 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 0c01c36245c53db93ec6418b2b7ff7f679181765 Author: Jeffrey Altman Date: Tue Nov 29 15:02:12 2011 -0500 Windows: AFSRDFSProvider log to file For when logging via OutputDebugString() is insufficient, add a cheap method of logging to a fixed file: c:\temp\AFSRDFSProvider.log. Set AFSRedirector\NetworkProvider "Debug" to 0x2. Change-Id: I419bfbe251b8ef58d7c1b7921badde19d72c34e6 Reviewed-on: http://gerrit.openafs.org/6142 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7ba9129141387e7c24a695a94fb602df368e3917 Author: Jeffrey Altman Date: Tue Nov 29 15:01:00 2011 -0500 Windows: NPEnumResources no Printer support The AFS Redirector does not support printer shares. If the query is for printers only (or any other query that does not permit disk shares as a response) return no more entries. Change-Id: Ide9fc58489bed7f4a9cf50da24a98a9b2477b72d Reviewed-on: http://gerrit.openafs.org/6141 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 31d80e64683a6e7ce33ab714759e74a18454110d Author: Jeffrey Altman Date: Tue Nov 29 14:59:24 2011 -0500 Windows: NPGetConnectionCommon buffer too small If the specified buffer size is too small, say so. Do not attempt to copy data in that won't fit. Do not walk beyond the end of the allocated memory. Change-Id: Id4a75273d8ec9e9cc8471a963bc32f6cad59163e Reviewed-on: http://gerrit.openafs.org/6140 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9fa28d7df3034600026aacbfb902a4f92446253b Author: Jeffrey Altman Date: Tue Nov 29 14:55:55 2011 -0500 Windows: no drive subst for NPCancelConnection NPCancelConnection() must use the results of a Get Connection ioctl to the afs redirector and not the result of Drive Letter Substitution queries via DosQueryDevice(). Rename NPGetConnection() to NPGetConnectionCommon() and add a new parameter to indicate whether drive substitution is ok. Change-Id: I42cd4488038f128ae90356a41bc538966d9cebed Reviewed-on: http://gerrit.openafs.org/6139 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit abfa8f00293780fd751ba8de3ee4ce6cbdb00e90 Author: Jeffrey Altman Date: Tue Nov 29 14:54:24 2011 -0500 Windows: refactor NPCancelConnection refactor NPCancelConnection to consolidate some conditional blocks to improve readability. Change-Id: Ic3aaaac10809caeaab10fdb6c759be8d55d1f75c Reviewed-on: http://gerrit.openafs.org/6138 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d6900a7cd1722648f4107f82d0d74d01f6da1810 Author: Chris Orsi Date: Sat Nov 26 17:26:10 2011 -0500 Windows: Mount Point and Symlink Overlay Icons Change-Id: I34b8166664f54878eb58a0dcc3e1241cb977aa5f Reviewed-on: http://gerrit.openafs.org/6137 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit bd7cecb3277b2980a880c68e70a7ca761285347c Author: Jeffrey Altman Date: Mon Nov 28 18:42:21 2011 -0500 Windows: Wix disable integrated logon by default One of the significant differences between the NSIS and Wix installer packages is that NSIS does not activate integrated logon by default whereas the Wix installer does. Enabling integrated logon without configuring the cell, CellServDB, installing Kerberos v5 and configuring krb5.conf can result in a very long wait at logon. Now that NSIS is no longer being supported and cannot be supported as a native 64-bit installer mechanism we must disable integrated logon by default to prevent more bad end user experiences like @Lotterleben described on Twitter. Change-Id: I10be4185177f94e53295a7641dd387feb295eaa5 Reviewed-on: http://gerrit.openafs.org/6132 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 043c31bf8d81f5aba968f69c613b639e1d0e3ee7 Author: Simon Wilkinson Date: Sun Oct 23 21:21:39 2011 +0100 rx: Use a red black tree for the event stack Instead of the current event stack, which uses a sorted linked list, use a red/black tree to maintain the timer stack. This dramatically improves event insertion times, at the expense of some additional implementation complexity. This change also adds reference counting to the rxevent structure. We've always had a race between an event being fired, and that event being simultaneously cancelled by the user thread. Reference counting avoids that race resulting in the structure appearing twice in the free list. Change-Id: Icbef6e04e01f3eef5b888bc3cb77b7a3d1be26ae Reviewed-on: http://gerrit.openafs.org/5841 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit a9682775fcb047e4bcd3994d582ada430d28e264 Author: Simon Wilkinson Date: Fri Nov 11 09:33:31 2011 +0000 Unix CM: Build rbtrees in kernel Build the new opr rbtree code in the Unix kernel module Change-Id: I8271b209c8c17c4c651f2499cd8f60e44818a828 Reviewed-on: http://gerrit.openafs.org/5842 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 073edd3fbdf442249920acea8f3ee90b6346bf23 Author: Andrew Deason Date: Tue Nov 29 12:07:49 2011 -0600 udebug: Fix endianness when fudging lastYesHost hostAddr is in NBO, lastYesHost is in HBO. Change-Id: Id11046426512c79b8e760841e1e13cf91deb0b4c Reviewed-on: http://gerrit.openafs.org/6136 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 82809787d5addcec4a64ce71bb5b7d389ee4623b Author: Jeffrey Altman Date: Mon Nov 28 19:15:33 2011 -0500 Windows: FSync not CleanVnode during Cleanup cm_FSync() is buf_CleanVnode() plus a sync of metadata which is required during last handle close. FIXES 130351 Change-Id: I25635e3c9768dbf7d9501178b99cdd64a5be7789 Reviewed-on: http://gerrit.openafs.org/6134 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit bf4f9f33dc55150d991d9eec4ea95d78208f6949 Author: Jeffrey Altman Date: Mon Nov 28 18:45:55 2011 -0500 Windows: Wix cell names can be greater than 120 chars Increase the permitted length in the UI to 255 characters. Change-Id: I33d3f546da8b38f89bb88352abcb908879728771 Reviewed-on: http://gerrit.openafs.org/6133 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 006815ca2f4df1ed5236fc377da2647895853b0a Author: Jeffrey Altman Date: Mon Nov 28 15:13:43 2011 -0500 Windows: cache format version change With the change to the size of the osi_mutex_t and osi_rwlock_t structures the CM_CONFIG_DATA_VERSION must change to force a reconstruction of the cache file. Change-Id: I0aadd2f7c699a5daaa87acf749957ff65d51fe6e Reviewed-on: http://gerrit.openafs.org/6131 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit a07338f4ccc5062e224405ccda0c9ed41e666f5e Author: Jeffrey Altman Date: Sat Nov 26 17:26:50 2011 -0500 Windows: osi_mutex / osi_rwlock changes Reorganize the osi_mutex and osi_rwlock structure so that all counters are 32-bit and pointers are aligned. This requires adding padding fields. Move lock validation checks within the critical section. Include additional assertions checking the ownership state and protecting against under/overflows. Increase the size of the rwlock tid array to support a larger number of simultaneous readers. Change-Id: Ia46684c601a1a589a210a36862ae6ad6448a435e Reviewed-on: http://gerrit.openafs.org/6130 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 5d7adc6b67dedf0dc888196812e66b131cf91bbc Author: Jeffrey Altman Date: Sat Nov 26 10:55:27 2011 -0500 Windows: convert daemons threads to pthreads The daemon threads make calls to Rx and therefore need to be created with the pthread package to prevent the threads from being tracked as 'native' threads by the pthread_thread_shutdown thread which can only track up to 63 native threads. Change-Id: I8d096be9398a0a541bb59eb245cd7b3fe6f3843c Reviewed-on: http://gerrit.openafs.org/6119 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 8e14168c9c77850ce0603d56f8aa280f73cb3114 Author: Ben Kaduk Date: Sun Nov 13 13:12:50 2011 -0500 FBSD: cleanup dvp locking for ISDOTDOT This is a more correct version of c2ed2577f9c16df3088158fb593d7aab6e8690d0, which was reverted since it caused build issues on some versions and kernel panics on others. We do want to always unlock dvp before calling over the network in the ISDOTDOT case, but be sure to use the proper spelling for this operation (as the syntax has changed between FreeBSD versions). This requires not unlocking dvp right after the afs_lookup() call if it succeeds, letting us just lock the "child" vp (which is actually the parent starting from '/') first, and then re-lock dvp. The error case of afs_lookup() was already handled correctly in this logic, which is to say that it was incorrect before this change, attempting to recursively lock dvp which causes a panic. Change-Id: Ide29e47991413dadc3a2b5948f0f6c5bfa2911c4 Reviewed-on: http://gerrit.openafs.org/6127 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 730832073a1e87654f28bfff054e24d4170c01dc Author: Derrick Brashear Date: Sun Nov 27 10:42:59 2011 -0500 namei: force-close fd on read or write error if we errored, just reallyclose so we'll get a new fd Change-Id: I55de45a96dc7fab481a49c10c68f2ebc0d4ea27c Reviewed-on: http://gerrit.openafs.org/6126 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 0f9214164ad56bfe74d0f2cec8775a312f5128dd Author: Edward Z. Yang Date: Sat Nov 26 19:32:51 2011 -0500 Linux: 3: Update specfile to know about 3.* kernels. Update spec file to be consistent with acinclude.m4 with regards to sysnames. We don't bother updating the code inside the legacy kernel build section, as it doesn't get triggered for 3.* kernels (it should probably get cleaned up at some point.) Also, fix a bug in error message printing of unrecognized kernel. Signed-off-by: Edward Z. Yang Change-Id: Ife6046db0bec981be59aa053f63ae71458da7167 Reviewed-on: http://gerrit.openafs.org/6120 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 2373547a86c12f72261072971b8d47e6b7cdd4e6 Author: Simon Wilkinson Date: Wed Nov 23 16:30:55 2011 +0000 Unix CM: Fix PutVolume in afs_BlackListOnce It isn't safe to keep accessing a structure once we have Put our reference to it. Change-Id: I6f23a054c3ccde21aa17e07d06dd3c6e7761c098 Reviewed-on: http://gerrit.openafs.org/6117 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 53d55cf35327ec08c2f2ed5dea4138cdc2d46de7 Author: Jeffrey Altman Date: Tue Nov 22 09:31:45 2011 -0500 Windows: add trace logging to Pioctl File Info Query Change-Id: I357518a341dd97aa94c30ae9c0defa56a97eb920 Reviewed-on: http://gerrit.openafs.org/6110 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 030157166795628bbfa81e8b4b7ede35dfead8d0 Author: Jeffrey Altman Date: Tue Nov 22 16:36:18 2011 -0500 Windows: _._AFS_IOCTL_._ size is zero When replying to a FileStandardInformation query on the pioctl special file, the size of the file is 0. Failure to return 0 can result in an anti-virus program attempting to read the file via a paging request which will fail. Change-Id: I83f2f40cca99c04a5fe06546f19bdf96dfbb4951 Reviewed-on: http://gerrit.openafs.org/6109 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 039ffe2a036217e7d23c7466c77b69df50a603f7 Author: Jeffrey Altman Date: Mon Nov 21 21:47:38 2011 -0500 Windows: RDR_InvalidateObject do not hold locks Do not hold any locks when calling the afs redirector. Holding a lock can cause a deadlock. Change-Id: I5fb493d68e3cf3a8e58024b3b9f54349928f84c3 Reviewed-on: http://gerrit.openafs.org/6105 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d42db13152fb8fa374db6531020da6effca51ab4 Author: Jeffrey Altman Date: Mon Nov 21 13:14:40 2011 -0500 Windows: cm_GetSCache do not release unheld lock if cm_GetNewSCache() fails, an attempt would be made to release cm_scacheLock which is not held. However, it should be noted that cm_GetNewSCache() cannot fail without itself triggering a panic. Change-Id: I316e33712440c2bd816294ad788ad125ab7b4a73 Reviewed-on: http://gerrit.openafs.org/6103 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 887791bacf8a1b39a610734e5c27c55f88513750 Author: Jeffrey Altman Date: Mon Nov 21 08:42:13 2011 -0500 Windows: Use Jenkins' Hash Replace the non-string hash functions with Jenkins' Hash derived hash values. Bump the cache version value because the hash function has changed. Change-Id: I9de789a48abab38ceb16e928bfc0c10e2a88747e Reviewed-on: http://gerrit.openafs.org/6102 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 20448059f02d07eccf7f81fdb55b80e566acfecc Author: Simon Wilkinson Date: Sun Nov 20 23:40:51 2011 +0000 opr: Add Bob Jenkins's hash functions This imports a small subset of Bob Jenkins lookup3.c hash functions into the opr library. At present we only import the subset of this that deals with aligned arrays of integers, as this addresses our immediate need. It seems likely that if we're interested in a hash function for string arrays (or other arbitrary data), that more recent functions such like SpookyHash (from Bob Jenkins, again) or CityHash (from Google) may be a better solution. The immediate use case for this is removing the use of the '%' operator when indexing speed critical hash tables, as well as ensuring fairer distribution of entries across these tables. A short set of test cases is also provided Change-Id: I0ae26382e77da02204a30a95747f7d6de8c4f24a Reviewed-on: http://gerrit.openafs.org/6095 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f1dd2d696fb9ab71b4192b156042e0c63019c58a Author: Anders Kaseorg Date: Sun Nov 20 19:00:00 2011 -0500 Linux: 3.2: Use set_nlink to update i_nlink As of v3.2-rc1~84^2~1, struct inode.i_nlink is now const to prevent direct modification. Change-Id: If0a38ffb7f9964e23f5e64c900ae92f56fb77def Signed-off-by: Anders Kaseorg Reviewed-on: http://gerrit.openafs.org/6096 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e14dec55e6600edb60ce5184b4ab1f646c68947b Author: Andrew Deason Date: Tue Nov 15 13:18:48 2011 -0600 afs: Leave cellnum alone for explicit mtpt cell When a mountpoint is given an explicit cell, don't alter cellnum. Cellnum represents the cell for the parent, and is used for determining whether or not we're crossing a cell boundary. Previously, this code forced the mount point to always be treated as foreign (for a mountpoint prefixed with a cell name), or to always be treated as local (for a mountpoint prefixed with a cell number). Change-Id: I7b98ccc94bf61dc3d7be0b7d6b54019cd797e884 Reviewed-on: http://gerrit.openafs.org/6051 Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 51f71e533b20cd875eec8adda71edea044a606da Author: Jeffrey Altman Date: Fri Nov 11 11:00:47 2011 -0500 namei: tweak getlinkbyte error handling in the event of a pread error, add the same error exit path trigger that we have elsewhere Change-Id: Id7a371f3fd710f3c6dad21bccb0662cf8562d99f Reviewed-on: http://gerrit.openafs.org/5843 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0e3bfa033ed230fcb46ad8e3c26c8b7aae6e00af Author: Michael Meffie Date: Thu Oct 27 17:53:47 2011 -0400 auth: avoid excessive stat of cellservdb The modified time resolution is one second, so only stat the cellservdb file at most only once per second. Change-Id: I7d9a58f9af72b8c36b50374e49c07b4db85285e0 Reviewed-on: http://gerrit.openafs.org/5743 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 639ca379e47fbe550d090fff9e635ad24e8e34f0 Author: Michael Meffie Date: Thu Nov 3 17:09:28 2011 -0400 vol: rate-limit volume usage updates Add threshold and time rate-limit parameters for volume usage updates to disk. This reduces the amount of i/o needed for volume usage statistics on very busy fileservers. Set the default to limit updates to one every 5 seconds per volume. Change-Id: I6b4274476ef6b8f9e4288b109d5a3edbdea6e91c Reviewed-on: http://gerrit.openafs.org/5803 Reviewed-by: Derrick Brashear Reviewed-by: Tom Keiser Tested-by: BuildBot commit 8ce811e34379615f942e9ca73d1ba78bfe742042 Author: Jeffrey Altman Date: Fri Nov 18 09:54:43 2011 -0500 Windows: RDR_RequestFileExtentsAsync unheld lock commit 55f5f356af2ef884413bd656f100055741ae871b forgot to remove a lock_ReleaseWrite(&scp->rw) in RDR_RequestFileExtentsAsync(). Change-Id: I787ceddcada3659c7b2fae9bb90aa005a71d2ceb Reviewed-on: http://gerrit.openafs.org/6075 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ac1251ead12434a12fb8e7d6787845f534565039 Author: Jeffrey Altman Date: Fri Nov 18 00:39:24 2011 -0500 Windows: must obtain and release an actual lock Change-Id: I2bb490ba3c1db05c4dc7660ca7319d7d96d16c0f Reviewed-on: http://gerrit.openafs.org/6072 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1379fb6de4d2134160fcc95cbbee4bd6048eaeaa Author: Jeffrey Altman Date: Thu Nov 17 00:30:24 2011 -0500 Windows: non-release only worker threads can release There are two classes of worker threads created by the service and donated to the afsredir as part of the reverse ioctl processing model. Normal workers can process any kind of ioctl and Release Only workers that can only process release extent events. Use a KeWaitForMultipleEvents in the normal worker case to permit processing any type of event. The previous implementation excluded release extent ioctls from the normal workers. Change-Id: I05e86f62c08e322cf7aa9bdd2fd325919bcbfe8f Reviewed-on: http://gerrit.openafs.org/6071 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 833d076e04ac09270a203a9ff449ae2af8bdad7e Author: Jeffrey Altman Date: Wed Nov 16 00:29:34 2011 -0500 auth: initKeys before first error exit path In afsconf_OpenInternal() _afsconf_InitKeys() must be called before the first opportunity to call afsconf_CloseInternal() or a crash can occur if the CellServDB file cannot be parsed. Change-Id: I5b2487056a24d0c4ad78921d85df755758c7679e Reviewed-on: http://gerrit.openafs.org/6059 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 1c97c04add6639a11e88d412e369771bf6f0f281 Author: Jeffrey Altman Date: Wed Nov 16 10:33:41 2011 -0500 Windows: Do not install IBM AFS HLP files The IBM AFS HLP files are so out of date at this point that they are simply confusing. They reference tools and screens that no longer exist and claim the product is "IBM AFS". Incorrect documentation is worse than no documentation. The HLP files cannot be updated since we do not have the sources. HLP file format is no longer supported on Windows Vista or 7. The afs-nt.hlp file will continue to be installed conditionally when afscreds.exe is installed but the shortcut to it in the Start menu is being removed. afscreds.exe is not installed by default. Change-Id: I3443a5c4ca65472a16cbf7ae1d52da39e917136a Reviewed-on: http://gerrit.openafs.org/6065 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit fd42e08bf1882a02c3200e1c33a101e644aa046a Author: Jeffrey Altman Date: Tue Nov 15 18:35:26 2011 -0500 Windows: buf_CleanAsyncLocked dirty range only buf_CleanAsyncLocked() should not instruct cm_BufWrite() to write a full chunk if the current buffer is the only one that is dirty. cm_BufWrite() will determine if it is appropriate to fill a full chunk when storing. Instructing it to check a full chunk forces it to do more work than necessary. Change-Id: Ie140d405147d700196532b72f04885a301a2550f Reviewed-on: http://gerrit.openafs.org/6054 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 55f5f356af2ef884413bd656f100055741ae871b Author: Jeffrey Altman Date: Tue Nov 15 18:23:46 2011 -0500 Windows: create scache->redirMx to reduce contention Relying on the cm_scache_t.rw lock to protect the cm_scache_t.redirQueue* results in a large amount of contention between processing extent requests and releases from the afs redirector and the threads attempting to read from or write data to the file server. There is no reason why the same lock must be used. Allocate a dedicated mutex to protect the queue. By placing the new mutex after the buf_globalLock in the locking hierarchy it permits the lock acquisition logic for extent processing to be simplified further reducing cm_scache_t.rw lock transitions. Change-Id: Id2ded86c1f3757a2f1071c8cf39f2fbc6bcfcfaa Reviewed-on: http://gerrit.openafs.org/6053 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 042f6c08e3be0af3ef1cc4a0bfc4688c3e2ef7d0 Author: Jeffrey Altman Date: Tue Nov 15 19:03:14 2011 -0500 Windows: Increase default number of daemon threads With the SMB interface there was little benefit to having a large background daemon worker pool since it was so rarely used. Now that the redirector does everything in the background daemon workers, increase the default from 4 to 16 threads. Change-Id: I319182e4c539c14d06fe62dde2b41a159e4edea6 Reviewed-on: http://gerrit.openafs.org/6058 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 320c7292e6ae014e44e89b0da736bcc04ef42b2b Author: Jeffrey Altman Date: Tue Nov 15 19:00:05 2011 -0500 Windows: cm_SetupStoreBIOD use firstModOffset chunk When cm_SetupStoreBIOD attempts to store a chunk to the file server it should not use *inOffsetp as the start of the range. There is no guarantee that the buffer at *inOffsetp is dirty. Instead use firstModOffset which refers to the first known dirty buffer in the range specified by the caller. Attempt to fill a chunk of consecutive dirty buffers from that point. Change-Id: I468e896b046192461d6fe0dc3669e5feeb7886ba Reviewed-on: http://gerrit.openafs.org/6057 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit c904d9a3889b7dd8c8795feaa9e5e4979f681f53 Author: Jeffrey Altman Date: Tue Nov 15 18:40:21 2011 -0500 Windows: Fairness for background operations The background daemon worker pool is responsible for processing background Store and Fetch operations. With the SMB interface primary store and fetch operations are performed in the SMB worker thread which makes sense since those operations must be synchronous to the incoming request. With the AFS redirector interface almost all of the work is performed by the background daemon worker pool. It is therefore critical that the workers not get stuck in a state that starves applications. For example, copy of a file that is larger than the cache to \\AFS will result in a background store request for each chunk size of the file. If each worker thread grabs one to process, only one will make progress and the rest will block. If a cleanup operation (aka handle close) occurs the entire file will be flushed to the server synchronously in the redirector worker thread. That thread will cause of the background daemon threads to block. Any subsequent fetch data requests that get queued behind the list of stores will in turn block until they clear. This behavior is not fair. This patchset adds a new test to the cm_BkgDaemon() request selection loop, cm_RequestWillBlock(). If a request will block it is skipped. If there are no requests to process that would not have blocked, the worker will sleep for 25ms instead of the usual 1s. For BkgStore operations, the CM_SCACHEFLAG_DATASTORING flag is used to indicating a blocking state. For BkgFetch and PreFetch operations, the CM_BUF_WRITING and CM_BUF_READING flags on the first cm_buf_t of the range is used to indicate a blocking state. Change-Id: I95d9d1f14dbe0c7d717e6a7253ccfb10a9fac851 Reviewed-on: http://gerrit.openafs.org/6056 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit d113c0eb8ac4717cafd7747a78c5aa3b649b8e68 Author: Andrew Deason Date: Tue Nov 15 11:53:12 2011 -0600 vlserver: Avoid atoi for vol ids Change-Id: I27c30f9320ea6d2093846148ad455eda71b0b713 Reviewed-on: http://gerrit.openafs.org/6050 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a1871449eec8d9fc1152319bc63e29db7f9ae231 Author: Jeffrey Altman Date: Tue Nov 15 09:03:59 2011 -0500 Windows: Create default Security Descriptor A misplaced #endif prevented the allocation of a default security descriptor. This results in STATUS_INSUFFICIENT_RESOURCES errors. FIXES 130284 Change-Id: I9c1d67368a1b5d770a4c9a981bdb4a24f8ad3c8e Reviewed-on: http://gerrit.openafs.org/6048 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c4d19e5d4271a31fd29c111fb27d145dc83b83b7 Author: Jeffrey Altman Date: Mon Nov 14 17:49:45 2011 -0500 Windows: interlocked refCount increment in cm_GetSCache Failure to use interlocked operations in cm_GetSCache can result in an under count Change-Id: I370bcb9ac8b40f1c1b7ea3b7647fc76e3a554e2c Reviewed-on: http://gerrit.openafs.org/6046 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e55d1774b1b5b27a3617467b5e2a24ee2be3a38c Author: Jeffrey Altman Date: Sun Nov 13 12:06:18 2011 -0500 Windows: netidmgr krb5_cc_get_principal can fail Do not dereference a NULL pointer if krb5_cc_get_principal fails. Change-Id: Ic213f0c41249931441bcedaf551acaa160ff7f0f Reviewed-on: http://gerrit.openafs.org/6016 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 38fbf93fcc21aaecbf9a7e27d19131b9de4c3839 Author: Jeffrey Altman Date: Sat Nov 12 18:33:18 2011 -0500 Windows: smb_ReceiveNTCreateX create smb_fid earlier smb_ReceiveNTCreateX() calls cm_CheckNTOpen() which now requires the smb_fid_t allocated fid value for use in share mode locking. Move the allocation of the smb_fid earlier in the function and apply necessary cleanup in error paths. Change-Id: Iee0e39cdf393bfd245829bdfb42ddfba63908451 Reviewed-on: http://gerrit.openafs.org/6004 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5c59d1b500ae4ba5223184fbfe18837891ea30c3 Author: Jeffrey Altman Date: Sat Nov 12 17:32:06 2011 -0500 Windows: cm_GetSCache avoid holding cm_scacheLock cm_GetSCache used to hold cm_scacheLock write-locked from start to finish except that it didn't. There were several places where cm_scacheLock was dropped and reacquired due to lock ordering requirements. Unfortunately, this has two problems. First, the function isn't very fast in the most common case since cm_scacheLock is write-locked for the search for an existing FID. Second, there is a race that results when cm_GetNewSCache() drops the cm_scacheLock. To make things faster, use a read-lock for the common case. To avoid the race, if the FID cannot be located, call cm_GetNewSCache() first and then obtain the cell and volume information. Then perform a second lookup for the FID while holding cm_scacheLock write-locked. If we lost the race or there was an error obtaining the cell and volume info, put the new cm_scache_t back onto the end of the LRU queue. Change-Id: Idb94275d23c160ee0a2dc8fdcfd0f09506ecb2d3 Reviewed-on: http://gerrit.openafs.org/6003 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit eb3c9f783b9488181c57ef949e3feddcb02d381a Author: Jeffrey Altman Date: Sat Nov 12 17:24:12 2011 -0500 Windows: avoid null ptr in RDR_RequestFileExtentsAsync If the cm_scache_t cannot be obtained, do not dereference it while returning an error to the redirector. Change-Id: Ia8aaa33ca4ab410dc1b0100ea5668d5660d90b75 Reviewed-on: http://gerrit.openafs.org/6002 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 090f6279c5496f648893606d298c698f376c7ae0 Author: Jeffrey Altman Date: Sat Nov 12 13:45:08 2011 -0500 Windows: Track active RPCs per scache_t It has been noticed that multiple RPCs can be active on a cm_scache_t object at the same time. This is especially true of directory objects with the redirector. Track the number of active RPCs and use that number in cm_MergeStatus when deciding whether or not to discard the cached data for the object. Change-Id: If291bb4c0e48d0ec087c3a7c2640e4598e7fd419 Reviewed-on: http://gerrit.openafs.org/6001 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 2fc9edc6e34ebef60413fad9a2af2aa73ea1681f Author: Jeffrey Altman Date: Sat Nov 12 13:41:30 2011 -0500 Windows: fix locking hierarchy in service The smb username lock and the daemon global lock can be requested while the scache dirlock is held if there are no free buffers and the service is forced to claw back extents from the redirector. Adjust the locking hierarchy accordingly. Change-Id: I85387a16ca580d678af45f3931aa5e81fe0a0f2c Reviewed-on: http://gerrit.openafs.org/6000 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f199ac666195771a02e3ebb040c6e5fe47c58c58 Author: Andrew Deason Date: Wed Nov 2 16:55:49 2011 -0500 afs: Do not use separate array for srvAddrs The array of srvAddr structs we use in afs_LoopServers have indices unrelated to the indices of conns, rxconns, etc. Several places were assuming that addr[i] corresponded to conn[i], which is not necessarily true. So instead, do not use the separate addr array (except when populating the conn and rxconn arrays), and just get the srvAddr structure by going through the relevant conn[i]. Change-Id: Ib60126811f51943bfc81ab7c48d7f247f00f1cad Reviewed-on: http://gerrit.openafs.org/5790 Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a7d569c857234626191514e2780368e1b85a6dae Author: Simon Wilkinson Date: Sat Oct 22 16:37:04 2011 +0100 rx: Turn the rxevent_Cancel macro into a function Turn rxevent_Cancel into a function rather than a macro which modifies its argument as a side effect. rxevent_Cancel now checks whether the event being cancelled is already NULL, as well as NULLifying the event when it is actually cancelled. Update all of the callers to reflect this new API, and so they no longer do unecessary work. Change-Id: I75b68f1c8f1a3023edd6113600663fe2b60d6097 Reviewed-on: http://gerrit.openafs.org/5840 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit be8db58f5a44ce2ee4208de09a5ca1faf6f0f91f Author: Simon Wilkinson Date: Sat Oct 22 16:22:36 2011 +0100 rx: New signature for rx event functions For a while now, we've had both new and old-style rx event callback functions. Modify all of our event handlers, and the functions that install them, to use only new style functions, and get rid of the old-style function prototypes. Change-Id: Ic7c568df9d191edb082fb41fb7705c54ca93cf48 Reviewed-on: http://gerrit.openafs.org/5839 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5574ff814f02078b709cbc0a6c94201ca6fe2eca Author: Simon Wilkinson Date: Sat Oct 22 11:22:51 2011 +0100 opr: Add a red/black tree implementation Add an implementation of red/black trees to our runtime library. This is originally derived from the FreeBSD macro-based rbtree implementation, but is heavily reworked to not use macros, to improve legibility, and to favour speed over structure compactness. A test suite is provided in tests/opr/ Change-Id: I123209d3f89b5f8c1b85d1e5cd7d1d650ccc68ed Reviewed-on: http://gerrit.openafs.org/5838 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 43766833ab64564770228566d8459900280c1146 Author: Simon Wilkinson Date: Sat Oct 22 11:10:53 2011 +0100 rx: Add a helper function for delayed acks The code to schedule a new delayed ack event is distributed throughout the RX code. Consolidate this into a single helper function. Change-Id: If54e36b5648f8caffe64cc2203dc0041fd06b8b3 Reviewed-on: http://gerrit.openafs.org/5837 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1a056d24a79242db09963dd0b0c2193c5034b61b Author: Simon Wilkinson Date: Sat Oct 22 09:45:10 2011 +0100 opr: Add opr_containerof Add the opr_containerof macro, which can be used to find the base address of a structure which contains a member whose location is known. This formulation is heavily used throughout OpenAFS to determine the base address of structures containing queue pointers - this provides a central definition, rather than coding it from scratch each time. Change-Id: I2a32a214252ad304238f740ad92579e5bb7287be Reviewed-on: http://gerrit.openafs.org/5836 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b15b4b15822bee87720bb0d78c2ce54051180339 Author: Jeffrey Altman Date: Sat Nov 5 04:10:42 2011 -0400 Windows: Add Vista/Win7 Firewall Configuration Make use of the INetFwPolicy2 COM interface to configure the Vista/Win7 firewall for all network profile types. Change-Id: Id96d98f6e166f3529a117997f5a3c35b0051d1a4 Reviewed-on: http://gerrit.openafs.org/5812 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b78b8f64a69481e59e957ebe09315fc5b8b60c17 Author: Jeffrey Altman Date: Wed Oct 5 03:36:48 2011 -0400 Windows: Enforce Share Access Use file server locks to enforce file share access modes via the afs redirector interface. The approach taken integrates share mode enforcement with the file server lock tracking code in the service. The share mode enforcement mimics that of the SMB Server interface. This patchset includes two functional changes to the previous locking and share mode processing: 1. The cm_scache_t fsLockCount field is used to determine if the desired lock can be granted by the file server. If not, the RXAFS_SetLock() request is skipped and the request is failed locally. 2. cm_CheckNTOpen() now accepts the desired and and share access modes. The share access mode is used to determine if a test lock should be obtained at all. If the share mode is FILE_SHARE_WRITE then no lock is requested. This change permits Microsoft Office applications to offer the user the ability to open the file in read-only mode and notify the user when the document can be opened in read-write mode. Developed with Peter Scott FIXES 130239 Change-Id: If9b4beb74586296d4feae52dd06c03f0b8b595cd Reviewed-on: http://gerrit.openafs.org/5823 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c6a22d67ff9787ace2249d528eb9db99c5b19427 Author: Andrew Deason Date: Thu Nov 10 15:18:41 2011 -0600 SOLARIS: Do not build x86 kernel module on 5.11 Oracle Solaris 11 no longer supports x86 (amd64 is required). If we try to build the x86 module, /usr/include/sys/kobj.h complains that the ISA is unsupported, and refuses to go on. So, just remove MODLOAD32 from the libafs directories to build on sunx86_511. Change-Id: Ic18936d1a0f53ed290d885617d313347aa6ce87a Reviewed-on: http://gerrit.openafs.org/5835 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b41e30a55c8aeb6d7f42d74f9eb090232032057f Author: Andrew Deason Date: Thu Nov 10 11:58:12 2011 -0600 namei: Remove extraneous rmdir We just unlinked the file, so we know we won't be able to rmdir() the same thing. Give a path one level higher to namei_RemoveDataDirectories, so we start rmdir()ing at the parent dir. Change-Id: Ifa54d1cc07ed2d277416d09eabc45aa1e1c3803a Reviewed-on: http://gerrit.openafs.org/5833 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4c679e380f697760de777d35fe057229bf2bf762 Author: Andrew Deason Date: Thu Nov 10 11:05:28 2011 -0600 vol: Remove O_EXCL|O_TRUNC combinations A few places were specifying both O_EXCL and O_TRUNC to open(). O_TRUNC does not make any sense with O_EXCL, and doesn't do anything, so remove O_TRUNC from these instances to make the code more clear. Change-Id: Ie8d9d7b9912a96683ef34f762607e75468b5ac78 Reviewed-on: http://gerrit.openafs.org/5832 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit f27480aa2f8a26da3bd7634ff7072c1faac0f448 Author: Jeffrey Altman Date: Wed Nov 9 22:52:37 2011 -0500 Windows: FSCTL_SET_REPARSE_POINT not yet implemented Since FSCTL_SET_REPARSE_POINT is not yet implemented return STATUS_INVALID_PARAMETER to all requests that do not fail validity tests. Change-Id: I53d4b4fc9d957daa70b16d37a529778ed8bbfa5e Reviewed-on: http://gerrit.openafs.org/5829 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 72e5bd1434a6a2238f28f11a149192f44d0b82d1 Author: Jeffrey Altman Date: Wed Nov 9 22:47:55 2011 -0500 Windows: FSCTL_SET_REPARSE_POINT error According to MS_FSCC 2.3.54 if the input buffer length is less than the size of a REPARSE_DATA_BUFFER structure, or the input buffer length is greater than 16,384, or a REPARSE_DATA_BUFFER structure has been specified for a third party reparse tag, or the GUID specified for a third party reparse tag does not match the GUID known by the operating system for this reparse point, or the reparse tag is 0 or 1, then the return status shall be STATUS_IO_REPARSE_DATA_INVALID. Change-Id: I0072902afc8bc354af8f9b84b1021b37191dc23a Reviewed-on: http://gerrit.openafs.org/5828 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 733aa6a63d8f15dcfe31f24ce31b67b746a2934a Author: Jeffrey Altman Date: Wed Nov 9 22:45:07 2011 -0500 Windows: FSCTL_IS_PATHNAME_VALID return success Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2 support the FSCTL_IS_PATHNAME_VALID Request (section 2.3.21) and return STATUS_SUCCESS whenever this request is invoked. We will do the same. Change-Id: I432c8a41e1102648faaa3d8c0f3b8c36ea89bfc8 Reviewed-on: http://gerrit.openafs.org/5827 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3c6e5681245ad4ee267d7e5ca260b38655633a96 Author: Jeffrey Altman Date: Wed Nov 9 22:42:54 2011 -0500 Windows: these fsctl cmds are not implemented Return STATUS_NOT_IMPLEMENTED since the following FSCTL_ operations are not: FSCTL_LOCK_VOLUME FSCTL_UNLOCK_VOLUME FSCTL_DISMOUNT_VOLUME FSCTL_MARK_VOLUME_DIRTY FSCTL_IS_VOLUME_DIRTY FSCTL_IS_VOLUME_MOUNTED Change-Id: Idfe26a4b71538defd1919be575d62b32dd415a06 Reviewed-on: http://gerrit.openafs.org/5826 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit ff7d3a19f032c5d4917cc04eeff9cf92733f1fae Author: Jeffrey Altman Date: Wed Nov 9 22:33:11 2011 -0500 Windows: Additional trace logging Add additional trace logging to the redirector to assist with debugging reparse point processing. Change-Id: I89d7a26d7d10ba5fff001d91f5e67baa224f4179 Reviewed-on: http://gerrit.openafs.org/5825 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b947adbacb5db4ce5e380ea28e1d734fdadd5cdf Author: Jeffrey Altman Date: Wed Nov 9 20:05:05 2011 -0500 Windows: service must set reparse point attribute When populating the directory entry information for the redirector the service must set the reparse point attribute. Change-Id: I26db0b822f850f0a19606eeed3c29e0e72562e2f Reviewed-on: http://gerrit.openafs.org/5824 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d810870ec1a2ad1cb438d776236db3340081fe74 Author: Peter Scott Date: Thu Nov 10 13:34:53 2011 -0700 Windows: Correctly increment PIOCtl DE When performing a directory enumeraiton, correctly increment ref count on the PIOCtl DE structures Change-Id: I44de6ab2d804378723e31887089aca4890d15fa6 Reviewed-on: http://gerrit.openafs.org/5834 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 2c0f857bc8d17d8e02f515d510f9530bc47866d4 Author: Peter Scott Date: Thu Nov 10 09:06:53 2011 -0700 Windows: FileNetworkPhysicalNameInfo implementation Handle this File information query Change-Id: Id16c22396cbb7e22b8958bc0438e58da048f4f70 Reviewed-on: http://gerrit.openafs.org/5830 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit deedf97416e4eaaea79479711ad3c84020fdd1e0 Author: Jeffrey Altman Date: Sun Oct 30 23:52:00 2011 -0400 Windows: improve store data parallelism The file server will set the rx call status bit (0x1) when the rpc is in process and all of the locks are held. At this point it is not possible for another store data rpc to begin on the vnode prior to the completion of the current rpc. Once this status bit is detected as set, the exclusive store data synchronization on the cm_scache_t can be dropped. This permits the next store data rpc to perform its biod construction. Change-Id: Ic856769650781b4f5f4ab4ac86df4946496bd655 Reviewed-on: http://gerrit.openafs.org/5741 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 9ba891676a15512fa58915662cf599ea73eac430 Author: Andrew Deason Date: Wed Nov 9 17:04:09 2011 -0600 volser: Preserve needsSalvaged during restore Some of the routines during a volume restore may set needsSalvaged, if an inconsistency is detected while writing the given volume data. However, after the data is read, we set the volume header information to what was found in the dump stream, ignoring any needsSalvaged that may have been set. To ensure that inconsistent volumes in this situation actually get demand-salvaged (for DAFS) or offlined (non-DAFS), keep the value of needsSalvaged in the header, if it was set. Change-Id: I575d14d84120be0fbbeb185ed2726f1285e6f2ce Reviewed-on: http://gerrit.openafs.org/5822 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit a1669f3e37299c11bf29a458212e03d1bdb22334 Author: Derrick Brashear Date: Wed Nov 9 10:34:10 2011 -0500 viced: avoid bogus handle in rename because fileptr's handle can be reset during CopyOnWrite we need to SetDirHandle after that call FIXES 130215 Change-Id: I8578d30da42bdd9be2c552cdac4d2c526c22ee45 Reviewed-on: http://gerrit.openafs.org/5818 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit 6d519cf1234d54630dcfe48f6ecd393e2dfe71dd Author: Andrew Deason Date: Tue Nov 8 12:52:50 2011 -0600 regen: Fail on failures If something fails, don't ignore the error. Change-Id: I3ae90009f0a0f61f269a05b39e9bfe478ccf256f Reviewed-on: http://gerrit.openafs.org/5817 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 49cb0d00909693b85f52d87a26d5df69a829d9d5 Author: Andrew Deason Date: Wed Apr 13 13:15:57 2011 -0500 Add "pretty" build option Add the capability to do a "pretty" build, where we output something like " CC /path/to/foo.o" to build foo.o, instead of the entire compiler invocation, similarly to how the Linux kernel build appears. Add the "pretty" building for CC and LD rules. This also prints out some helpful information when a command fails, which can sometimes otherwise be annoying to figure out post-mortem. To enable the pretty building, make with V=0. To output everything that is actually run with V=0, make with 'V=0 Q=' . Note that this does not work with all makes, since not all makes will propagate command-line-specified variables to sub-makes without -e. Non-working makes include /usr/ccs/bin/make on HP-UX and Solaris. However, GNU make will work, as will /usr/xpg4/bin/make on Solaris. Change-Id: Idce0afffe7d5be88b0743ec3f926a52efb1a6a74 Reviewed-on: http://gerrit.openafs.org/4486 Reviewed-by: Russ Allbery Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5c64df8628e60f2e4c55aaf3e53fb01c140b42ed Author: Andrew Deason Date: Tue Nov 8 12:29:39 2011 -0600 Specify pattern rules in addition to suffix rules A few makefiles specify an old-style suffix rule, such as: .c.o: $(AFS_CCRULE) $< Not all makes seem to interpret these rules correctly (such as Solaris /usr/xpg4/bin/make). Since it is easy to do so, specify pattern-based rules along with these, like so: %.o: %.c $(AFS_CCRULE) $< Change-Id: I052f1156d1a7e29beedb0fb59390073c2521459e Reviewed-on: http://gerrit.openafs.org/5819 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 70e8451acd0426024c152073e53bc6606e0189e1 Author: Andrew Deason Date: Thu Nov 3 13:40:37 2011 -0500 Add setenv/unsetenv to roken Add the replacement setenv and unsetenv functions to roken, for use on (at least) HP-UX and older Solaris. Change-Id: Id05137b6e6c88eb6648bd6a6e649f9ef311e32a4 Reviewed-on: http://gerrit.openafs.org/5801 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 00beae8c4e3b390637f20584e676cf86c817dadd Author: Derrick Brashear Date: Sun Nov 6 16:28:27 2011 -0500 dafs: avoid null deref getting volume header we don't assign hd before dereferencing. stop dereferencing and just use the queue cursor. Change-Id: I023fd959c5d49575dbdf89fd4dab77341c5c52d0 Reviewed-on: http://gerrit.openafs.org/5814 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit 7fee28bae30c5a65898a2e3fd7149f07e8ca0df6 Author: Andrew Deason Date: Thu Nov 3 13:17:33 2011 -0500 salvager: Implement AskDAFS via SYNC flags Instead of probing the DAFS-ness of the fileserver by probing which FSSYNC opcodes it supports, detect DAFS-ness by looking at the SYNC response header flags, which explicitly state whether or not the endpoint is DAFS. This avoids unnecessary "protocol mismatch" log messages when the endpoint is not DAFS. Change-Id: Ie05a587951d6d5f69ae03cf3749f8c53e1eb6b62 Reviewed-on: http://gerrit.openafs.org/5800 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 47b010d1e1d0e8bdbbcad73d5aedc19719d5d96a Author: Derrick Brashear Date: Sat Nov 5 11:24:43 2011 -0400 redhat: make rpms build on pre-f15 again we don't have systemd everywhere. don't assume it Change-Id: I4038bc1e1aff804e685d1987e368f2be1af35b05 Reviewed-on: http://gerrit.openafs.org/5813 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit b06c700ee40ca70ef08259af819e2a6084137457 Author: Derrick Brashear Date: Fri Nov 4 11:43:01 2011 -0400 ukernel: handle pioctl errors properly in ktc the straight return from call_syscall isn't what we want. munge so e.g. EDOM handling for ktc_GetToken does the right thing. Change-Id: I3fbba799e0156bad29b27c74a1c7709ee8c50c34 Reviewed-on: http://gerrit.openafs.org/5807 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit c96d3429f2d4ad2ec7ac45a83c1111dc60a0d5c1 Author: Andrew Deason Date: Fri Nov 4 16:12:03 2011 -0500 libafsauthent: Remove obsolete HP-UX workaround This workaround is no longer relevant. It is also error-prone and there are far better ways to achieve a similar result, so get rid of it. Change-Id: If77f0cd95c8c608913d0c8717729a05c1ad67df9 Reviewed-on: http://gerrit.openafs.org/5811 Reviewed-by: Simon Wilkinson Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 2a1251c5d0c1b0fd4024d7b3282187a838b551fd Author: Andrew Deason Date: Fri Nov 4 17:19:28 2011 -0500 volser: Remove debugging log messages While the -log option to volserver is supposed to print additional log information, it shouldn't spam the log with useless data. Remove some of the log lines that are really more "debug" information, so we log the same amount of information as in the 1.4 series. Change-Id: I1fd93344a7ebe11c6d5ad507dad87babe517785a Reviewed-on: http://gerrit.openafs.org/5810 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 025a7aee0b86c7d8a7299c85c88615eb8cd6b07f Author: Simon Wilkinson Date: Thu Nov 3 10:10:23 2011 +0000 Unix CM: Fix dir buffer leak in afs_readdir Resolve a buffer leak in afs_readdir that was visible on all non-Linux platforms (Linux has an independent readdir implementation) Change-Id: Ia5106f0e5c57430d3483b6add5b1629ff3fbc7b3 Reviewed-on: http://gerrit.openafs.org/5794 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear commit c2ee7b00ddfe8b1b8c296a99f0244eb33c726e8e Author: Andrew Deason Date: Fri Nov 4 12:42:33 2011 -0500 DAFS: Deal with exclusive-state volume headers GetVolumeHeader assumes that headers on the LRU are not associated with a volume in an exclusive state. This is known to not be true for some cases when salvage requests are received over FSSYNC, and may be true in other scenarios. It's easy to just skip such headers, so skip them. Change-Id: I343d2e4f7af1c753641767be322420f38873c217 Reviewed-on: http://gerrit.openafs.org/5808 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit da00d719a77607d8873067902f5db5bff02d0e99 Author: Jeffrey Altman Date: Fri Nov 4 09:34:53 2011 -0400 Windows: NPCancelConnection set correct length The RemoteNameLength passed in the IOCTL_AFS_CANCEL_CONNECTION call must not include the trailing NUL. NPGetConnection() returns the size of the buffer used which does include the trailing NUL. Change-Id: Ic5eae51aade91db4a799bea83d898af6fbc37504 Reviewed-on: http://gerrit.openafs.org/5806 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3acd9b854e05748578f8291200fad8c6650e9b14 Author: Jeffrey Altman Date: Fri Nov 4 08:40:03 2011 -0400 Windows: do not leak resource in AFSQueryDirectory Track whether or not the pFcb->NPFcb->Resource is held so it can be released in all error paths. Change-Id: I8c8bfb912329e8c11ac7857086412d85aa64fea6 Reviewed-on: http://gerrit.openafs.org/5804 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 8d0910be59975ef0e19c5d89fef4419700224bde Author: Jeffrey Altman Date: Thu Nov 3 16:39:18 2011 -0400 Windows: KFW_AFS should use API: ccache During the Heimdal transition that default ccache type was changed to FILE. Restore the use of API: ccaches. Change-Id: Idd8dfb46fc9167d8c1eb44466b76906a152eef9d Reviewed-on: http://gerrit.openafs.org/5802 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 100144f28bf166d59bfd6c58ede3bbf1923e5532 Author: Jeffrey Altman Date: Thu Nov 3 14:14:52 2011 -0400 Windows: Simplify KFW_AFS_klog Reduce the complexity of KFW_AFS_klog. Introduce KFW_AFS_continue_aklog_processing_after_krb5_error() and combine the input realm and realm_of_cell cases making use of the RealmName variable. Change-Id: I363544548652bc892f50dce00865e13e7d42de7f Reviewed-on: http://gerrit.openafs.org/5799 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f7adbd3d3977a328612c0f527d764566846593da Author: Peter Scott Date: Fri Nov 4 07:31:57 2011 -0600 Windows: Failed to release correct lock For cross-directory renames, the correct parent lock was not being tracked Change-Id: Ib50aad63f56cde638ff3bf1595d4495338c15f91 Reviewed-on: http://gerrit.openafs.org/5805 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit c59c07132ef17589ad3466ded418c1370539b7af Author: Ken Dreyer Date: Mon Oct 31 08:27:16 2011 -0600 doc: limitations of addsite on different partitions A user on the openafs-info mailing list noted that the Admin Guide is unclear about creating read-only replicas on different partitions on the same fileserver. Clarify the rules here. Change-Id: I8229b4fba36c128772bb8198e6b8310a51206c03 Reviewed-on: http://gerrit.openafs.org/5745 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit c0961b8d4103fab37c360461bcde30c56d24f483 Author: Heimdal Developers Date: Thu Nov 3 12:37:36 2011 -0500 Import of code from heimdal This commit updates the code imported from heimdal to ee7340860a22f81fb869cc431efc1fd4e5c77d34 (switch-from-svn-to-git-2542-gee73408) Upstream changes are: Jeffrey Altman (2): Windows: fallback to PROV_RNG if no PROV_RSA_FULL roken: posix errnos for windows Love Hornquist Astrand (3): drop __restrict to please old compilers add krb5_is_enctype_weak Don't export tests from library, reported in bug from Tom Payeire New files are: roken/setenv.c roken/unsetenv.c Change-Id: I7e3b3db2a58eaaae9de91431565176921d79af3b Reviewed-on: http://gerrit.openafs.org/5798 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 5eba97a8960c49aeea957dc94408368e1324eff0 Author: Andrew Deason Date: Wed Nov 2 11:35:42 2011 -0500 Solaris: Specify ARCHFLAGS in CFLAGS Various autoconf tests which use the C compiler may yield different results depending on whether or not we are compiling for x86 or amd64 on Solaris (different libraries are available, structures may be different, et al). So, set CFLAGS depending on which arch we are targeting, so the autoconf results are more consistent with the actual compilation during the build. Change-Id: I99ddefaabc3bb2e80abe698366b348238d51408d Reviewed-on: http://gerrit.openafs.org/5786 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 353aa7ef2c172f574998480d6d051b3f4e95ae7b Author: Andrew Deason Date: Wed Nov 2 11:32:56 2011 -0500 Do OPENAFS_OSCONF before compiler autoconf tests OPENAFS_OSCONF can set the C compiler we use, as well as changing various compiler flags. These changes can alter autoconf tests, so allow OPENAFS_OSCONF to change these before various autoconf tests are performed which require the C compiler. Change-Id: I8da7d10b227f230d1467c77845c0dbd4b48fa966 Reviewed-on: http://gerrit.openafs.org/5785 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 1d9888be486198868983048eeffabdfef5afa94b Author: Andrew Deason Date: Wed Nov 2 10:43:54 2011 -0500 Remove -settime/RXAFS_GetTime client support Remove the -settime option from afsd, and any code for making RXAFS_GetTime calls in libafs. Server probes have been replaced by calls to RXAFS_GetCapabilities, and the actual functionality of synchronizing the system clock has been superseded by other systems like NTP. Issue a warning for all code paths that try to enable -settime support. Historical note: the code that this commit is removing contains bugs. Do not simply revert this commit to turn on -settime support again. Change-Id: Id291f5f88b1ad84594706f2a1a02a933dddd0cb9 Reviewed-on: http://gerrit.openafs.org/5787 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9c130285d8f17a5e09bbe0b3c3b886ec3145bae9 Author: Michael Meffie Date: Thu Aug 18 17:04:14 2011 -0400 opr: queue swap Add inline function to pivot two queues. Implementation by Simon Wilkinson. Change-Id: I704a1ff3e0d6314e2bfe47c870226cb6ffd44b1b Reviewed-on: http://gerrit.openafs.org/5742 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fbf68f12592419a315f56585f9b8bb3a822bbc9b Author: Andrew Deason Date: Thu Nov 3 12:33:55 2011 -0500 external: trigger git commit-msg hooks on import When we import commits, the new commit does not have a Change-Id in the commit message. Usually a git commit-msg hook will be installed to automatically insert a Change-Id into the commit message if one does not already exist, so trigger the hook by performing a no-op 'git commit --amend'. Change-Id: Ie5e83c529b83c9f3d269df6742a59e965dbc6407 Reviewed-on: http://gerrit.openafs.org/5797 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 7ef5aeb608a390b6ac88d7e6748c5a1b4a65e0c5 Author: Andrew Deason Date: Thu Nov 3 12:27:22 2011 -0500 external: commit imports with --no-verify Currently, importing external commits with import-external-git.pl may fail if the current repository checks for whitespace errors, and the external commits contain whitespace errors. So run the commit with --no-verify, so we can make the commit before fixing up the whitespace errors immediately afterwards. Change-Id: I8c9c39550e118956aa847e0ec5c5b1181f42e6cb Reviewed-on: http://gerrit.openafs.org/5796 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 95038fde9a23b4550cbba38460f4668ca25b4f85 Author: Andrew Deason Date: Thu Nov 3 12:17:07 2011 -0500 Import setenv.c and unsetenv.c from roken Import the roken implementation of setenv and unsetenv, which are required on HP-UX. Change-Id: Ia91f407d696f3add27796bf9e2f5998717f4c825 Reviewed-on: http://gerrit.openafs.org/5795 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ed9bf9b55976c78cf24b43580d1752e81fe697b1 Author: Peter Scott Date: Wed Nov 2 19:29:00 2011 -0400 Windows: fix deadlock in symlink Attrib retrieval Commit df22620f66f5ce92776177d4d800fc7f4ae4ae99 introduced a deadlock when retrieving file attributes for symlink objects. To correct the deadlock, do not hold the Fcb locks during the AFSRetrieveFileAttributes() call. Change-Id: I8d3d2c5f54d4e5c97f690fd1fd6db62128317cf2 Reviewed-on: http://gerrit.openafs.org/5792 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d8f357b9838509c5a5cfa22a85dffcd962804025 Author: Jeffrey Altman Date: Wed Nov 2 19:27:42 2011 -0400 Windows: always set reparse point attrib for symlink Make sure that we always set the reparse point attribute for symlinks in directory enumerations and attribute queries. Change-Id: Ie7520cef64793e3385f229934189fc56a3edb584 Reviewed-on: http://gerrit.openafs.org/5793 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit e39e8bb5b2f08281bc1d91c9209a1a3f1b463af2 Author: Peter Scott Date: Wed Nov 2 19:25:36 2011 -0400 Windows: remember when a reparse point is opened If the mount point or symlink is opened as a reparse point we must remember that in the Ccb so that later reparse point processing can be implemented properly. For now remember with the CCB_FLAG_MASK_OPENED_REPARSE_POINT flag. Change-Id: I32997a85701a95a5be1402cdcd3335a938395760 Reviewed-on: http://gerrit.openafs.org/5791 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c7e2d8450117a947cb858bfdb4aedd668bd56bfd Author: Jeffrey Altman Date: Wed Nov 2 10:35:14 2011 -0400 Windows: Mount points are always directories Set the directory file attribute for all mount points since a mount point target is always represented as a directory. Change-Id: I57a8e44d1382093311e8263c18d55f22f2f745ea Reviewed-on: http://gerrit.openafs.org/5784 Tested-by: BuildBot Reviewed-by: Peter Scott Tested-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit df22620f66f5ce92776177d4d800fc7f4ae4ae99 Author: Peter Scott Date: Wed Nov 2 10:23:48 2011 -0400 Windows: Retrieve file attributes on symlinks When a component is a symlink, correctly retrieve file attributes during a query file information request. FIXES 130283 Change-Id: I0e9a576ca57acf9c65a5dc0eac8c9d65ddf6ab6f Reviewed-on: http://gerrit.openafs.org/5782 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit cddb3baa13b1c941533bee5cdf0873ca4563c9c1 Author: Peter Scott Date: Wed Nov 2 10:18:09 2011 -0400 Windows: add AFSRetrieveParentPath() Change-Id: Ic3da7f09f12f0e089b9561a542b2cf04ff61c98d Reviewed-on: http://gerrit.openafs.org/5783 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6fe9a1ea0f22ef31ede5a9a8bb052b4ee71e7be0 Author: Jonathan A. Kollasch Date: Tue Oct 11 12:56:08 2011 -0500 kdump-build: don't install when it hasn't been built for *bsd* Change-Id: Iac9df9eb199433127941590d24633dfe9bbc6815 Reviewed-on: http://gerrit.openafs.org/5596 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 3a9a5783cd1fd73902655f0876e2069b42688c94 Author: Jeffrey Altman Date: Fri Oct 14 08:10:19 2011 -0500 klog.krb5: enforce DES for rxkad 0. Always request a TGT regardless of the state of writeTicketFile. 1. request des-cbc-crc when requesting a ticket for an rxkad service principal 2. check the returned key length to ensure that it matches the permitted length of an rxkad key. If not, generate an error instead of overwriting memory and continuing. FIXES 130278 Change-Id: Ib7d27acc60c1b38dab4e2a56f83643477afb9721 Reviewed-on: http://gerrit.openafs.org/5619 Tested-by: BuildBot Tested-by: Andrew Deason Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit 4f4b805ae9107482aa39f2c3c0c4327e8466e2ac Author: Peter Scott Date: Tue Nov 1 08:55:37 2011 -0600 Windows: DE Reference count added during create A reference count is added under lock to a newly created DE to ensure it is not removed through deletion while in flight. Change-Id: If0955c4a6c4cf197a4e071f9c6022875aabb70bb Reviewed-on: http://gerrit.openafs.org/5775 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 96e313de3e040efffbb9b933b0b2ae15c9fd540c Author: Peter Scott Date: Mon Oct 31 18:10:07 2011 -0400 Windows: change AFSProcessUserFsRequest default Default the return code for AFSProcessUserFsRequest() to STATUS_INVALID_DEVICE_REQUEST instead of STATUS_INVALID_PARAMETER. Change-Id: Ie7fb260a19617635c11c92e2daf5947cef73c9be Reviewed-on: http://gerrit.openafs.org/5774 Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit ee8b6d34fa7d562f94469e2b8098ccc0507d5876 Author: Peter Scott Date: Mon Oct 31 18:07:23 2011 -0400 Windows: correct ordering of reparse point tests Test for whether an object is a reparse point before testing whether the provided buffer is large enough to hold the result if it is. FSCTL_GET_REPARSE_POINT FSCTL_SET_REPARSE_POINT FSCTL_DELETE_REPARSE_POINT Change-Id: If6c1b9b6e5853d7759f169943310321d408190e0 Reviewed-on: http://gerrit.openafs.org/5748 Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 94e9fceaa7ec343717b3fdc8610381832f532ebf Author: Peter Scott Date: Mon Oct 31 18:05:31 2011 -0400 Windows: log FSCTL_CSC_INTERNAL requests FSCTL_CSC_INTERNAL requests are not supported and will return STATUS_INVALID_DEVICE_REQUEST. However, log them for easier debugging. FSCTL_CSC_INTERNAL is defined in ntifs.h only for Vista and above. Since afsredir is built for XP and above its value must be conditionally defined by us. Change-Id: I39cf1f9d068d28ab6c9267c302d49feece6af700 Reviewed-on: http://gerrit.openafs.org/5773 Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 22f4e2945d3fa5b7802b7321ddaa35ef34b04a45 Author: Peter Scott Date: Mon Oct 31 17:59:51 2011 -0400 Windows: add braces to case statements A number of case statements did not have braces protecting the block. Add them. Change-Id: I313462ca0c7490931e7c994ec45e39be071e782b Reviewed-on: http://gerrit.openafs.org/5772 Reviewed-by: Rod Widdowson Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit af3dbb34a1ff226ac693c143f8e9d94ced4114c9 Author: Peter Scott Date: Sat Oct 29 13:55:46 2011 -0400 Windows: Directory Entry Processing Memory corruption was detected due to improper handling of directory entries and the short name b-tree during directory revalidation and tear down. The problem resulted in a BSOD most frequently when roaming profiles were written back to the file server or when multiple clients were actively modifying the contents of a directory simultaneously. This patchset makes a number of changes: . rename processing no longer handles collisions locally. the file server replaces a target atomicly when there is a collision. . directory validation is no longer delayed until a handle is closed . data version numbers are checked for implied invalidation Change-Id: Ib4b281bfb5da4b5a5ce735e85d85c50e15fbcde1 Reviewed-on: http://gerrit.openafs.org/5736 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit dac012a84b1fec9f2a5003e8cf45a7bdb8cb004a Author: Peter Scott Date: Sat Oct 29 13:29:55 2011 -0400 Windows: additional trace logging for afsredirlib A large number of addition trace log entries were added to assist in diagnosing problems in the dir entry processing. Change-Id: I85cab4d66680eb5b9c00843c49c33a81acb18bc2 Reviewed-on: http://gerrit.openafs.org/5739 Reviewed-by: Rod Widdowson Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 15d9654d7242e56a6bab9f8d61afa87b58c1c55f Author: Peter Scott Date: Sat Oct 29 11:34:07 2011 -0400 Windows: Reimplement AFSGenerateCRC() Replace the home grown CRC generation with a call to RtlHashUnicodeString() which is present on Windows XP and above. Change-Id: Id98a1223e0aad54b3c43a16653ab888ac883639f Reviewed-on: http://gerrit.openafs.org/5738 Reviewed-by: Rod Widdowson Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 4952df3f0359531e4a660c99c94c51eb0b169f59 Author: Marc Dionne Date: Sat Oct 29 19:23:07 2011 -0400 Linux: 3.1: update RCU path walking detection in permission i_op The permission() inode operation changed again with kernel 3.1, back to the form it had before 2.6.38. This compiles fine, but is missing the new way of detecting when we get called in RCU path walking mode, resulting in system hangs. Change-Id: I9a9a0c13aa3b35d8fe2bd592e2bca8187eacacc5 Reviewed-on: http://gerrit.openafs.org/5740 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d603e2a95252200f02ad8465815c5bac0b23b1e1 Author: Simon Wilkinson Date: Tue Jun 21 18:32:02 2011 +0100 rx: Remove the ADAPT_WINDOW code RX still has the remnants of an old mechanism for doing RTT and congestion window detection. This code is #ifdef'd out using the ADAPT_WINDOW define, but is pretty much unservicable these days, as it collides with the TCP style implementation (with ADAPT_WINDOW enabled, both will attempt to manipulate a connections RTT and window size) As the current TCP-style RTT and window calculation seem to work much better in deployment, and there isn't much hope for us being able to maintain two different congestion mechanisms, just remove ADAPT_WINDOW. It is in git, if we ever want it back (not that I think we ever would). Change-Id: I4a22354e362fde8021f7d8b19e099a0f7b4fba3b Reviewed-on: http://gerrit.openafs.org/5737 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 7a426424b7fb45659f6000a564e8c71a9108a33c Author: Jeffrey Altman Date: Fri Oct 28 17:43:24 2011 -0400 Windows: cm_Rename break in 9cf7a628c2ff178b2fa236d2c0a41ca9be315036 9cf7a628c2ff178b2fa236d2c0a41ca9be315036 broke renaming of a file to a name that does not exist. Put back the code that makes that possible with a comment. Change-Id: I6c13c0150d2366c9578502d0c8f6188bdc40a9c8 Reviewed-on: http://gerrit.openafs.org/5735 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 1dad690fc34fdd8d9df8a3be6d580441b7cae8bb Author: Jeffrey Altman Date: Fri Oct 28 11:36:10 2011 -0400 Windows: out of date version not in current chunk In buf_GetNewLocked(), the comparision to decide whether a cm_buf_t is a member of the current chunk must take the data version into account. If the data version is out of date, it is not part of the current chunk and is an object that can be safely recycled. Change-Id: Id8ca0a897a0a65efc1cabbe39107ca210b48bd4e Reviewed-on: http://gerrit.openafs.org/5734 Reviewed-by: Derrick Brashear Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 286ffa0d7c4d594ff107b70f9e930271c027a79e Author: Edward Z. Yang Date: Mon Oct 17 23:16:15 2011 -0400 linux: Update Packaging to build OpenAFS services for Fedora's systemd Fedora 15 now uses systemd (see http://fedoraproject.org/wiki/Systemd) for the OS init system. While it currently has backwards compatibility with older SysV-style init scripts, future versions of Fedora may no longer support it, and OS startup tends to be faster with the systemd service units. Also, systemd runs all the service's processes within a linux kernel cgroup. (see http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt) This change includes an openafs-client.service and openafs-server.service unit files for the client and server packages respectively. Client - Loading the openafs module was moved into /etc/sysconfig/modules/openafs-client.modules. This causes the OS to load the module on boot. This is the preferred way for modules to be loaded with Fedora. (See http://docs.fedoraproject.org/en-US/Fedora/15/html/Deployment_Guide/sec-Persistent_Module_Loading.html for more details) - The CellServDB file is generated with sed rather than cat. This change was made because Systemd doesn't execute as a shell script, but rather executes processes directly. Rather than invoking a shell to concatenate the CellServDB.* files, they're written to the CellServDB file using a sed oneliner. - Do all of the proper kernel module loading and unloading. Server - Since systemd uses cgroups, when the service is shut down, all processes in the openafs-server.service cgroup will be terminated. The other changes are standard as per: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd Original version by Jonathan Billings . Signed-off-by: Edward Z. Yang Change-Id: Ifb41790ffe107b319097b9750273aecfe82c3349 Reviewed-on: http://gerrit.openafs.org/5637 Reviewed-by: Derrick Brashear Reviewed-by: Alex Chernyakhovsky Tested-by: BuildBot commit 9743f5729d1a55513e861bb1334599a8e597de6b Author: Jeffrey Altman Date: Thu Oct 27 17:57:25 2011 -0400 Windows: only flush buffers on shutdown if running If a service shutdown message is received prior to the service entering the running state, do not attempt to buf_CleanAndReset() because the required data structures and locks are not initialized. Change-Id: I29f20dbe91230f078334ca58e8791d2422cdecfd Reviewed-on: http://gerrit.openafs.org/5733 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9cf7a628c2ff178b2fa236d2c0a41ca9be315036 Author: Jeffrey Altman Date: Tue Oct 25 15:32:11 2011 -0400 Windows: Do not EEXIST exact match during rename AFS Rename operations on the file server will delete a target file if it exists. Do not prevent renames because an exact match of the target name exists in the target directory. Change-Id: I680f8886575a9276a8df05965d14bbe7f24fba5d Reviewed-on: http://gerrit.openafs.org/5731 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 8fce3848d94f9717323bbd5dc51a9d18956fa2b5 Author: Jeffrey Altman Date: Tue Oct 25 15:42:44 2011 -0400 opr: build on Windows after queue.h move 55efff93fe2762b58dc70cdd20aaf97e39825929 broke Windows. update the NTMakefile in src/util and src/opr to correspond to the move of queue.h. Change-Id: I3379c131ee39758a36cf8574aff5766f79497236 Reviewed-on: http://gerrit.openafs.org/5732 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 241d3d54cebfc661cfaec6d21de091d906df3d08 Author: Rod Widdowson Date: Sat Oct 22 16:46:26 2011 +0100 Windows: Look for 8.3 name when doing a rename If we are doing a destructive rename we need to find whether the target file exists. This is done in the usual way (case sensitive case insensitive), but the short name is not looked for. This means that the rename of a file to a short name will not supersede correctly; rather the service refuses the rename since the target existed already. This patch looks the target name up in the shortname tree if the target name is short and all else has failed. Change-Id: Ie054516a378edf52938d3465143a16107a99c0f6 Reviewed-on: http://gerrit.openafs.org/5652 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 159003395a6183266ad9672f12482b1cba6ba0ff Author: Peter Scott Date: Thu Oct 20 14:39:31 2011 -0400 Windows: New Trace for DirEntry tracking problem Incuded in this patch is additional trace for logging how directory entries are added, modified and deleted throughout the redirector Change-Id: I7ea80331ca24d543579603986f4eb6bcdd0bf072 Reviewed-on: http://gerrit.openafs.org/5640 Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f0cc4c5dd0c03e4074fc70583215e590623e2414 Author: Jeffrey Altman Date: Mon Oct 17 09:29:37 2011 -0400 Windows: Free work item memory with tag value For consistency throughout the source module, free all work item memory allocations with ExFreePoolWithTag. Change-Id: I4e9b275bb8b92a81884d36ce4c8ed754d281bbf8 Reviewed-on: http://gerrit.openafs.org/5627 Reviewed-by: Jeffrey Altman Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman commit d5a6a895e3b004666b0d6aaa9fe4313b0a831dbd Author: Jeffrey Altman Date: Mon Oct 17 09:28:11 2011 -0400 Windows: free pointer after last reference This is a superficial change but is being done for readability. If given the choice of freeing memory and then testing the pointer value or vice-versa, test the pointer value first. Change-Id: I189851c265a257d433df111622837db1d706c054 Reviewed-on: http://gerrit.openafs.org/5626 Reviewed-by: Jeffrey Altman Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman commit ada5908ca1ed8cfa7bfc42890ac5edc73769ae4c Author: Jeffrey Altman Date: Mon Oct 17 09:26:13 2011 -0400 Windows: AFSInitPIOCtlDirectoryCB free in try_exit Process all conditional release of allocated memory on failure within the try_exit on failure. Change-Id: I4a29f6e9d2506c00713558849c49c377a74d607a Reviewed-on: http://gerrit.openafs.org/5625 Reviewed-by: Jeffrey Altman Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman commit 782fba58db1210e998ef9c6a50803262ac256812 Author: Jeffrey Altman Date: Tue Oct 25 13:30:19 2011 -0400 Windows: close leak in AFSPrimaryVolumeWorkerThread Prevent a leak of the non-paged pool and a Resource by freeing all allocations within the Specific.Directory.PIOCtlDirectoryCB object. Use AFSExFreePool() instead of ExFreePool() because the objects are allocated from the AFSRedir.sys driver allocator. FIXES 130280 Change-Id: I3b1c8fa838cfdf434bf7c08bb8935999cf328357 Reviewed-on: http://gerrit.openafs.org/5730 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 61b04b19ad4bf2c62ec4309efeba4f442a54d8f2 Author: Jeffrey Altman Date: Mon Oct 24 21:14:59 2011 -0400 Windows: afsredir only wants shortName if not 8.3 When performing a directory enumeration for the afs redirector only specify a shortname if the name is not valid 8.3. Change-Id: I650be75b9ea8e41721272cd8bd426f1989ca01fb Reviewed-on: http://gerrit.openafs.org/5727 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 219624206ddee454e6bcbac7da7fe2fe632e39a7 Author: Jeffrey Altman Date: Thu Oct 20 14:06:47 2011 -0400 Windows: Use SetFlag macro when setting flag Change-Id: Ibda7ac5e30a623dc26f031831e75380fdf700a88 Reviewed-on: http://gerrit.openafs.org/5642 Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit e21a063217f99ac441bb65c7e1f628de2a0fbb68 Author: Jeffrey Altman Date: Thu Oct 20 14:05:59 2011 -0400 Windows: minor type in trace output Change-Id: I72b348dea83547260575c0bd2aca327ea4f72532 Reviewed-on: http://gerrit.openafs.org/5641 Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 81bfacca545e7394a13baa569a6b7c894fc36bde Author: Peter Scott Date: Tue Oct 18 10:04:48 2011 -0400 Windows: AFSRemoveCaseInsensitiveDirEntry corrections If there is a fLink but no parentLink for the DirEntry being removed, return the fLink as the new value for *RootNode. This patch set also includes two changes that improve readability but do not alter the behavior. Change-Id: I112265798df9d46c83ffacddc7d97ad0f6fce5bf Reviewed-on: http://gerrit.openafs.org/5638 Reviewed-by: Rod Widdowson Reviewed-by: Peter Scott Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 46a96ee06582178eb88e8ca1c7fbb33fae79b403 Author: Jeffrey Altman Date: Mon Oct 17 09:22:53 2011 -0400 Windows: AFSEvaluateTargetByName free buffer if no return For consistency with other functions in AFSCommSupport modify AFSEvaluateTargetByName to free the DirEntry on completion if the caller has not provided an out parameter to accept it. Change-Id: Ic5b6cc655fd47b95493e6aadb7b23481d0187d5c Reviewed-on: http://gerrit.openafs.org/5624 Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit c780a9bc2849e25e3ac84f9f674348b8cdd942ff Author: Jeffrey Altman Date: Mon Oct 17 09:19:33 2011 -0400 Windows: remove unused code block A small bit of dead code in the redirector. Change-Id: Ieeea58e7681e8b0bd043794f1aa51c112c212497 Reviewed-on: http://gerrit.openafs.org/5623 Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 9c723e7a514ee4f809348ec79e2124cf3a38d895 Author: Jeffrey Altman Date: Mon Oct 17 09:10:17 2011 -0400 Windows: re-indent afsredir log message params convert tabs to spaces for consistent indentation make use of braces be consistent Change-Id: I76e2c6427c02cb50f1eb4e6ab57e484a4bfa3c65 Reviewed-on: http://gerrit.openafs.org/5621 Reviewed-by: Jeffrey Altman Reviewed-by: Rod Widdowson Tested-by: Jeffrey Altman commit 2a7795aa565dfa4e371f806b799ce6a01a2db6c9 Author: Rod Widdowson Date: Sat Oct 22 15:00:03 2011 +0100 Windows: Defer deref of a directoryEntry During the handling of SL_OPEN_TARGET opens (usually associated with a rename) a directory entry was deferenced prior to its contents being used (to set up a seconding inforation field). This change just holds on to the reference until after that processing. Change-Id: I26dbd4bfb6595863109e549893f2367f71ad6404 Reviewed-on: http://gerrit.openafs.org/5651 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 9824a53aea25a150f770e6b37536aa5fd7eb87df Author: Rod Widdowson Date: Fri Oct 21 16:57:02 2011 +0100 Windows: Set new file index correctly during rename Directory entries are required to have a file index which is used during directory enumeration. When inserting into a new directory we have to update this from the target directory. This code fixes a bug whereby it was being set from the source FCB, rather than the target one. On failure we now also reset the value to its old value. Change-Id: I726dd2e7ecc84e4a8b28f1f551c89fc6e815d853 Reviewed-on: http://gerrit.openafs.org/5646 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 83c41c69411ece7ac1dd0a7b15d4ee9746edcf23 Author: Jacob Thebault-Spieker Date: Tue Jul 19 15:01:26 2011 -0700 allow cloning of any volume to any volume with same parent ID remove checks to disallow cloning of ro volumes to rw volumes, which allows cloning of any volume within the same parent ID grouping, including allowing destruction of newer version of the volumes. Change-Id: I13f600c33934b9af8237f049225d6bacfbbb5690 Reviewed-on: http://gerrit.openafs.org/5049 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4e1a65ba7edec519acc67f0dcf2237a0f26e92aa Author: Jacob Thebault-Spieker Date: Tue Jul 19 09:02:49 2011 -0700 remove check for disallowing clones of backup or ro volumes removes the if-statement ensuring that the volume being cloned is not a backup volume, nor a read-only volume. This allows clones from any type of volume to a given volume. Parent volume meta-data is maintained, only the cloneId value changes. Change-Id: If8444fcabc9b9106db7db7df881ae07e8d287915 Reviewed-on: http://gerrit.openafs.org/5046 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit ac88af748e25a40d062c888396aab8670ff8426a Author: Michael Meffie Date: Thu Oct 6 08:33:37 2011 -0400 bozo: build notifier sample program Build the smail-notifier sample program. Change-Id: Ida2fd16e486934c984b2431c95c3a24966b3b2b7 Reviewed-on: http://gerrit.openafs.org/5555 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e7302bcc9c4aa6f1e6a1ae8e5b498bcb0540aac9 Author: Michael Meffie Date: Thu Oct 6 07:55:21 2011 -0400 bozo: test program update Add -file option to test program to simulate program crashes. Change-Id: I1ba14152438e2f857fdf5d181023266b3ab64fa3 Reviewed-on: http://gerrit.openafs.org/5533 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4552dc552687267fce3c7a6a9c7f4a1e9395c8e5 Author: Andrew Deason Date: Mon Aug 29 17:41:31 2011 -0500 DAFS: Remove VOL_SALVAGE_INVALIDATE_HEADER Currently VRequestSalvage_r takes a flag, VOL_SALVAGE_INVALIDATE_HEADER, which causes the header for the specified volume to be freed (via FreeVolumeHeader). This is almost never safe to do, since there may be other users of the specified volume that can be accessing the volume header at the same time. There is also no reason to invalidate the header at the time of the VRequestSalvage_r call, since the header must be invalidated when we detach the volume (other utilities may change header information). So, if there are any problems in the future because we do not invalidate the header at the time of VRequestSalvage_r, it is the fault of the detachment/offlining logic. So, remove VOL_SALVAGE_INVALIDATE_HEADER and all of its users. Take this opportunity to correctly document the VRequestSalvage_r headers in the VRequestSalvage_r comment, as it was previously missing the VOL_SALVAGE_NO_OFFLINE flag. Change-Id: I65c4cc0e81171aafa7b78ae9e1f503edb2f3f2c3 Reviewed-on: http://gerrit.openafs.org/5319 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit d171a5e059566cc99c5dd980039dd56233f91a67 Author: Michael Meffie Date: Thu Oct 13 12:23:35 2011 -0400 DAFS: fssync online requires a partition name argument fssync-debug online silently fails when run without a partition name. Check for the required partition name on the server side and the client side. Report errors back to the client when the server side fails to pre-attach the volume. Change-Id: I454b202ac83893b1ee54d586a46d891773090a64 Reviewed-on: http://gerrit.openafs.org/5615 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 87f969f82d12c8200ede3fd30a151e09ab0bf6ad Author: Andrew Deason Date: Tue Oct 11 10:51:14 2011 -0500 volser: Remove ExtractVolId volser was using its own function to extract a volume ID from a filename string, and was using atol to do so. The ato* family of functions can have problems with larger volume IDs, not to mention a lack of error checking, so don't use it. Since we already have the function VolumeNumber in the vol package to do the very same thing, just use that instead. Change-Id: I40953d3533454503583685eb3adeb0079137c8a1 Reviewed-on: http://gerrit.openafs.org/5594 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit b5a153fb75bb6642490e9856dc6212244a590301 Author: Andrew Deason Date: Mon Oct 3 13:10:44 2011 -0500 viced: Check for HOSTDELETED in stillborn check h_FindClient_r checks the connection rock for a client object twice. First it sees if we already have a client object, and if we don't, we effectively create one (or find a suitable one). Then we check again, to see if someone else set the rock while we were creating a client structure. Currently, the first check checks if client->host->hostFlags has HOSTDELETED set, but the second check does not. So, if the host associated with the client has been deleted by someone else, currently we will unnecessarily log a "stillborn client" message, and we will continue to use the deleted host. If the host continues to be held by someone, we will run into the same situation repeatedly on future requests until all of the host references go away. To fix this, also ignore HOSTDELETED clients when performing the stillborn race check. Change-Id: Id72e83cb55b99a686d4179905116592e80eb9ac7 Reviewed-on: http://gerrit.openafs.org/5614 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 13a4642458254e6bdbfa6fd8e165c270f567a1aa Author: Andrew Deason Date: Thu Oct 13 11:45:58 2011 -0500 vlserver: Log to VLLog by default, not PtLog Change-Id: I25c13a4461fc5a6ba2809b6937cbc18ed9c6ed53 Reviewed-on: http://gerrit.openafs.org/5616 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 8c7202fb9ea9cf5e5c888000ec84fd9b7478068d Author: Andrew Deason Date: Fri Oct 14 11:32:34 2011 -0500 vos offline: Bring volume back online for -busy vos offline is supposed to bring a volume back online from "busy" status before exiting, as volumes should not be in "busy" status for extended periods of time. This was being enforced by required that -sleep be specified; however, -sleep only results in the volume being brought back online if a non-zero sleep time was specified. So, make sure the volume is brought back online if -busy was specified. Change-Id: I6e605771fcfcabbb09f6dcfd0576c062f64ad93f Reviewed-on: http://gerrit.openafs.org/5620 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 547d94edd3affb5f377cd1b3db39c46ca0cf5aec Author: Marc Dionne Date: Sat Oct 22 09:32:33 2011 -0400 cache bypass: don't define iovecp for UKERNEL iovecp is defined but not used for UKERNEL. Define it conditionally to avoid gcc warnings and --enable-checking failure. Change-Id: I109ada36d0ab75e8a477498900dfaf85589e20e2 Reviewed-on: http://gerrit.openafs.org/5650 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit f715ebaee4188300ecee57109512609c7c84cf98 Author: Rod Widdowson Date: Sat Oct 22 14:27:41 2011 +0100 Windows: Remove unused cleanup flag In AFSOpenTargetDirectory the flag bRemoveShare was initialized FALSE and never set TRUE. In teardown after failure some code did listen to the flag, but the operation (IoRemoveShareAccess) was not protected by the FCB mainlock which it should have been. Rather than get the locking correct, just remove the flag entirely. Change-Id: I097f15bb0903f3c0889b62427d2169cf84aa04a0 Reviewed-on: http://gerrit.openafs.org/5649 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4b817cbb520872e69b01e5675f9037d8948d0ade Author: Derrick Brashear Date: Sun Oct 23 19:15:16 2011 -0400 bypasscache: allow arbitrary sized iovecs instead of binding outselves to PAGE_SIZE, just fill any size Change-Id: I01385df372ac2bda6d8ea24381bf38102c12615f Reviewed-on: http://gerrit.openafs.org/5658 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 28a159b2bfff7ad450dce612601a0286d4f91df5 Author: Derrick Brashear Date: Thu Oct 6 04:04:36 2011 -0400 bypasscache: do errors correctly do set errors when we bomb out early do not unlock and return early when we happen to do a correct zero length read do set errors the kernel can deal with if we're feeding a page routine Change-Id: I1dca1f9e3b0f3d24da3e4f55b473775a737370b4 Reviewed-on: http://gerrit.openafs.org/5554 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 6f59c71988d75f76750c46adb11cda7e9189d5f3 Author: Derrick Brashear Date: Tue Oct 11 15:37:57 2011 -0400 ukernel: get an ip address even when dns and hosts suck gethostname plus gethostbyname being useless make things fun make things less fun Change-Id: I5595698b0b7f2448b8c86448bedd8b16ab088510 Reviewed-on: http://gerrit.openafs.org/5600 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 7829e7152361c38a22a7ba4c11e4f614e4392d60 Author: Marc Dionne Date: Sun Oct 23 22:45:21 2011 -0400 dir: add missing return in DRead A missing return in the kernel version of DRead causes the code to think that no entry exists for a dir and proceed to allocate a new one, if the entry is the third one in the hash chain. If the existing entry is dirty, its contents are never written back, and the pending changes to the directory are not seen by the client. Change-Id: I8b0f86b04d6ac8f75720933308a0983810974ff4 Reviewed-on: http://gerrit.openafs.org/5666 Reviewed-by: Simon Wilkinson Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 2aaa540276f5b5a0c368e44d8fd04b32c4632c3f Author: Simon Wilkinson Date: Sun Oct 23 17:41:27 2011 +0100 tests: volser doesn't need rxgk yet An rxgk dependency has crept in to the volser tests. Remove it for now. Change-Id: I0439ab5cf6deb335ebe76fb5a6736c9905312eec Reviewed-on: http://gerrit.openafs.org/5665 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fd5174d918a5d75f64b122c8433a3c431cb8e454 Author: Simon Wilkinson Date: Sun Oct 23 17:40:20 2011 +0100 tests: Add opr library for ktime test The ktime tests need libopr for the lcstring routines. Add the dependency. Change-Id: I6902537236fbf35a654a3a4d70fa8f2df89e2a92 Reviewed-on: http://gerrit.openafs.org/5664 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c2ada637b9410f18b3d4f3a96b5347a4f71b4851 Author: Simon Wilkinson Date: Sun Oct 23 19:09:32 2011 -0400 rpm: Add new libraries Add the new libopr.a and libubik_pthread.a libraries Change-Id: Ia91c67d72f1ac98060af60b6535db008911d3b1a Reviewed-on: http://gerrit.openafs.org/5663 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 1de23d1fe5d64c8f5e8f24579c0926fabdaace92 Author: Simon Wilkinson Date: Sun Oct 23 19:07:33 2011 -0400 rpm: Turn on debugging Now that we build with a blank CFLAGS line, we need to make sure and actually turn on debugging in the build system, so that our debuginfo files are vaguely useful Change-Id: Ic2ebd0ebe866d511c4b0aef15845a85d95bacb5b Reviewed-on: http://gerrit.openafs.org/5662 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d88682e803912451880c3a9c2b07a01abaebe984 Author: Simon Wilkinson Date: Sun Oct 23 17:49:08 2011 -0400 roken: Add *progname() to shared library exports Add rk_getprogname and rk_setprogname to the set of shared library exports in libroken Change-Id: I1fd26c59b26a256b2070bfdc14dfaa5f82fb8002 Reviewed-on: http://gerrit.openafs.org/5661 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 5743c96bdea2e9aafeeeec3a1b4377d8860ef437 Author: Simon Wilkinson Date: Sun Oct 23 21:23:34 2011 +0100 rx: Define afs_kmutex_t for LWP too afs_kmutex_t is used for lock definitions in the kernel, and in pthreaded builds. LWP doesn't have any equivalent, and all structure members using this type have to be protected with RX_ENABLE_LOCKS, which starts to become untidy. Just make afs_kmutex_t an int for LWP, so that we can simplify our headers, at the expense of some additional storage on LWP builds (which are going away at some point, anyway) Change-Id: Iaa5683bdfd932c78a9a5d35b8a4530cecf5bdb37 Reviewed-on: http://gerrit.openafs.org/5660 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3f938315adc08936024eb86678745dd85d2a092d Author: Simon Wilkinson Date: Sun Oct 23 16:38:13 2011 +0100 dir: Don't leak a buffer on a failed Enumerate If, for some reasons, Enumerate encounters a hash object with a NULL buffer pointer, that's no reason to leak the hash object. Make sure that we DRelease it before failing Change-Id: I9ba6c69ca524937a6068d33a0ec0a90eef5b88ea Reviewed-on: http://gerrit.openafs.org/5659 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit a9924ba433f81bfbfc2c0e726f2be06d460e4d56 Author: Simon Wilkinson Date: Wed Oct 12 09:50:18 2011 -0400 rx: ackall handling If we ACKALL a stream, then we're sending a hard ACK for all of the packets in the stream. We shouldn't send that hard ACK, and then a load of soft ACKs for packets that don't actually exist. Change-Id: Ibe0c76b4e92c5baa8801cfd12f961fabce223039 Reviewed-on: http://gerrit.openafs.org/5604 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 6cb6bcc208a0ebb57325522ed764c7bf4bf6104e Author: Andrew Deason Date: Fri Oct 21 15:05:06 2011 -0500 LINUX: Fix afs_linux_pag_to_groups signature "new" is a struct group_info**, not a struct group_info* Change-Id: I606afce74be6820b99b151b6077cf23d06e8e2d6 Reviewed-on: http://gerrit.openafs.org/5648 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit ee2fbffb04bb8b5098354646e262afa90c1b6f59 Author: Andrew Deason Date: Fri Aug 12 14:50:26 2011 -0500 LINUX: Revert group changes on keyring failure On Linux kernels that support keyrings, when we setpag we try to add the PAG to the session keyring and to the supplemental group list. Currently, if we fail to add the PAG to the keyring (which may happen due to key quotas, or possibly other reasons), we return failure but the group list is still modified with the new PAG in it. Therefore, if the keyring-based approach fails, the new PAG may still be in use, but there are no keyring keys associated with that PAG, so the PAG may never get destroyed. This can cause a large number of PAGs to accumulate over time, causing performance problems. So, change this so that, in the event that keyring installation fails, we revert the group list back to what it was before we touched it. Also mark all unixusers with the new PAG as expired, in case one got created during processing. Thus, the new PAG never gets used. Change-Id: I61993edf705209e1a5d8dee638a9003690017c35 Reviewed-on: http://gerrit.openafs.org/5238 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit dd831c09602f1ef16cc7dece84aeff638cce7272 Author: Andrew Deason Date: Thu Oct 20 16:57:14 2011 -0500 viced: Do not swallow errors on StoreData recovery When we encounter any error in the StoreData fetch/store loop, we reset the disk usage to ensure it remains correct, even in the face of unexpected errors. However, when we do so, we use the errorCode from VAdjustDiskUsage as our return value; if it is 0, we return success, ignoring the error that got us in this code path in the first place. Instead, keep track of a temporary errorCode for the disk usage adjustment, and do not override our return value if there was no error in the disk usage numbers. Change-Id: Ifbe2377f2750b508d48e535215be3583d1d78e65 Reviewed-on: http://gerrit.openafs.org/5645 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 55efff93fe2762b58dc70cdd20aaf97e39825929 Author: Simon Wilkinson Date: Sat Oct 22 09:43:41 2011 +0100 opr: Move queue header out of util Move the header which is installed as opr/queues.h out of util/ and into the new, top level, opr/ directory. Similarly move the tests out of the util/ test suite, and into the opr/ tests Change-Id: I81af487f09e1f0f4b25654a1f64c5ac75fd5a95b Reviewed-on: http://gerrit.openafs.org/5656 Reviewed-by: Derrick Brashear Tested-by: Simon Wilkinson commit ab866c821a705d7911e0ff8ac987249efdc63435 Author: Simon Wilkinson Date: Mon Oct 10 19:01:26 2011 -0500 dir: Remove double release in FindBlobs When DRead() fails, we DRelease the entrybuf, then break. However, this break takes us to the end of the function, where we promptly DRelease again, causing a double free Change-Id: I5a0293990e01376525d8adae25477c64e2cc93ad Reviewed-on: http://gerrit.openafs.org/5655 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 69f54d474827548375c0bd39a87ac7ec376b6d9b Author: Simon Wilkinson Date: Wed Oct 12 09:44:37 2011 -0400 linux: makesrpm should cope with releases with letters don't just deal with numbered releases. Change-Id: Iab97e4a7bebebf97d367243501aaf2a0b4b0476c Reviewed-on: http://gerrit.openafs.org/5602 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 488c7c97854a4bd0ec67bcfe17df93b3fd025f88 Author: Derrick Brashear Date: Wed Oct 12 14:34:55 2011 -0400 afs: don't try GetDownD if nothing to get if we "need" negative slots or caches, don't run. also, don't stay "too full" Change-Id: I29ef8d5fd9844a878d0c804d06aed5862a2d0df4 Reviewed-on: http://gerrit.openafs.org/5612 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 796de9fb43857acccbd51e2af7c8d67eea90fdc5 Author: Simon Wilkinson Date: Wed Oct 12 15:26:23 2011 -0400 ukernel: don't define rdwr env on linux We're not vm rdwr env in ukernel. Don't claim we are, otherwise we will never push chunks out to the fileserver when our cache is full Change-Id: I1c52ef502d42a4a2b63e786471fa487b88712e9d Reviewed-on: http://gerrit.openafs.org/5613 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 7ae1921b76750ef28258777cf1b233c4917663d7 Author: Derrick Brashear Date: Wed Oct 12 13:09:42 2011 -0400 ukernel: set pthread stacksize to an integer multiple of 8k because some pthread stacks require this to be in units of page size, guess that page sizes will be 4k or 8k, and use the larger as a divisor Change-Id: I9f89f7e32e2a70e12f1ed7a7fb86cab171b61e07 Reviewed-on: http://gerrit.openafs.org/5606 Reviewed-by: Derrick Brashear Reviewed-by: Simon Wilkinson Tested-by: Derrick Brashear commit eead07418f13cd87a90770f03ea5118c546d8f1a Author: Simon Wilkinson Date: Wed Oct 12 13:04:28 2011 -0400 ukernel: add morepackets check in listener Make the listener loop actually check for more packets needed, like kernel, pthreads and lwp. Only checking for new packets every 20 seconds isn't sufficient on today's networks! Change-Id: I80319cfd9d540c9a56b0dd8d948a380665426409 Reviewed-on: http://gerrit.openafs.org/5605 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 9f68e0dd31ddb7bf69ea8ac13b3afe371dd6b7cb Author: Derrick Brashear Date: Tue Oct 11 15:21:12 2011 -0400 afs: on uuid init fail, don't leave garbage behind make sure we zero the uuid if we failed Change-Id: I9d21e003b68eff0ce9bea4634c601c4663a0c078 Reviewed-on: http://gerrit.openafs.org/5599 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 87dcfc872c11fdb13ebf0448abe91150aaa86859 Author: Derrick Brashear Date: Tue Oct 11 14:32:04 2011 -0400 ukernel: set close-on-exec on our socket if the process we are in execs a child, it doesn't get our socket Change-Id: Iaf1831866e0dcda0449e75d89c576557c61090dd Reviewed-on: http://gerrit.openafs.org/5598 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit f722a75fe21963d64217375f1f7bbb0eb14befb4 Author: Simon Wilkinson Date: Wed Oct 12 09:47:14 2011 -0400 rx: Don't clear the receive queue when out of packets We can end up discarding a receive queue that's been soft acked, effectively taking back soft acks we sent. Whilst the RX documentation says that a client can drop soft acked packets at will, our RX implementation assumes that if the final packet in a call has been soft acked, we won't clear the queue. If a client clears the queue in this situation, the call will hang. What *should* happen is that we should take necessary locks, confirm that we have not soft-acked all of the packets in a flow, and then discard, or, if we're just going to discard, error the call. Change-Id: Ic8e358b8648c1a6f0154009093468531a9e3cf74 Reviewed-on: http://gerrit.openafs.org/5603 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 735873d51512bc31134856c06345bb7caf9d8144 Author: Andrew Deason Date: Thu Apr 14 15:36:50 2011 -0500 auth: Get correct viceid in legacy GetToken When ktc_GetTokenEx needs to get tokens via the legacy ktc_GetToken interface, it was not extracting the viceid. Make it set the viceid so the caller gets the correct id. Normally this would require parsing the given client name. To reduce the amount of times we store and extract the viced from the "AFS ID %d" string, create a helper GetToken function that can store the viceid directly, without storing it in a string. Change-Id: Ib03a419aee6eaed3b253c4d5d575d4dd8d3b8ddc Reviewed-on: http://gerrit.openafs.org/4482 Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 59b47fba3fa7cf13ef82463c5112851f7bdaf2ec Author: Andrew Deason Date: Thu Apr 14 15:05:37 2011 -0500 auth: Force correct evenness on rxkad tokens Rxkad tokens historically have forced odd lifetimes when the given viceid is actually an AFS ID, and even lifetimes when it is not. Force this when the new token-handling functions are used (so the viceid is correctly interpreted by users of the old token format), by creating rxkad tokens with token_importRxkadViceId. Slightly reworked by Simon Wilkinson to provide a generic token destructor function. Change-Id: I9f6aa518b8ae51a3772b69a0722a28bff6b47128 Reviewed-on: http://gerrit.openafs.org/4481 Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit c37a14697df291f641b4fa5a32826054d92210b0 Author: Simon Wilkinson Date: Mon Oct 10 17:19:13 2011 -0500 docs: Refer to dafs binaries by their real names (Most of) the dafs binaries are called da(something). Update the example in the dafileserver documentation so that we call the binaries by the names that they are actually installed with on the system. Change-Id: I05906758aa2b00ea7bc7f9be10414c8ad1a5a11a Reviewed-on: http://gerrit.openafs.org/5654 Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit 7a4498850814ea524f55de0b84d6b0ae0b4834bb Author: Simon Wilkinson Date: Mon Oct 10 22:09:40 2011 +0100 ptserver: Don't check for noauth before rebuilding The ptserver database building scripts would check to see if the server was running from a bosserver with the noauth flag set before performing a database rebuild. This means that you can't start ptserver normally, and then configure the database using pts -localauth, which is the preferred method for configuring new cells. Remove the check for noauth. This is slightly risky, as it means that a corrupt database could be completely erased upon restart. However, we already check that the dbheader (65k) is entirely blank - which will protect us against any single page corruption errors. Change-Id: I45dbb53d7f80b0b307f88941cb1e061967fcac81 Reviewed-on: http://gerrit.openafs.org/5653 Tested-by: Simon Wilkinson Reviewed-by: Derrick Brashear commit ca8ba7e7a41e61cc943b34196872b72a190432e3 Author: Ben Kaduk Date: Sun Oct 23 11:22:07 2011 -0400 FBSD: typo fix Gerrit/5572 added conditionals on __FreeBSD_version >= 900044, which is (approximately) when a bunch of kernel API renames happened. (There has since been a dedicated version bump to 900045 a month or two post-facto, but 900044 should be fine for now.) However, 900044 is not 90004. Change-Id: I566186a7b53fd3b605a0f531e241eaf54a96bba3 Reviewed-on: http://gerrit.openafs.org/5657 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1b32b4800b1dd8985c1554453354e683a66c9ab5 Author: Rod Widdowson Date: Wed Oct 12 11:04:33 2011 +0100 Windows AFSRDR: Log before decrementing refcount The library support package keeps count of the number of times the library code is active. When this goes to zero this means that unload of the library can continue. Although I cannot see it in the code it seems reasonable to assume that at that stage the device object might go away so (and if it doesn't do now it may in the future). This potentially renders it unsafe to do anything after InflightLibraryEvent has been signalled. This patch moves the logging up to above the decrement of the refcount. Change-Id: I9493d970cec4a025ca9e4c5542e2d838c87f7817 Reviewed-on: http://gerrit.openafs.org/5601 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit da9044cff966736bc064166a7136c94c0bfc1e5f Author: Derrick Brashear Date: Tue Oct 11 14:03:29 2011 -0400 ukernel: don't enforce thread lockers in remove vop we enforce locking by pid. when we are ukernel, MyPidXX is stupid. don't bother. Change-Id: Iddefd5d63edd6cc35a3c8112cb2cfbf3d47031aa Reviewed-on: http://gerrit.openafs.org/5597 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 75179d50eae3258e8baa0a4c9f069fcd11d08260 Author: Derrick Brashear Date: Mon Oct 10 17:56:20 2011 -0400 ukernel: install our sysincludes to root.perf otherwise, we can't actually include sysincludes from something linking libuafs Change-Id: Ia6565dda8390ef6510aa2170e36ff12ddb19fc9b Reviewed-on: http://gerrit.openafs.org/5593 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 3eb60908a1f9b3f2783ec3f7755b242bff3d573d Author: Derrick Brashear Date: Mon Oct 10 16:35:45 2011 -0400 ukernel: add uafs_access we don't have an access vop. add one. Change-Id: I813fb941608b5e49a0f23730414854602630fdee Reviewed-on: http://gerrit.openafs.org/5589 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 0676dc9e0c59e8aee3db5e0a7b4acf7229da7b88 Author: Derrick Brashear Date: Mon Oct 10 16:57:35 2011 -0400 volinfo: fix bad format string we need a format string; currently here we have none, which is no good Change-Id: Ib097100383dba9d56056b96c5322734abb765f9d Reviewed-on: http://gerrit.openafs.org/5591 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 3df03f0abe3e706eaba57e4d9d8c46f2f4d7414c Author: Hartmut Reuter Date: Wed Oct 5 10:06:05 2011 -0400 vol_split: avoid using stale open directory vnodes we could in case of multiple splits end up using a stale open vnode for a directory; attempt to close and thus force-reopen any fdhandles backing ihandles. Change-Id: I50ff39873b523b05287c7a183d84e6f16eb7cd90 Reviewed-on: http://gerrit.openafs.org/5553 Reviewed-by: Hartmut Reuter Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 4a1d319177ea0e58c9046c3c173bb7d2877d1bc3 Author: Ben Kaduk Date: Sat Oct 8 17:16:26 2011 -0400 FBSD: deal with kernel API rename Upstream decided to rename the kernel functions that implement syscalls to have a sys_prefix (including afs3_syscall!). We use a couple of them, so we need to conditionalize accordingly. Unfortunately, __FreeBSD_version was not bumped with the change, so we use something close to it and hope it's close enough. Change-Id: I228805a813af70b30f94f659e4da602210a6d6df Reviewed-on: http://gerrit.openafs.org/5572 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 26253df896a7709847cda041db1dc187f1dbf83e Author: Michael Meffie Date: Thu Oct 6 06:03:07 2011 -0400 bozo: bosserver man page updates Add the new -pidfiles option to the man page. Add a few other missing options as well. Change-Id: I2d72ec9948edb4dce4c6b6d974915d4ac7560b0b Reviewed-on: http://gerrit.openafs.org/5587 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit bd1fbd8f4c0696a73e6211ded89e8c1105db1bfe Author: Jeffrey Altman Date: Fri Oct 7 11:23:57 2011 -0400 Windows: correct use of krb5_init_context in aklog A zero return code is success. Apply ! to obtain proper conditional test. Change-Id: Idd60fd2476a36ec36f7b5e250e9f8b8531c80611 Reviewed-on: http://gerrit.openafs.org/5570 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a453f2152145f242c7412c947aaebdd135cb9022 Author: Jeffrey Altman Date: Sat Oct 8 10:01:07 2011 +0200 Correct Heimdal conversion of libadmin/adminutil Patchset 4251e386aa25bb3fc02fa255e92327fffc8b954d converts to using Heimdal. The conversion undid the introduction of the abstraction function fetch_krb5_error_message() which is implemented in src/util. Restore the use of fetch_krb5_error_message() and modify src/util/krb5_nt.c to use the Kerberos Compat SDK interface. Change-Id: I67fe7a309727f67a1da3705e1e485e64747c325c Reviewed-on: http://gerrit.openafs.org/5571 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit df3e4145e758de3530a21bb1e75cd48a4a7f61ec Author: Derrick Brashear Date: Fri Oct 7 08:11:34 2011 -0400 bypasscache: free in order we need to free this, but while the pointer is still good Change-Id: I5afa3505b764c5bf72811f60f63e29c80a29c5af Reviewed-on: http://gerrit.openafs.org/5562 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit f2cba414c1390d5ed46b6c57f5682bfbcf53774e Author: Michael Meffie Date: Fri Oct 7 05:50:37 2011 -0400 doc: fileserver synopsis typo Fix a fileserver synopsis typo noticed during Derrick's EACK2011 debugging session. Change-Id: I73ed6bd93f644689acbdeeb4293a22b3b6752ba6 Reviewed-on: http://gerrit.openafs.org/5558 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit d84c91788e0f61a9b2837f9b6ba2492072df33da Author: Andrew Deason Date: Fri Oct 7 04:04:03 2011 -0400 RedHat: Add xstat_*_test commands to RPMs Install the xstat_*_test commands in the 'openafs' RPM. Change-Id: Idec42e133dd3f27c72f06c5411dd12acc163ef93 Reviewed-on: http://gerrit.openafs.org/5557 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit d1cf14d54e380014851fb850b65263a66a8a4443 Author: Derrick Brashear Date: Wed Sep 21 15:02:40 2011 -0400 bypasscache for ukernel simple (read) bypasscache for ukernel. does not bother trying any buffercache stuff. Change-Id: Ie75572da7efdb871a4ce807f02fbbb5bd7744c66 Reviewed-on: http://gerrit.openafs.org/5484 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 65bdade6d5a6c4301444f288cf20430241cbdc5d Author: Jeffrey Altman Date: Tue Oct 4 19:01:50 2011 -0400 Windows: Explorer shell GetUnixModeBits() actually append the unix mode string elements to the respective strings. Change-Id: I32d69f824f01e8cfacbf811a4bb14e01e3b6b9a3 Reviewed-on: http://gerrit.openafs.org/5552 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4e02cb72be034ddad019d2ee70e8009ee762d9ed Author: Jeffrey Altman Date: Tue Oct 4 17:29:26 2011 -0400 Windows: char* is not a Unicode string Do not treat the output of NetbiosName() as a wide_t when it is a char*. Change-Id: Iba4f1f30f1de4a9c3ded2f1e440ca9e4bc014379 Reviewed-on: http://gerrit.openafs.org/5549 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 07f771e6657f159998893b860f2ac1098fef5afc Author: Andrew Deason Date: Tue Apr 12 17:47:51 2011 -0500 tsm41: Add options for uidpag and localuid Add runtime options to aklog_dynamic_auth. Commit 3a541eb11d1bc7bd05b85635315214218d3b5d6f changed the behavior of aklog_dynamic_auth to be more friendly to the CDE screenlocker, but forced the use of UID-based PAGs. Since some users like to use real PAGs and don't care about the CDE screenlocker, made this behavior a runtime decision instead. Change-Id: I28264e2e80258f962d02ed9a6a40c4d789179c06 Reviewed-on: http://gerrit.openafs.org/4484 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 40eebd37a295c77615950858e08282447a8c28ca Author: Andrew Deason Date: Thu Apr 14 11:29:26 2011 -0500 aklog_dynamic_auth: Support new SetToken pioctl Make aklog_dynamic_auth use the new SetTokenEx method of storing tokens. Change-Id: I843ecd206ef4673ff9e5df5419daa9ee5b31f060 Reviewed-on: http://gerrit.openafs.org/4483 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 59169e0ac73fe44ddd7d28f3985cfc5549938cb8 Author: Jeffrey Altman Date: Sat Oct 1 14:05:31 2011 -0400 Windows: Explorer Shell Extension enhancements Redesign the AFS Volume Tab to report: . Volume name . Volume ID . Cell . Server . Availability . Quota . Partition Info . Replica Server List Properly handle multiple selections to report the volume info of the parent object and not the actively selected object. When a mount point is selected, display the volume information for the target volume. Remove file server from AFS tab. Modify the AFS tab to better handle multiple selections including mount points. Extend many gui2fs functions to implement a poor man's "follow" option. This really should be done with the pioctl 'literal' capability but this is an improvement. The pioctl modifications will require a major redesign of gui2fs.c and all of the dialogs. Change-Id: Ib009beb81d841fb3bbbd35b1eb0faec2c40eaf4e Reviewed-on: http://gerrit.openafs.org/5531 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0ca1d92952cc81483e7b949f2982033cf0b9f3db Author: Andrew Deason Date: Thu Sep 29 12:14:15 2011 -0500 Remove a few extra trailing backslashes In a few different places, moving libutil before libafshcrypto_lwp caused a variable definition to have a trailing \ on the last line of the definition. This can confuse make (at least, the HP-UX make) to think the next following definition is also part of the current definition. Remove the trailing "\"s. Change-Id: I235f95813e303bc3805b5d9fc8d7861e812613e2 Reviewed-on: http://gerrit.openafs.org/5523 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 82481c6f4464ad978ea56c687205bdfcd3eebffd Author: Andrew Deason Date: Wed Sep 28 15:02:48 2011 -0500 vol: Only check "logging" on vice partitions We don't care about non-vicepX partitions, so move part of the UFS "logging" check into VCheckPartition. This API should probably redone so the "am I a vicepX partition" check is done completely separately, but for now, this will do. Change-Id: Ib2df2079a392d7ed1a8c2aded34f2a7265215ecd Reviewed-on: http://gerrit.openafs.org/5514 Reviewed-by: Derrick Brashear Tested-by: Andrew Deason Tested-by: BuildBot commit b4f96eb78d9403799b97a39b9659070cf1114cd1 Author: Rod Widdowson Date: Thu Sep 29 15:34:48 2011 +0100 FSSYNC-Client: Consistent use of partition name Over time the FSSYNC code has collected examples where the partition path is passed rather than the partition name. In Unix this is the same (/vicepX), but on windows the path is the DOS device (C:). This checkin changes FSSYNC client code to always use the partition name. This checkin does not address FSSYNC server or SALVSYNC. Change-Id: I3c5b63103ab0cbd6c2c6c73b9dc737eca22b7d4c Reviewed-on: http://gerrit.openafs.org/5521 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 0d76ca3c5b17caa2c8106a75ee6ca1332deae603 Author: Jeffrey Altman Date: Fri Sep 30 03:43:24 2011 -0400 Windows: register Shell Ext handlers Add registry keys and values to enable use of the overlay handlers for symlinks and mount points. Add registry keys and values to enable use of the property sheet handlers. Correct registry keys for the Folder background context menu handler. Change-Id: Icac560fc6ffcec6bcc41f64adeae3ee2e5884fdb Reviewed-on: http://gerrit.openafs.org/5530 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9dd9cfa0e1536e0e75628c84605b3d5b8486d69c Author: Jeffrey Altman Date: Tue Sep 27 13:49:52 2011 -0400 Do not call krb5_get_error_message with NULL context MIT's krb5_get_error_message() ignores the context and can be called with a NULL context. Heimdal's version does not. Change-Id: I31801b0e0044e5e724298404645517e4425b0f09 Reviewed-on: http://gerrit.openafs.org/5508 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 39d5bb10b0c90f021a096b44a65abc525ef7e2e8 Author: Jeffrey Altman Date: Tue Sep 20 23:54:08 2011 -0400 kauth: permit kauth/test to build on Windows (again) Change-Id: I28f7bc93e189a2fcf3651552e00b4214bb6ec799 Reviewed-on: http://gerrit.openafs.org/5473 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 85831245154afc19da31bb86d21e64376ec11f94 Author: Jeffrey Altman Date: Sat Sep 24 11:12:09 2011 -0400 Windows: add krb5_enctype_enable(DES) calls Heimdal disables DES by default. Enable DES-CBC-CRC by calling krb5_enctype_enable() so that the active profile does not require [libdefaults] allow_weak_enctypes = 1 Change-Id: I75d7b6bd7269081c7b1fcaafe05074dcdcc9a7e0 Reviewed-on: http://gerrit.openafs.org/5501 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 4251e386aa25bb3fc02fa255e92327fffc8b954d Author: Asanka C. Herath Date: Fri Oct 8 17:46:02 2010 -0400 Windows: Build against KerbCompatSDK instead of KFW Build OpenAFS for Windows against the Secure Endpoints Kerberos Compatibility SDK instead of the in tree Kerberos for Windows SDK. The compatibility layer is available from: http://github.com/secure-endpoints/heimdal-krbcompat The SDK location must be specified with the KERBEROSCOMPATSDKROOT environment variable. The benefits of building against the Kerberos Compatibility SDK are: * Heimdal 1.5.1 or later assemblies will be used if available * MIT KFW 3.2.x will be searched for if Heimdal 1.5.1 is not installed Version 1.0 of the SDK is supported. Change-Id: I393e20d8bfb9ee1ca749cc54ecc1341927abaf82 Reviewed-on: http://gerrit.openafs.org/2867 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit 5c6bd04211d587efde4b0915a62273aafb2d306b Author: Andrew Deason Date: Thu Sep 29 14:49:53 2011 -0500 DAFS: Do not serialize state for invalid hosts When we serialize host information for DAFS during shutdown, we have no guarantee that the host is in a valid state when we look at it. This can result in a host being saved to disk when we are waiting for the host to respond to an RPC, and so the information about the host is invalid. For example, we can save a host that has the HWHO_INPROGRESS flag set, and when it is restored later, this can cause odd behavior since the flag is set but no thread is actually waiting for the host to respond. So instead, during state serialization, try to determine if a host may be in an invalid state, and simply skip the host if it may. Change-Id: I755640ea4ce607245ae98cc7455472ef781271e7 Reviewed-on: http://gerrit.openafs.org/5528 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6e7b31ef0a69b8ea39e8acc474a7aab48f828d3d Author: Andrew Deason Date: Thu Sep 29 16:04:54 2011 -0500 DAFS: Skip hosts with invalid flags on restore Host entries with HWHO_INPROGRESS set or ALTADDR unset do not have valid state, since those flags indicate that the fileserver was in the middle of identifying the host when the host struct was serialized. Skip entries from the on-disk host data that have such invalid flags set when restoring state, so we do not load invalid data. Change-Id: I26b88256679f4596598e6e3e6b68af7e8e5e387d Reviewed-on: http://gerrit.openafs.org/5527 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d54a9994d362ce3f287fe786839ec72f6d94806c Author: Andrew Deason Date: Thu Sep 29 15:22:35 2011 -0500 DAFS: Add explicit 'valid' field for index maps The CB, FE, and host serialization structures were just using the relevant indices to determine whether or not an entry mapping and old index to a new index was populated with actual data. For host structures, this really isn't sufficient, since our index can be 0, and the structure is calloc'd, so the index in the structure could also be 0. Add a flag explicitly stating whether or not the structure has been filled in, to make this unambiguous. Change-Id: Ia69e25fa73e10dc10cf3ddf08bb4feb2c9958674 Reviewed-on: http://gerrit.openafs.org/5526 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit d43438bb914f267f1c65d81e23efbab6874ae426 Author: Andrew Deason Date: Thu Sep 29 18:36:07 2011 -0500 viced: Assert valid statistics indices Make sure we are passed valid statistic index numbers, so passing in a bad index doesn't result in writing over random memory. Change-Id: I29ed03b59df937e6f95fba44209a03db23613a8d Reviewed-on: http://gerrit.openafs.org/5525 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 22d94407ea06a3213b7f0f6d57edd48d1977b2e1 Author: Andrew Deason Date: Thu Sep 29 18:31:37 2011 -0500 viced: Use xfer indices for xfer data Use the xfer indices for the xfer-related data, not the op indices, so we don't try to fill in data beyond the actual storage for the stats. Change-Id: I075d4eb9439d9bd603489f0aa90b3c18c3959de3 Reviewed-on: http://gerrit.openafs.org/5524 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 5587bbfc0bc70de234e5655faf7676cf2b9b9715 Author: Marc Dionne Date: Wed Sep 28 21:15:32 2011 -0400 rx: add post RPC procedure capability Add the ability to specify a procedure that will be called after the end of each RPC for a service. This is similar to the existing afterProc, except that it gets called after the RPC has ended (after EndCall). rx_SetPostProc and rx_GetPostProc are provided to set and retrieve a postProc for a specified service. Change-Id: I52e70323c5d35c9c0d70d9b9bbb05ff56a6edcad Reviewed-on: http://gerrit.openafs.org/5529 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit 2fd66404d9deeb292e1eadb23f5e0f287f9bf8f9 Author: Jeffrey Altman Date: Thu Sep 29 09:35:51 2011 -0400 Fix typo in windows release notes Reported by Jeff Blaine. FIXES 132233 Change-Id: I0a311e75d1da4c753cd902fd964587a62ef7abf1 Reviewed-on: http://gerrit.openafs.org/5519 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b977e52a441c70ec9ea97c7d0ebaaed17e530116 Author: Jeffrey Altman Date: Wed Sep 28 21:46:48 2011 -0400 Windows: Fixup errors in AFS ACL Property Sheet Unlike the afs_set_acl_dlg the PropACL sheet only uses a single ComboList to maintain both the positive and negative ACEs but uses two CStringArrays to separately store the positive and negative ACEs. Two entries in each array are used to store an ACE. The %2==0 entry is the pts name and the %2==1 entry is the permission list. This needs to be taken into account when manipulating the negative entries since the array count for the normal entries is twice the number of ACEs. Negative entries were prefixed with '=' instead of '-'. The Remove button was not hooked up and was not enabled or disabled under all appropriate conditions. Change-Id: I3bbfd9e82c8796554482b876d31ec53d8f9ac91f Reviewed-on: http://gerrit.openafs.org/5518 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5ba6a6223c42abf104c02d59f8c95d1760bd9030 Author: Jeffrey Altman Date: Wed Sep 28 19:59:03 2011 -0400 Windows: add resource info to afshcrypto.dll The afshcrypto.rc file was provided but it was never compiled nor linked to the dll. Change-Id: I41138c53a5b53417d880ae748c7f8e8248daedce Reviewed-on: http://gerrit.openafs.org/5517 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0c6bc6c78ade956978652dfe62bcc27140695b8a Author: Jeffrey Altman Date: Wed Sep 28 19:58:07 2011 -0400 Windows: Add resource info to afsroken.dll The afsroken.rc file was provided but it was never compiled or linked to the dll. Change-Id: Id64ccd06b85c444f2009ef21f1fc65fb14f1bf01 Reviewed-on: http://gerrit.openafs.org/5516 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 11a6fc948983c0a9f1fb41c58b9559750763440b Author: Marc Dionne Date: Wed Sep 28 18:39:55 2011 -0400 viced: remove duplicate declaration viced_uclient_key is declared twice, remove one of the declarations. Change-Id: I6f5cfef56512c660be75958e99d35ee86e6718ef Reviewed-on: http://gerrit.openafs.org/5515 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 60a6454d80c760aa8768ba64f7c5bab24f897c7b Author: Rod Widdowson Date: Wed Sep 28 16:46:00 2011 +0100 Windows: Remove spurious use of CRTL Checkins b71a2daa and 5247fa38a moved us from using a FILE* to using an FDi_t. However, lurking inside the dump code we see a use of _filelength() which is a MS-Crtl API. This checkin replaces this call with one to the WIN32 API GetFileSizeEx. Change-Id: I6ecc25a52d083f918bd8d92670b05f12e58e4015 Reviewed-on: http://gerrit.openafs.org/5511 Tested-by: BuildBot Reviewed-by: Jeffrey Altman commit c7dc0180c7c424c6cb58d1493759caf82ef280f2 Author: Andrew Deason Date: Wed Sep 28 15:41:38 2011 -0500 Remove references to afs_assert.h The header afs_assert.h no longer exists after commit cac74242728ad97e3ce9cef0a949d58c237250f6. Remove all remaining references to afs_assert.h in the tree. Change-Id: I708a399d4389d2f96d93ce3caf9c8b96e38bdf64 Reviewed-on: http://gerrit.openafs.org/5513 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 955bab670d0aed714fc940b5be7e2b75896a63d0 Author: Derrick Brashear Date: Wed Sep 28 10:23:19 2011 -0400 ukernel: output dataversion in stat struct if possible we already have this data; if we can output it, do so. Change-Id: Ibc445a152e4e1e61be50003dd8683d2a4b32d190 Reviewed-on: http://gerrit.openafs.org/5510 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 80943970b8cfcdf3fc630b25804aebaea228bd73 Author: Derrick Brashear Date: Wed Sep 28 10:11:16 2011 -0400 ukernel: make web enhancements the default none of the web enhancements break base functionality, and they are strictly more functionality; just turn them on everywhere Change-Id: I462d3571d055f1d8ec19bdd0132b935bacd435c0 Reviewed-on: http://gerrit.openafs.org/5509 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear commit 5b579b83abc57d6bb9212b599aae96af9ac71832 Author: Rod Widdowson Date: Wed Sep 28 17:34:54 2011 +0100 Windows: Fix comment about DiskPartition64 There is significant confusion between the partition name (/vicepX) and the containing volume (C:) in the windows code. A review of the uses in FSYNCH found a downright wrong comment (as checked in the debugger). Change-Id: I9cf6e965c9efee18b608a622b83639f25e410ce5 Reviewed-on: http://gerrit.openafs.org/5512 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5e8c4b7c8a69e20ba35bd12950b95c8650cf4012 Author: Ben Kaduk Date: Mon Sep 26 20:21:49 2011 -0400 FBSD: allow exclusion of kernel symbols Gerrit/5503 added support for kernel module symbols in the bsd.kmod.mk world; however, the inclusion of symbols is conditoinal on the DEBUG_FLAGS make variable being *set*, as opposed to nonempty. So we must use an intermediate variable to store the AC_SUBST result and conditionalize assignment to DEBUG_FLAGS on whether or not it is empty. Change-Id: I7f86fd08d6dcf1ac7116680db98db13f5f31be7b Reviewed-on: http://gerrit.openafs.org/5507 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 9133aa6ed3a7fe2ae55b2d3242366ae277c7f726 Author: Michael Meffie Date: Thu Sep 22 09:13:18 2011 -0400 bozo: report bosserver -rxbind address Create a file on bosserver startup called bosserver.rxbind in the server local directory which contains an address local scripts may use to contact the bosserver. When bosserver is started with the -rxbind option, write the address selected from the intersection of the interfaces, NetInfo, and NetRestrict configuration to the bosserver.rxbind file, otherwise write the loopback address 127.0.0.1. Update the RedHat init script to use the new bosserver.rxbind file. Change-Id: I00a4249ae7445f872625ec46f960e778483d1f9f Reviewed-on: http://gerrit.openafs.org/5488 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4a0d8cc24e687f271fcf44bab765691bd782d78d Author: Jeffrey Altman Date: Mon Sep 26 12:28:49 2011 -0400 Windows: do not install afs_assert.h commit cac74242728ad97e3ce9cef0a949d58c237250f6 removed afs_assert.h from the build tree. It can no longer be installed. Change-Id: I9a5c9f679a3cd8755b0a290ac91be6c651242e22 Reviewed-on: http://gerrit.openafs.org/5505 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 48e326372d89b0d778420f268dbe59236758eba8 Author: Michael Meffie Date: Mon Sep 26 11:59:55 2011 -0400 bozo: fix overrun from -rxbind on restart Fix buffer overrun in bosctlsrv introduced by commit 544ff1b295a57b50afefa6146094434db7608355 Change-Id: Icb39b5107113e2819a643537b042b20504c783f3 Reviewed-on: http://gerrit.openafs.org/5504 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 11f54962f638c8ae48d5193f6b695c252fbb9937 Author: Michael Meffie Date: Mon Jul 25 09:21:34 2011 -0400 volinfo: refactor vnode handling At program startup, register procedures to be called when scanning vnodes. Change-Id: I8dda202f1ea61b538278eacc8f86c323728cf191 Reviewed-on: http://gerrit.openafs.org/5100 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 4aa72b4308bae8e1d789682e7ead83bcadded862 Author: Michael Meffie Date: Sat Jul 23 14:55:57 2011 -0400 volinfo: release volume header ihandles when done After scanning the volume, release the header ihandles for the volume. Change-Id: I689a33b321fc68d0dc480369e6cbdfd41c1dbfc9 Reviewed-on: http://gerrit.openafs.org/5099 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b99ab0371a66803fdffafe848cb324595eb9de61 Author: Jonathan A. Kollasch Date: Fri Sep 23 19:14:47 2011 +0000 correct omission of AFS_NBSD60_ENV from nbsd60 param file Change-Id: I6b72ab5d9e3e5000c9138e6470e80491d85328b1 Reviewed-on: http://gerrit.openafs.org/5499 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cac74242728ad97e3ce9cef0a949d58c237250f6 Author: Simon Wilkinson Date: Sun Jul 10 13:46:11 2011 +0100 Clean up assertion The AFS code has multiple different assertion implementations in userspace. This patchset is the start of bringing some sanity to them. In rx, we have osi_Assert, a user/kernel assertion macro. This is only available to libraries which have RX dependencies In util, we redefine the standard 'assert()' macro to provide a cross-platform assertion solution. Because util has an RX dependency, neither of these provide an assertion solution for libraries which should be independent of rx. So, pull the assertion code out of util, and put it into opr, as a new opr_Assert() macro. Implement the userspace osi_Assert in terms of this macro, leaving the kernel variant untouched. Update callers to the new macro and header file names. Change-Id: I780b30ec1ea1207daa17127df4d5fbf9a94481b6 Reviewed-on: http://gerrit.openafs.org/5394 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 0a8f21e6a44d59a3333c0b4fee572fe6d94aae3d Author: Simon Wilkinson Date: Sun Sep 11 21:44:23 2011 +0100 Move abort() into opr We need our own abort function, because the behaviour of the Windows abort() implementation isn't sufficiently flexible for us. Because we're replacing an operating system function, reather than implementing a missing function, this doesn't belong in roken. So, provide an alternative opr_abort() implementation in our portable runtime layer, which is a synonym for abort() on Unix, and implements the required DebugBreak() functionality on Windows. Remove lwp_abort() which was just creating another, unnecessary, layer of abstraction. Change-Id: Ice226d70d2791beaba011f42e39fde60242f6cc3 Reviewed-on: http://gerrit.openafs.org/4428 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit bdf86d245fd55c5c7ac7ea81e3d6b6bafdbe1783 Author: Michael Meffie Date: Tue Nov 23 20:21:50 2010 -0500 bozo: bosserver -pidfiles option Add an option to bosserver to create pidfiles for long running processes for simple, fs, and dafs bnode types, as well as the bosserver process. The pidfiles are located in the server local directory by default, or in the path specifed by the -pidfiles command-line option. Change-Id: I3e85b027dc6f630965f84b18b7f849ac481dabe2 Reviewed-on: http://gerrit.openafs.org/5497 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 3e191dfd99087ac9408eff5f7f73cc10beb90f79 Author: Ben Kaduk Date: Sat Sep 24 18:05:09 2011 -0400 FBSD: bsd.kmod.mk fallout for debug symbols Now that we no longer control the installation of libafs.ko, debug symbols are always getting stripped. If the user requested kernel debug symbols, define DEBUG_FLAGS for the libafs build and install, so that bsd.kmod.mk will install the .symbols file alongside the kernel module. Change-Id: I0e7f3736666c96c6aaed18c0add98dea37349b83 Reviewed-on: http://gerrit.openafs.org/5503 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b6e04fa78ed5793d52caccafe2f5fc46be6a6af9 Author: Jeffrey Altman Date: Sat Sep 24 11:42:50 2011 -0400 Windows: update ntbuild.bat Add references to: . new APPVER and _WIN32_IE values . new AFSVER_CL values . additional code signing variables . variables for symbol store support . WiX Installer Toolkit location . Cygwin Install Directory . ActivePerl Install Directory . SignTool path Change-Id: Ie9465102977aee628d8f129de9c5c9c14fa5d97c Reviewed-on: http://gerrit.openafs.org/5500 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit fab921de67fe2bfbf6967c2e1cbf27230aad8bb2 Author: Michael Meffie Date: Fri Sep 23 11:28:05 2011 -0400 bozo: remove duplicate prototype Remove duplicate function prototype. Change-Id: I84a30c27edabd82272f99711285eb043122f66a0 Reviewed-on: http://gerrit.openafs.org/5496 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c2f7627a89e50713dc963ece2ef086cd991c15aa Author: Rod Widdowson Date: Fri Sep 23 16:37:43 2011 +0100 Fix buffer leak in dir/buffers.c Checkin 0284e65f97861e888d95576f22a93cd681813c39 accidently threw in a trailing semicolon after an if statement. Since the next line was a break this had several unfortunate side effects, the most obvious being that we leaked a buffer in certain cases. Change-Id: I4f1043426cac22c70b64731c98ac858d82e2f11e Reviewed-on: http://gerrit.openafs.org/5498 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a020c572d372f2e86807dc4c75ec50ff14ef2fba Author: Marc Dionne Date: Thu Sep 22 19:09:52 2011 -0400 viced: fix incorrect error message The error message was obviously copied from another location in the code (after the pr_Initialize call) and is misleading. Adapt it for vl_Initialize failure. Change-Id: I4fc65fd82b92df3298227abf3f6bcc24184ebfe8 Reviewed-on: http://gerrit.openafs.org/5490 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 544ff1b295a57b50afefa6146094434db7608355 Author: Michael Meffie Date: Thu Sep 22 11:28:17 2011 -0400 bozo: pass -rxbind on restart Pass the -rxbind on restarts when bosserver is initially started with the -rxbind option. Change-Id: Ic6e884c87fcd0e8b3808a2f362d8c32177e9e2a0 Reviewed-on: http://gerrit.openafs.org/5487 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit cb4d6e5e7e1a112782be5d892f9706b1a9da439b Author: Derrick Brashear Date: Thu Sep 22 13:00:08 2011 -0400 darwin: ukernel is 64-bit able update ukernel settings for darwin Change-Id: Ifd72d0d5affa1bfbea04da2c95e8011fb055e59f Reviewed-on: http://gerrit.openafs.org/5489 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 649d3a0957eef0c607a63b47f11bd4a0ca8655ca Author: Marc Dionne Date: Wed Sep 21 20:31:33 2011 -0400 fs: fix setserverprefs where long is larger than afs_int32 Make the fscanf and scanf format specifiers match the type of the target variable. This prevents trying to store a long int into an afs_int32 variable which may be smaller, and overwriting neighbouring data on the stack. The effect on a 64-bit Linux system was that the high bits of "rank" would overwrite the first 4 bytes of the scanned host name, causing setserverprefs to fail with: : couldn't resolve name. Change-Id: I2100e7fe77a137257eb308ad127c151de84756bc Reviewed-on: http://gerrit.openafs.org/5486 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 6fb2e92422abdaca6175f2556b24ba681af72fd6 Author: Jeffrey Altman Date: Wed Sep 21 01:46:52 2011 -0400 Windows: Disable OACR by default for AFSRDR build When building the AFS redirector with WDK7600 the Microsoft Auto Code Review process is started by default. This is a problem for buildbot. Disable OACR by default if the _RunOacr environment variable is not set to TRUE. Change-Id: I7e8f9f978e5f6b8a33fe0ff6174b9ddbe2a86ec7 Reviewed-on: http://gerrit.openafs.org/5479 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c208b13fa024295c9064364520ef790b093e292c Author: Derrick Brashear Date: Wed Sep 21 12:55:39 2011 -0400 afscp: enable debugging support in the volume portion readd the missing code when we are compiled for debug Change-Id: Ia4f0bcf2868e2f87bf8f7b6c01f3842e1a2eed50 Reviewed-on: http://gerrit.openafs.org/5483 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit fb1d7491fbe2e90300b23284f213cac2bdcd56ac Author: Derrick Brashear Date: Wed Sep 21 02:03:30 2011 -0400 afscp: allow listing of bare root.cell dirs in dynroot mode don't assume that /afs/cell.name (as opposed to /afs/cell.name/) is bogus. if there's text, at least try Change-Id: I9566efe60c942533cd0415a03528953cb90310c9 Reviewed-on: http://gerrit.openafs.org/5480 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 97004b7b0970bfc2744df49d540521a41177cac8 Author: Derrick Brashear Date: Tue Sep 20 23:26:25 2011 -0400 afscp: add confdir override allow an alternate config dir Change-Id: I454d63199dcfadc46ba957ddae0685efee6acf26 Reviewed-on: http://gerrit.openafs.org/5476 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: BuildBot commit 76e0b97eaa64088b8d8381a80b6ada0a080f0cbd Author: Terry Long Date: Tue Sep 20 21:21:12 2011 -0400 Fix AFSPreference compile error on Mac OS 10.7 Lion llvm/clang complains about main returning void instead of int. Fixed main to return int in DARWIN/AFSPreference/afshlp.m. Resubmitted patch to origin/master. Change-Id: I2f4e88ded2d98688901cc18d60abac8172942bbd Reviewed-on: http://gerrit.openafs.org/5475 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit c8f64e04b8cfb1085a2f3227785492d5e3f487ff Author: Jeffrey Altman Date: Sun Sep 18 13:13:18 2011 -0400 Windows: install control panel only if afs_config Add the AFS control panel to the AFS Configuration Tool component so that it is installed only if afs_config.exe is going to be installed. Change-Id: I9016ad70f3b201bbe440ec39e9987c6209cae0cc Reviewed-on: http://gerrit.openafs.org/5462 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 25254adeeea5f41820f140ce812bdacae34d24c9 Author: Jeffrey Altman Date: Sun Sep 18 13:14:39 2011 -0400 Windows: Disable Control Panel button in NIM Since afs_config.exe is no longer installed, remove the OpenAFS control panel button from the Network Identity Manager provider. Change-Id: I4b3d7a091a6c833d8bf4a24110ee6deb00c6baa0 Reviewed-on: http://gerrit.openafs.org/5463 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1d6dfa5806b171c6f306508396a06302d3d9c42a Author: Michael Meffie Date: Tue Sep 20 16:21:50 2011 -0400 salvager: fix filesystem path truncation Fix filesystem path truncation for vice partitions beyond /vicepz. Commit 3d7388b7 moved the filesystem path to a fixed size buffer, however the path of the filesystem to be salvaged is truncated for partitions with two character ids (e.g. /vicepaa), in which case the salvager will salvager the wrong partition, or abort if the truncated path is not present. Change-Id: Iadf45268514ef5045a4481950f213abecbb20b33 Reviewed-on: http://gerrit.openafs.org/5469 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 0cb10104f5af73614e6b7673d3711ddbc3f3a866 Author: Michael Meffie Date: Fri Sep 16 11:23:18 2011 -0400 solaris: libafs depends on fs/ufs The solaris afs module depends on symbols exported by fs/ufs. Set this dependency in the afs module so the kernel loader will automatically load the fs/ufs driver if is not already loaded, such on zfs only systems. Change-Id: I87ae2c326ac0c895cca37cf30e4c11d0decbe6d1 Reviewed-on: http://gerrit.openafs.org/5456 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit b33deb765ea8984d811ce0140716086338c3c10f Author: Michael Meffie Date: Wed Sep 14 17:22:25 2011 -0400 solaris: build 64-bit binaries for sunx86_51x by default Build 64-bit binaries on solaris x86 version 10 or better build systems running in 64-bit mode. Builders may set the the ARCHFLAGS environment variable to "-m32" before running configure to build 32-bit binaries on a 64-bit build host. Change-Id: I27558a2c7fe9872cf30889ca57e778985a3ff461 Reviewed-on: http://gerrit.openafs.org/5450 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e69714739f64475d71633fd4cb3523bc1ae143bb Author: Andrew Deason Date: Mon Sep 19 11:05:59 2011 -0400 ntohs ubik header size The 'size' field in the ubik header is only 16-bits wide, so we should be using ntohs to read it, not ntohl. The database checking utilities for the prdb and kadb were still using ntohl (vldb was fixed by 591f9b6de9ab3dc5c17ad41af0241527f7f04b31). Change-Id: Ic3894f5ae78ff05279e87b364841c5f6dfdf803c Reviewed-on: http://gerrit.openafs.org/5466 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 4d4cd3cd0874f4574989f57201bd3a3999764d6c Author: Jeffrey Altman Date: Sun Sep 18 14:18:24 2011 -0400 dir: remove unnecessary cast from malloc Change-Id: I2b91c9ad2983ba08e5e1bc49c3790e018951be31 Reviewed-on: http://gerrit.openafs.org/5464 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 552d59186b135af55eeaa6136a9cbb8965dd2f04 Author: Jeffrey Altman Date: Mon Sep 19 10:35:11 2011 -0400 Fix input size computation in SetSPrefs pioctl Patchset 718f85a8b69a78ac77beb5c8471af20657be2a53 contained a small typo that prevents the SetSPrefs pioctl processing from functioning in all cases. fs setserverprefs continues to work for non-DB preference lists because fs.c pokeServers() attempts to try the old SetSPrefs33 pioctl in the non-DB server case. Change-Id: I2e06dccb51c53ba312418fb5f51be3d621a2004c Reviewed-on: http://gerrit.openafs.org/5465 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 624c5d09e2f46403f8754567b387987488c5446c Author: Michael Meffie Date: Wed Sep 14 10:48:08 2011 -0400 solaris: fix afs_event build error Fix build error on solaris introduced with commit dc077b83c9b1f107efbc3483743f44117748f23c. Change-Id: Id41a0d7cf6400769dde5d2626854e2190cd6bd2e Reviewed-on: http://gerrit.openafs.org/5419 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 6196abf3c864f8cc6ab1efc6e5625a5cc68158bd Author: Derrick Brashear Date: Thu Sep 15 13:48:31 2011 -0400 rx: arrange for Finalize to really stop running calls previously rxi_ServerProc would happily error a call once rx_tranquil was set, but keep calling ExecuteRequest. Reorder code so kernel shutdown attempts are processed first; then arrange if we are tranquil to not process the call further. Issue discovered by Chaskiel Grundman. Change-Id: I545960fb0eb0d5151baa7e06e2758cdeaf0885da Reviewed-on: http://gerrit.openafs.org/5447 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit e6c04df407036b82c980d933d56ebce686c79e0f Author: Jeffrey Altman Date: Thu Sep 15 15:16:55 2011 -0400 Windows: changelog prior to branching openafs-devel-1_7_x Change-Id: I27ece967a136a44513fade8e9b8cc1c8d57951b4 Reviewed-on: http://gerrit.openafs.org/5449 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 5263b04796dfae34b2ac52e420bdc2f0c70e0568 Author: Jeffrey Altman Date: Thu Sep 15 14:00:39 2011 -0400 windows: Set ReparsePoint Attribute in FileAttributes The ReparsePoint Attribute is a primary attribute that is used internally within the redirector to determine when the object is a reparse point. It must be set in all code paths that obtain the FileAttributes from the service. Do not fold it in during the QueryBasicInformation response processing. Change-Id: Iba819dd94ec03133f78a4d18559dbd1b5352788e Reviewed-on: http://gerrit.openafs.org/5448 Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit e24984a52a7ca73e8e270e0e39e5d2bb22b5f77b Author: Jeffrey Altman Date: Thu Sep 15 10:32:19 2011 -0400 Windows: README-WINDOWS updates for build environment Not complete but closer than it was. Change-Id: I5945101206535753ace6d3a53a4d91ee4290351c Reviewed-on: http://gerrit.openafs.org/5446 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit ced8cd18c6d6ef545fba623fbb431536386bbc65 Author: Jeffrey Altman Date: Thu Sep 15 02:07:53 2011 -0400 Windows: NetWksta RPC test application A simple application to query the NetWksta RPC interface. Change-Id: I9d53dd956ace89ce01e3cf48583e160176fa05ce Reviewed-on: http://gerrit.openafs.org/5445 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit c044db34a1cef5cb905bfdb5df35fe05bf30fb4f Author: Jeffrey Altman Date: Thu Sep 15 02:06:14 2011 -0400 Windows: Build the AFS Redirector world All of the new build rules necessary to build the new AFS Redirector world. Change-Id: Ic5b8839eb6f10e44c3b6e185c85c3948f77b4d60 Reviewed-on: http://gerrit.openafs.org/5444 Reviewed-by: Rod Widdowson Tested-by: Rod Widdowson Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman commit effaebfe007eaa70d8479e8d655deb54cc0d36e9 Author: Jeffrey Altman Date: Thu Sep 15 02:04:45 2011 -0400 Windows: Release Notes updates for AFS Redirector No more support for Windows 2000. A first pass at indication which features that are SMB only are no longer applicable. much more. Change-Id: I6e6337804d75c8dccdbc66307215e18238f33dac Reviewed-on: http://gerrit.openafs.org/5443 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 69674f376aeb748fffb0c47d855851349e21c4ee Author: Jeffrey Altman Date: Thu Sep 15 02:02:36 2011 -0400 Windows: WiX Installers for AFS Redirector Add the AFS Redirector and AFSRDFSProvider and new Shell Extensions to the MSI installer package. Change-Id: I82d8256d016a19865bc8a681331f650d52e3b261 Reviewed-on: http://gerrit.openafs.org/5442 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b9d9264c0efb3529fe1d67d5a837be8d3081fcc9 Author: Jeffrey Altman Date: Thu Sep 15 02:00:00 2011 -0400 Windows: NSIS installers for AFS Redirector These changes provide basic support for installing the AFS Redirector and the AFSRDFSProvider.dll. However, since NSIS is not useful for 64-bit installations the NSIS installers will be removed from the source tree in the near future. 1.7.x series will not be distributed with NSIS installers. Change-Id: Ifd9d06af4f047e27c23c87af79ba84085bc3614a Reviewed-on: http://gerrit.openafs.org/5441 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 073e3c528952abdf21432d32487b3a11c71a3234 Author: Peter Scott Date: Thu Sep 15 01:58:48 2011 -0400 Windows: AFS Redirector Support Tools settrace, gettrace, objstatus, authgroup, and crash. These tools are useful for debugging the system. Change-Id: I2d62186a98f5561d579f7934ef568a54a3b099f1 Reviewed-on: http://gerrit.openafs.org/5440 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 82d60412041bd05f13da3bc9937d1e561744c71c Author: Peter Scott Date: Thu Sep 15 01:52:08 2011 -0400 Windows: AFS Redirector Network Provider In Windows a network file system must have a matching network provider dll that interfaces with the Multiple Provider Router (MPR) to support the WNet APIs called by the Windows Explorer Shell and other applications. The WNet APIs are primarily used to support driver letter mapping but they also have a number of other functions including universal name mapping, path formatting, and path parsing. Jeffrey Altman contributed to the development of the AFSRDFSProvider.dll interface. Change-Id: I9476003e05f12684676e8c7331a0a8dd13d98686 Reviewed-on: http://gerrit.openafs.org/5439 Tested-by: BuildBot Reviewed-by: Rod Widdowson Tested-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3c69a113aac8f09ea1d7c2221173bd656cc4c8d1 Author: Peter Scott Date: Thu Sep 15 01:48:59 2011 -0400 Windows: AFSRedirLib.sys file system library driver This patchset implements the AFS Redirector Library driver. This driver contains all of the AFS specific implementation details for service communication, network provider support, directory management, extent management, metadata management, callback invaldation, volume management, file locking, etc. Rod Widdowson and Jeffrey Altman contributed to the development of this driver. Change-Id: Icc18c26b81b96a92096c20e01360007815ca1acb Reviewed-on: http://gerrit.openafs.org/5438 Tested-by: BuildBot Reviewed-by: Rod Widdowson Tested-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 9399093a767c0638ee247d89d5f8f70b518b9396 Author: Peter Scott Date: Thu Sep 15 01:33:20 2011 -0400 Windows: RDR File System Framework driver This is the first of two kernel drivers used to implement the AFS Redirector: AFSRedir.sys. This driver is registered at boot time and provides the binding to the Windows kernel infrastructure. However, it only provides a framework of a file system driver. All of the AFS specific interfaces are actually implemented in a secondary library driver, AFSRedirLib.sys. The rationale for this model is that file system drivers cannot be unloaded on a running system. By using this approach the library driver can be unloaded which permits systems to be live updated. To permit this model to work, all memory allocation is performed by AFSRedir.sys. This confuses the driver verifier tool. When the library is unloaded all objects are still valid. Operation is simply paused until a new library is brought up. Under the current configuration the library is loaded as part of afsd_service initialization of AFSRedir.sys and is automatically unloaded when afsd_service.exe shuts down. The framework driver also implements all of the process and thread tracking logic necessary to support Authentication Groups. Communication between AFSRedir.sys and afsd_service.exe is performed via a reverse ioctl model whereby the service contributes threads to the driver to convey requests for processing. The original file system was derived from the Kernel Drivers File System under license from Kernel Drivers, LLC. Rod Widdowson and Jeffrey Altman contributed to the development of this driver. Change-Id: Ic123cacd868ddde31d66bf17d3ad2a13c22cd1f4 Reviewed-on: http://gerrit.openafs.org/5437 Tested-by: BuildBot Reviewed-by: Rod Widdowson Tested-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 6e82b5be128a07124fe8a69d6932ffe011fb1077 Author: Jeffrey Altman Date: Thu Sep 15 01:31:08 2011 -0400 Windows: Make pioctl interface RDR aware Permit the pioctl interface to recognize how to interact with the RDR for processing pioctl operations. Change-Id: I7ddf15f29661e61fab6439d2a3c1aa2935011559 Reviewed-on: http://gerrit.openafs.org/5436 Tested-by: BuildBot Reviewed-by: Rod Widdowson Tested-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b418d381be8c778ebeb93dd75bdc068dc4ed4871 Author: Jeffrey Altman Date: Thu Sep 15 01:29:57 2011 -0400 Windows: build loopback installer for current DDKs Modify the build rule for the loopback installer to permit it to build with the latest DDKs. Change-Id: I94c09e4f8e459ffebdcb2a63dbbe2197d7fbf070 Reviewed-on: http://gerrit.openafs.org/5435 Tested-by: BuildBot Reviewed-by: Rod Widdowson Tested-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 49724640b84c0a1a44957ef7f713491bab2b86db Author: Jeffrey Altman Date: Thu Sep 15 01:27:58 2011 -0400 Windows: "AFS_SMBNAME" envvar for aklog Permit the Windows smb user parameter used when setting tokens as the LOCAL_SYSTEM account to be set via an environment variable. This is useful for debugging. Change-Id: Id4521c863df1288a7a0937b83bf85cff1af3696f Reviewed-on: http://gerrit.openafs.org/5434 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 3f3fedecd08834439c462725e04eb04c690c07ee Author: Jeffrey Altman Date: Thu Sep 15 01:26:00 2011 -0400 Windows: no SOCKLEN_T before WDK 6.0 Change-Id: Idc63e28385b85e808b4391bc897863c792584c70 Reviewed-on: http://gerrit.openafs.org/5433 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit b91d39edec6a8bdb7451ed6f52ea2ad2065b0022 Author: Jeffrey Altman Date: Thu Sep 15 01:11:15 2011 -0400 Windows: Redirector interface for afsd_service.exe Over the last three years the afsd_service sources have been gradually separated into distinct layers for the SMB server and the AFS cache. The eventual goal of this work was to permit the addition of alternative interfaces to the cache manager in parallel. This patchset implements the first alternative interface, a reverse ioctl model that communicates with a native IFS redirector driver. The driver will be submitted in a subsequent patchset. Although it is possible to run afsd_service with both the SMB and RDR interfaces active at the same time. In practice it is somewhat impractical because it destroys the uniformity of the \\AFS name space. The RDR loads at boot time and claims all of \\AFS. The SMB interface if active at the same time must use the old \\%HOSTNAME%-AFS. As implemented, if the RDR interface is functional the SMB interface is not started. Only if the RDR interface fails will the SMB interface be activated. The afsd_service.exe maintains all of its primary responsibilities for communicating with the AFS servers, processing callbacks, enforcing permissions, handling afs path ioctls, Windows RPC service simulation, and object management. The biggest change is in the cm_buf_t management. Data is exchanged with the RDR by passing control over cm_buf_t->data buffers in the form of Windows File Extents. This avoids data copies across a communication channel which significantly improves performance at a substantial complexity cost. Credential management is switched from a Windows username binding to a GUID binding where the GUIDs represent authentication groups that are managed by the RDR. This patchset includes additional changes to support integrated logon in conjunction with the RDR. In particular, adding support for authentication groups. Change-Id: I7135489421c67a429ec3b2acd4c8ae08b8329f6d Reviewed-on: http://gerrit.openafs.org/5432 Tested-by: BuildBot Tested-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit f03cef68fbe5ed0852397c2818d42d5f53b035b3 Author: Peter Scott Date: Thu Sep 15 01:07:03 2011 -0400 Windows: AFS Redirector Support Headers This patchset includes all of the common headers upon which all of the subsequent submissions depend. Co-authored by Jeffrey Altman Change-Id: I3b2ba6fe0a9a5231801db2cd1a340b9c518b9be4 Reviewed-on: http://gerrit.openafs.org/5431 Tested-by: BuildBot Reviewed-by: Rod Widdowson Tested-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit a82c20639843f7021fdfcca32fc6db5faa172eba Author: Stefan Kueng Date: Thu Sep 15 00:57:23 2011 -0400 Windows: Explorer Shell extensions This patchset implements a broad range of improvements to the explorer shell. There is still a significant amount of work to be done. * Remove the 'cut' and 'delete' options from the context menu if the selected object is a symlink or mount point. This is performed in a language neutral manner. * Add AFS Property page to the property sheet * Add AFS Volume Property page * Add AFS ACL Property page * force the linker to add the common-controls V6 manifest and define ISOLATION_AWARE_ENABLED to make property sheets work for the shell extension dll * Fix the InfoTip handler. Display symlink and mount point target strings Stefan Kueng was assisted by Jeffrey Altman. Change-Id: I6b7c4506026270a5408d90cdc5358864e3fb44c3 Reviewed-on: http://gerrit.openafs.org/5430 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 236c18b36a93a1c4906f84c825f03f654f5ae4dc Author: Marc Dionne Date: Wed Sep 14 17:16:52 2011 -0400 Linux: Remove use of undefined AFS_LINUX_ENV AFS_LINUX_ENV is used in a few places, mostly from commit dc077b83, but it is not defined anywhere. As a result the logic was not as intended. In the definition of osi_ThreadUnique, this means that on all Linux we use getpid(), which is OK as it gets defined appropriately under LINUX and LINUX24 as current->pid or current->tgid. Change-Id: Ic8daf10480a91ff8406cd6ca3929a2ecfafa78ad Reviewed-on: http://gerrit.openafs.org/5424 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 17be9b775c0be234879eeda66707581e23a18d08 Author: Jeffrey Altman Date: Wed Sep 14 22:41:20 2011 -0400 Windows: mountpoints always have a trailing dot when expanding a cell alias to a full cell name the trailing dot was forgotten when putting the mountpoint string back together. Change-Id: I82a84380175d9ef5c41ef29d9043671d264df589 Reviewed-on: http://gerrit.openafs.org/5427 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit d355b4d6fce477e275ac34eb04b3d0f5504dd6fb Author: Jeffrey Altman Date: Wed Sep 14 22:39:52 2011 -0400 Windows: minor cm_ioctl corrections remove unused variable fix a comment to reference correct function name remove debugging windows event log entry that doesn't belong in production code Change-Id: Id81cfccd2c2c15d7fcbdbb5edc7dcb095abbd665 Reviewed-on: http://gerrit.openafs.org/5426 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit cf57eb294f28084cbb138b1a06bc813e14e6d0ec Author: Jeffrey Altman Date: Wed Sep 14 17:46:32 2011 -0400 Windows: validate buffer hash tables in cm_MergeStatus Change-Id: I1ff76513e9f2ba08bdeb988a19fec992b08310db Reviewed-on: http://gerrit.openafs.org/5425 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit febbd0f1ae9ae8700c0f9004979442e45a5e9883 Author: Ben Kaduk Date: Mon Sep 12 21:54:09 2011 -0400 Tidy up event hash table definitions a bit more The change in http://gerrit.openafs.org/5314 consolidated the definitions of struct afs_event and some related objects, but the definitions were not quite in the right place. In http://gerrit.openafs.org/5392 this content was moved to more standard headers, but a comment and #define were missed. This change moves the comment to be in the same place as the content. Change-Id: I86831879e9a2afd9e653182dcba4621624c55471 Reviewed-on: http://gerrit.openafs.org/5403 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 58d136ed0d35db6859eb3648969512eca216cbb2 Author: Simon Wilkinson Date: Tue Sep 13 09:54:12 2011 +0100 Use rra-c-util m4 from src/external This commit switches us over from using manually maintained copies of Russ's rra-c-util m4 macros, to using ones that are automatically imported from his upstream git tree. The macro versioning in the OpenAFS tree was slightly confused. This (approximately) updates us from using version 3.3 of the macros to version 3.8. The signifcant changes are: *) Use PATH_KRB5_CONFIG rather than KRB5_CONFIG to set the location of the krb5-config file *) Use --with-gssapi-{include, lib} if given, rather than krb5-config *) Use --with-krb5-{include, lib} if given, rather than krb5-config *) Define HAVE_KERBEROS if we find a Kerberos library The first, in particular, is likely to cause some confusion. Change-Id: Ie7a1c0db31b32fc7ac9ad7bded2c4ffce3ac013f Reviewed-on: http://gerrit.openafs.org/5418 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit 60d0458f57cb95693190b29c4d8d4b75738fe363 Author: Russ Allbery Date: Tue Sep 13 09:40:59 2011 +0100 Import of code from rra-c-util This commit updates the code imported from rra-c-util to aadb400e7536b29fb2b34299ef3cac07d86c108d (release/3.8) New files are: LICENSE m4/gssapi.m4 m4/krb5.m4 m4/lib-depends.m4 m4/lib-pathname.m4 m4/pam-const.m4 Change-Id: I34d42a5491e87dc61b81ac2bf034c53dc2020f20 Reviewed-on: http://gerrit.openafs.org/5417 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear commit 78e2bb1e17b2310f3586c92a96b0def2eba476f4 Author: Simon Wilkinson Date: Tue Sep 13 09:37:04 2011 +0100 Add rra-c-util to the src/external regime We're already using a number of m4 configure tests which are taken from rra-c-util. Instead of importing these piecemeal, add rra-c-util to the src/external git import system, so that we can simply keep our selves in sync Change-Id: I58d610a3ee5f0f924b02745a89696ef46a8b0c04 Reviewed-on: http://gerrit.openafs.org/5416 Reviewed-by: Derrick Brashear Tested-by: BuildBot commit b5a4c81fe0a25bb7f4aa0c41ea675f42657cb7a9 Author: Jeffrey Altman Date: Tue Aug 2 18:33:06 2011 -0400 Windows: osi_Debug macros The osi_Debug macros are like osi_Log macros except when used the logged values are always printed using OutputDebugString(). This interface is meant only for temporary debugging. No code that uses osi_Debug should ever be committed to the upstream repository. Change-Id: I139c81aa0c745f4f03c6900a19f65c55c495ad33 Reviewed-on: http://gerrit.openafs.org/5415 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit bf2bf9a1fbb5fd4c208e1e581aa4b6ee5d0cf5d0 Author: Jeffrey Altman Date: Thu Aug 18 22:07:26 2011 -0400 Windows: daemonCheckLockInterval to 60 seconds Since we are no longer using deleted cm_fileLocks to cache file server locks, there is no need to purge the list so frequently. Change-Id: I47d1e40be8b4008a11b1114389538a110644bed0 Reviewed-on: http://gerrit.openafs.org/5412 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit c9d655b9a6edf02fd92455961445f239f4667821 Author: Jeffrey Altman Date: Sun Aug 21 00:38:24 2011 -0400 Windows: record history of read lock threads Maintance an array of up to 32 reader threads that have acquired a rwlock. Use it for debugging when things go bad. Change-Id: I2e2e781ff355f1452e991898dfb5b91c47db9e34 Reviewed-on: http://gerrit.openafs.org/5411 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman commit 1de4561529bdb92b6647a634d9f2c2714e1758e5 Author: Marc Dionne Date: Tue Sep 13 19:32:37 2011 -0400 vos: print correct command name in diagnostics for changeloc Fix the label in the diagnostics message, it prints "addsite" instead of "changeloc" when an error occurs during vos changeloc Change-Id: I8c541bc1709d2c02fb58d6d15b4a66d95647d1e7 Reviewed-on: http://gerrit.openafs.org/5414 Reviewed-by: