commit 294164aa4d4cd6e2c5fc993c39d3155254a6d54e Author: Stephan Wiesand Date: Wed Oct 9 11:05:27 2013 +0200 Make OpenAFS 1.6.6 Update version strings for 1.6.6 Change-Id: I52c88bc22d4f058a32c34e8690385b1cf116c7d6 Reviewed-on: http://gerrit.openafs.org/10330 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit 01514413c344cf630425f92b5528f58711183f10 Author: Stephan Wiesand Date: Thu Jan 16 12:17:51 2014 +0100 Update NEWS for 1.6.6 Finalize the release notes for OpenAFS 1.6.6 Change-Id: I9e86a1675d79a828beb39932d4cbf4e0668e549e Reviewed-on: http://gerrit.openafs.org/10714 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit 93601b05f8a4007ce4504079ce35b4e1f42232ea Author: Andrew Deason Date: Mon Dec 23 16:10:45 2013 -0500 RedHat: Fix specfile changelog Oct 29 2007 was a Monday, not a Tuesday. rpmbuild does actually yell at us about this, so fix this so it will shut up. Reviewed-on: http://gerrit.openafs.org/10621 Reviewed-by: Perry Ruiter Tested-by: BuildBot Reviewed-by: Ken Dreyer (cherry picked from commit 16d8ab09bd9a0bd75319e6c32afb8bc2c5c04e51) Change-Id: Idec96a6dc1e14eef90b11f02799dff28bcbc2d24 Reviewed-on: http://gerrit.openafs.org/10704 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Benjamin Kaduk Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit 1855e00980916aafac6c629e91fde1761c7680bb Author: Andrew Deason Date: Thu Dec 26 12:56:37 2013 -0500 Fedora: Handle new kernel variant paths With Fedora 20, Fedora now separates the variant from the rest of the kernel version with a plus (+) instead of a period (.) . This results in directories called e.g. 3.12.5-302.fc20.i686+PAE, where right now we look for 3.12.5-302.fc20.i686.PAE. Use this new directory scheme for Fedora 20 builds, so we can build against non-default kernel variants on Fedora 20 and beyond. Reviewed-on: http://gerrit.openafs.org/10620 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Ken Dreyer (cherry picked from commit 837ec9dd41c4b1e10ad9d32a52b0f34dd665026a) Change-Id: I513ab231a9d7b61ec7790eb99a27da698a355f17 Reviewed-on: http://gerrit.openafs.org/10622 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit fb499d5b2f727d196f4cd4c300a26b4baf394e8e Author: Andrew Deason Date: Mon Dec 23 13:32:28 2013 -0500 RedHat: Munge future kernel versions We currently look for "fc1?" (that is, fc10 through fc19) when trying to munge the kernel version in some ways. This broke on Fedora 20, since 20 obviously does not match "fc1?". Similarly, we look specifically for "el6" for RHEL6 versioning quirks, but these will break on RHEL7 and beyond. Change the version checks so that this will work all the way through Fedora 99 and RHEL 9. That won't work forever, but it will keep us working for a few versions if the versioning quirks do not change. Reviewed-on: http://gerrit.openafs.org/10618 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Ken Dreyer (cherry picked from commit cddc732ec5fd40c94126e5f0b7103136592a2efe) Change-Id: I439cd3101ea360b775c638cd67961fc0e4ffcaf6 Reviewed-on: http://gerrit.openafs.org/10619 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit f101a0ab400ad8ed4359f4b2649d9998df16a042 Author: Arne Wiebalck Date: Fri Jul 12 11:39:53 2013 +0200 RedHat: support building on ELRepo kernels Amend the pattern matching in openafs-kmodtool to support building for kernels from ELRepo. Reviewed-on: http://gerrit.openafs.org/10083 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 397a086b77c4351e5332a73ae4859faf239bf45e) Change-Id: I0f1a7126271cb7952e4369af3c93484c4b0567d0 Reviewed-on: http://gerrit.openafs.org/10703 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit 75046632f402c050328643220b5b44e8d545c34e Author: Andrew Deason Date: Tue Dec 17 17:27:53 2013 -0600 rx: Remove obsolete comment This comment refers to the fact that we used to be just checking for SELinux to see if we should pass that extra argument. Ever since commit cb1b41b159b98881f66319d7f65d941ba9fab911, we do have a better test for this. Reviewed-on: http://gerrit.openafs.org/10593 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear (cherry picked from commit 2ed7023b26acb3277e42eac803a0702b95167e6e) Change-Id: I5a8ebcda7fcb85931638ab0bec807b1da8ebed3f Reviewed-on: http://gerrit.openafs.org/10597 Reviewed-by: Michael Meffie Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit e94e39bf226fad30e17ea4ff4ea746522c7de11a Author: Stephan Wiesand Date: Wed Dec 18 10:11:48 2013 +0100 doc: fix a nit in fs_newalias.pod The CAUTIONS section is about fs newalias, not fs newcell. Reviewed-on: http://gerrit.openafs.org/10595 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 8b8e8c2ab1974ba4c14942cc7bd94aac8602192f) Change-Id: Ie800b600f85f17362d92ce51ee55de3f24a3361e Reviewed-on: http://gerrit.openafs.org/10601 Tested-by: BuildBot Reviewed-by: Ken Dreyer Reviewed-by: Andrew Deason Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit 7df02ff8915f6fe1d611a57836853b896b0f46be Author: Andrew Deason Date: Wed Jan 15 09:47:49 2014 -0600 Revert "viced: Enable NAT ping on hosts" This reverts commit 53005f4fe7b6df5263d399f0aec9fee3078e39bc. The fileserver-side "NAT ping" behavior has yet to be proven to be helpful in situations with NATs. If the behavior is not helpful, this generates potentially a significant amount of extra useless traffic. So until it can be shown to what degree this is helpful, keep this behavior out of the fileserver. Change-Id: I783222e1be166920445175fe09680cd4968c2810 Reviewed-on: http://gerrit.openafs.org/10135 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 7ad192baf5a1b1ce18b57562b02e74be2bbb73c7 Author: Stephan Wiesand Date: Thu Oct 17 13:51:29 2013 +0200 Make OpenAFS 1.6.6pre2 prerelease for 1.6.6 Change-Id: I51010e70d1a9377f7a82d48798dc2b439e5bb4f5 Reviewed-on: http://gerrit.openafs.org/10344 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit 3a3736574f48330aeaa8e80863522edcd578acc6 Author: Christof Hanke Date: Thu Dec 5 10:00:42 2013 +0100 Linux: fix whitespace issue introduced in Change I1e84969b. It does not follow the overall style. Reviewed-on: http://gerrit.openafs.org/10529 Tested-by: BuildBot Reviewed-by: Jeffrey Altman (cherry picked from commit faf14be3827fa72914a1c792c9a99a3353717ded) Change-Id: Id98b222c20acd985c753e5f5c9acabf235cb7975 Reviewed-on: http://gerrit.openafs.org/10544 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit d68e6c24f53b6878733e28909e23e44a0fdfae1d Author: Jeff Layton Date: Fri Dec 6 13:34:04 2013 -0500 Linux: stop trying to use getname/putname The current code has afs_putname defined as kmem_cache_free (names_cachep, (void *) name); This is wrong and will cause a double -free when syscall auditing is enabled. Fix it to call putname properly. Instead of that, just create a new afs_getname function that doesn't bother with struct filename at all, and use that unconditionally. Signed-off-by:Jeff Layton Reviewed-on: http://gerrit.openafs.org/10547 Tested-by: BuildBot Reviewed-by: Jeff Layton Reviewed-by: Derrick Brashear (cherry picked from commit d40ed7391670010db0df2202d770341b2ca82f32) Change-Id: I860366b5ad3ce43cbade0ddfb8bed5ba5e7908a8 Reviewed-on: http://gerrit.openafs.org/10578 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit d6b6cd5a170f650fcbffcbb8f6bd9a54852ebabb Author: Stephan Wiesand Date: Wed Dec 18 15:26:59 2013 +0100 Update NEWS for 1.6.6pre2 release notes for OpenAFS 1.6.6 prerelease 2 Change-Id: Id829b60e82d56d11ebfb454595518d9585ca63fe Reviewed-on: http://gerrit.openafs.org/10596 Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 77826dd3eeb5355834e073553462856df64b9e81 Author: Ken Hornstein Date: Thu Dec 5 13:53:56 2013 -0500 Packaging support for MacOS X 10.9 "Mavericks". Based on work originally done by Matt Haught . Reviewed-on: http://gerrit.openafs.org/10539 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit cb53d255a6285c884c6a5ea9a20427327b1ab9b3) Change-Id: Ic537b46c7eb3f6b1e12a92ffbcffd5416a2a81d9 Reviewed-on: http://gerrit.openafs.org/10542 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit 33edca62271ed4c5e50e1990adfb9cc262d8468e Author: Ken Hornstein Date: Thu Dec 5 13:46:18 2013 -0500 Add support for configuration of MacOS 10.9 "Mavericks". Based on work originally done by Matt Haught Reviewed-on: http://gerrit.openafs.org/10538 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit aac384b2eda823519780afed84e53a868561711d) Change-Id: Ic15fefc11e7b2f1170cb5ff52a94c1d6aea499a7 Reviewed-on: http://gerrit.openafs.org/10541 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit e4b2242f3a29832e1df389ceea6ec4ca41c06306 Author: Ben Kaduk Date: Tue Mar 26 17:42:38 2013 -0400 Fix DARWIN build with clang In 1d8937b86050 we added a function call to kauth_cred_unref in the DARWIN100 case (replacing a macro), but added the inclusion of sys/kauth.h only when using versions older than DARWIN80. On DARWIN100 and above, clang detects that the now-implicit function declaration is in conflict with the actual prototype, which is included later through afs/sysincludes.h when compiling the kernel rx code. Since including sys/kauth.h seems to have been harmless for old versions, just include it always. Reviewed-on: http://gerrit.openafs.org/9676 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 6ad2cc0275cd1074316d6bc70cd8758d25f94467) Change-Id: I7e3bfdee65791828fe6ee68e3dc125be2311cd86 Reviewed-on: http://gerrit.openafs.org/10549 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit 931d1a8bea393ba3df69b163cb4d05c35f3c948e 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. Reviewed-on: http://gerrit.openafs.org/7073 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 1d8937b860509fcaabb041bc14faf7aa3023f3c9) Change-Id: I869caa41884c33e6376d664a745efb0f8aa761d0 Reviewed-on: http://gerrit.openafs.org/10548 Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit e54a0902fb4ed09d955a2cb9c3d091da28b8f21a Author: Ken Hornstein Date: Thu Dec 5 13:57:36 2013 -0500 Remove extra whitespace from macro invocations On MacOS X 10.9, the compiler has switched to LLVM and as a consequence generates an error if there is a space between a macro invocation and the starting left parenthesis. Based on code originally done by Matt Haught . Reviewed-on: http://gerrit.openafs.org/10540 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit ce96143d79ea006f7b1318dd1c962d4c4f79fc1e) Change-Id: I0e1c2a27ea2dc85205e9fa267a804438aad77bfe Reviewed-on: http://gerrit.openafs.org/10543 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Andrew Deason Reviewed-by: Marc Dionne Reviewed-by: Stephan Wiesand commit 192536d62b085bb14f54ffc958e6303810cca624 Author: Ken Hornstein Date: Wed Nov 20 13:37:52 2013 -0500 Support for changes to OS X Mavericks VNOP_SYMLINK() function. Add support for an extra argument to afs_symlink() to return the newly-created symlink vnode if requested (this is needed on OS X Mavericks). On OS X Mavericks return the newly-created symlink vnode in the symlink vnops functions, on all other platforms ignore it. It turns out that technically OS X has required the symlink to be created for a while, but code inside of symlink() would call namei() on the symlink name if the returned vnode point was NULL. The difference is that on Mavericks the Manditory Access Control Framework has been enabled, and that turns on some extra code which unconditionally calls vnode_mount() on the returned vnode pointer, which ends up causing a panic Reviewed-on: http://gerrit.openafs.org/10474 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 3f4c1099b7b2d1467b1f5b701ea2f953fec20dc0) Change-Id: Ib8bac6fd4ed8fe5c2e9567431f7d03fdab50cd50 Reviewed-on: http://gerrit.openafs.org/10519 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Andrew Deason Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit a5611c2dffc58595d686d040b0f12c474a9d02c2 Author: Stephan Wiesand Date: Thu Nov 21 15:01:29 2013 +0100 Linux: Fix build for older kernels w/o bool Commit b7f4f2023b2b3e1aac46715176940fb50cc75265 broke builds against older kernels which don't have bool defined in linux/types.h . Fix this by using unsigned char instead of bool for the static inline functions. Reviewed-on: http://gerrit.openafs.org/10483 Tested-by: BuildBot Reviewed-by: Anders Kaseorg Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear (cherry picked from commit 5b67620c7b3ad224ea53075e37ecf1f7e6a7c51a) Change-Id: Iccb8ca2625211b94b105c6eb60764f4a064b345a Reviewed-on: http://gerrit.openafs.org/10518 Reviewed-by: Marc Dionne Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 908b8a0ea5e72fd0e5c5b020e1f939b0491070b5 Author: Christof Hanke Date: Tue Nov 19 09:57:22 2013 +0100 Linux: always include headerfile when it is required. In some linux-kernels (like in SLES11 SP3) it is not done automatically and the compilation fails. Reviewed-on: http://gerrit.openafs.org/10471 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear (cherry picked from commit 779ab18bafdea3535b403ba62f3ec8a8b127748e) Change-Id: If5bc31e0cf09634f5d36bbe7757919b6f1dc310f Reviewed-on: http://gerrit.openafs.org/10472 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Marc Dionne Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit d294e9cea5bf7c8b748355537c2f423eb177b035 Author: Stephan Wiesand Date: Thu Oct 17 13:48:26 2013 +0200 Make OpenAFS 1.6.6pre1 prerelease for 1.6.6 Change-Id: I4d93c9937316f47f06727a81deefab253de46030 Reviewed-on: http://gerrit.openafs.org/10343 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit 047c9ba792ce52d33cb5fcb15d980aebedcb665e Author: Stephan Wiesand Date: Wed Oct 23 15:53:52 2013 +0200 Update NEWS for 1.6.6 release notes for OpenAFS 1.6.6 Change-Id: Ifa9340d3c2e2a94f2d98adc85dec62022b9ea446 Reviewed-on: http://gerrit.openafs.org/10359 Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 8f88530289297117b001d81843e3ac23564815d0 Author: Anders Kaseorg Date: Thu Nov 7 15:37:25 2013 -0500 Linux: Get rid of !STRUCT_KEY_UID_IS_KUID_T case On the few kernel versions before struct key.uid was converted to kuid_t (v3.7-rc1~147^2~76), it was not possible to enable both CONFIG_KEYS and CONFIG_UIDGID_STRICT_TYPE_CHECKS, so this case was impossible. That’s good, because it also had a typo in its implementation (and was confusing to deal with correctly). Signed-off-by: Anders Kaseorg Reviewed-on: http://gerrit.openafs.org/10443 Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Reviewed-by: Marc Dionne Tested-by: BuildBot (cherry picked from commit d0a13fe678412464452afae9379d63fa48d41d83) Change-Id: I081115d13b6deb3b10e6da442bed7a7bb9347296 Reviewed-on: http://gerrit.openafs.org/10458 Reviewed-by: Marc Dionne Tested-by: BuildBot Tested-by: Anders Kaseorg Reviewed-by: Anders Kaseorg Reviewed-by: Stephan Wiesand commit 30160ad6eec3c290a770b6069fc106f452e5b4ba Author: Anders Kaseorg Date: Thu Oct 31 09:11:59 2013 -0400 Linux: Fix build with CONFIG_UIDGID_STRICT_TYPE_CHECKS (user namespaces) With CONFIG_UIDGID_STRICT_TYPE_CHECKS (a dependency of user namespace support, CONFIG_USER_NS) turned on, uid_t and kuid_t are different types, as are gid_t and kgid_t, and we need to use namespace-dependent functions to convert between them. We can’t use init_user_ns as the namespace because it’s GPL-only, so instead we grab the current user_ns at module load time. This is required to support kernels with user namespace support. We don’t yet have full support for independent AFS use by different users in a multiuser container; that will need to wait for future work. Signed-off-by: Anders Kaseorg Reviewed-on: http://gerrit.openafs.org/10386 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear (cherry picked from commit b7f4f2023b2b3e1aac46715176940fb50cc75265) Change-Id: I55fb7d4ccbed2b4381937270955b117244b80719 Reviewed-on: http://gerrit.openafs.org/10457 Reviewed-by: Marc Dionne Tested-by: BuildBot Tested-by: Anders Kaseorg Reviewed-by: Anders Kaseorg Reviewed-by: Stephan Wiesand commit 70790f87b7b0ef3746c043a868c4306e05008ecd Author: Anders Kaseorg Date: Tue Nov 5 01:11:15 2013 -0500 afs_linux_pag_from_groups: Stop checking for NOGROUP sentinel Linux hasn’t used NOGROUP as a sentinel like this since before kernel 2.1.12, and OpenAFS hasn’t used it on Linux since commit 109927bf6f54b58b76ac48ba41c2012c74937fed (Remove pre-Linux 2.6 support). Signed-off-by: Anders Kaseorg Reviewed-on: http://gerrit.openafs.org/10426 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear (cherry picked from commit 231e50ff9742927188d67099f0e1dbaf09858c3c) Change-Id: I9ad46eb5a2aafa75e5412eafb1e26bd2c6f0d317 Reviewed-on: http://gerrit.openafs.org/10456 Reviewed-by: Marc Dionne Tested-by: BuildBot Tested-by: Anders Kaseorg Reviewed-by: Anders Kaseorg Reviewed-by: Stephan Wiesand commit 7d70e9819bb42ad45defb961fb5cee97653349b8 Author: Jeffrey Altman Date: Mon Sep 9 09:20:32 2013 -0400 afs: CacheTruncateDaemon work until Cache Drained The afs_CacheTruncateDeamon() thread will not sleep until both 'afs_CacheTooFull' and 'afs_WaitForCacheDrain' are true but the thread will stop freeing space in the cache when 'afs_CacheTooFull' is true which prevents 'afs_WaitForCacheDrain' from ever becoming true if it is not already. Make the conditional for doing work include 'afs_WaitForCacheDrain'. Change-Id: Id25929080eecd390d4ed56e5fffd6fe56cc8502c Reviewed-on: http://gerrit.openafs.org/10436 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 1d9cc8fa66e32b7e27a81c474d17f5134ff1f0c9 Author: Jeffrey Altman Date: Sat Sep 7 14:04:32 2013 -0400 afs: afs_CacheTruncateDaemon wake waiters !too full When processing afs_CacheTruncateDaemon() if the cache is no longer too full, then wake the waiters. Change-Id: I3dfc2251baad984bd53c4ddaa38f03293eb3ec1c Reviewed-on: http://gerrit.openafs.org/10435 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Marc Dionne Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 8695976b8bbc29b05d65563a1f54e90abb00e0c4 Author: Jeffrey Altman Date: Sat Sep 7 13:55:58 2013 -0400 afs: afs_CacheIsTooFull macro refs wrong constant When afs_CacheIsTooFull tests the number of free blocks it should use CM_DCACHESPACEFREEPCT (90%) instead of CM_DCACHECOUNTFREEPCT (95%). Change-Id: I7ecb795e04a2bb3aae801a6feb57f205d3ad4d46 Reviewed-on: http://gerrit.openafs.org/10434 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Marc Dionne Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 5718036049a01004cd1a085148b9530762811246 Author: Jeffrey Altman Date: Sat Sep 7 13:27:54 2013 -0400 afs: afs_FlushDCache avoid dup cache drained check afs_WakeCacheWaitersIfDrained is called as the last statement of both afs_DiscardDCache and afs_FreeDCache. There is no need to perform the same check again before exiting afs_FlushDCache. Change-Id: I111d7dc1638fa8fc0a4c35d9cc4c0a1631300f89 Reviewed-on: http://gerrit.openafs.org/10433 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Marc Dionne Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit ec96b7e60d63627e72950b6d46985a995734d787 Author: Jeffrey Altman Date: Mon Sep 9 12:17:36 2013 -0400 afs: Introduce afs_WakeCacheWaitersIfDrained Consolidate common code into afs_WakeCacheWaitersIfDrained(). Change-Id: I0240d7c1be6c1a8bf22eac5fd6daf909e8320615 Reviewed-on: http://gerrit.openafs.org/10432 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Marc Dionne Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 17aacc87dedffde07b2ae44a73cbddff46222159 Author: Jeffrey Altman Date: Sat Sep 7 12:26:52 2013 -0400 afs: FreeDCache test afs_blocksDiscarded For consistency with afs_FlushDCache and afs_DiscardDCache include afs_blocksDiscarded in the free space test. When afs_FreeDCache is called it should be zero. Change-Id: I84a5dea626258c628d24bf647088e2cbfd233c9a Reviewed-on: http://gerrit.openafs.org/10431 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Marc Dionne Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit ebc334a4cc020eaf4f46055155db3a4dede9bfc2 Author: Anders Kaseorg Date: Tue Nov 12 00:23:47 2013 -0500 Linux: afs_fill_super: Call bdi_destroy on the failure path Without this, if AFS startup failed, then trying to start AFS again triggers these warnings: WARNING: CPU: 3 PID: 657 at /build/buildd/linux-3.12.0/fs/sysfs/dir.c:526 sysfs_add_one+0xa5/0xd0() sysfs: cannot create duplicate filename '/devices/virtual/bdi/afs' WARNING: CPU: 3 PID: 657 at /build/buildd/linux-3.12.0/lib/kobject.c:196 kobject_add_internal+0x1f4/0x300() kobject_add_internal failed for afs with -EEXIST, don't try to register things with the same name in the same directory. and leads to general system instability. This can be reproduced by starting AFS twice with an empty cache, dynroot disabled, and no network. Signed-off-by: Anders Kaseorg Reviewed-on: http://gerrit.openafs.org/10448 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear (cherry picked from commit f5f53cb0a1f326ed4695621f6a5a63f798444549) Change-Id: I6dda2fb561279d445bb7fdfdb601b64b326cd4c1 Reviewed-on: http://gerrit.openafs.org/10454 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Michael Meffie Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit ba0a374966dcec78392443bb5f0c43e9c2f0f466 Author: Ben Kaduk Date: Wed Oct 30 13:24:59 2013 -0400 Make process.o depend on process.amd64.s Some versions of the rule for this target use the amd64 flavor of the source file, so it should be listed as a dependency. This is a 1.6-specific change; the relevant dependency was added on master as part of change #5450, which is a much larger change. Change-Id: I5eb392ccd6b059f6f2344398bd697a5096a1bd77 Reviewed-on: http://gerrit.openafs.org/10382 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit e2bdca9aa7af4636f411d1c9aabc485da20225b9 Author: Ben Kaduk Date: Tue Oct 15 20:57:26 2013 -0400 Tidy up MakefileProto.FBSD.in We don't support FreeBSD 6.x and older now. As such, we can convert entirely to the "new" world order, and not have to worry about adding new sysnames to the conditionals every time we add them. FreeBSD 7.x is no longer supported by upstream, but it does not impose an undue burden on us to continue to build on FreeBSD 7.1 and higher; the code needed for 7.0 exactly can be removed, though. (The sense of the conditionals should really have been reversed anyway, so that the default case would catch new sysnames correctly. Too late now.) This is a 1.6-only change, as the libafs build system on master is quite different. Change-Id: Iad5d8b6edb9140b38568ab57ffecf0cfdaf1cbd3 Reviewed-on: http://gerrit.openafs.org/10375 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit eacf8facd86f3480dfc8a2676f20572178d86bb3 Author: Ben Kaduk Date: Tue Oct 15 16:56:07 2013 -0400 Sysname and param.h for FreeBSD 9.2 and 11.0 9.2 is newly released and HEAD is now 11-current. On the 1.6 branch (unlike master), we still need to define AFS_64BIT_ENV. Reviewed-on: http://gerrit.openafs.org/10341 Reviewed-by: Derrick Brashear Tested-by: Andrew Deason Reviewed-by: Jeffrey Altman (cherry picked from commit 1b674ae30925c8459e1a5614e19562af460850d8) Change-Id: Id5d5f2ca74cbdb816a759487e01aefb215894887 Reviewed-on: http://gerrit.openafs.org/10381 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit ce19d1de2a12a31db8785309e108253c2a401076 Author: Ben Kaduk Date: Wed May 29 19:18:22 2013 -0400 FBSD: plug refcount leak in pioctl When gop_lookupname_user returns a non-NULL vnode, the vnode came from afs_GetVCache (by way of afs_lookup) which takes a reference on the vnode entry. There's no need to take another spurious reference here. The existing code already knows that there's a reference in place, as there is an AFS_RELE down where FBSD80_ENV unlocks the vnode if it's locked (that code is also suspicious). Prior to this patch, things like 'fs flush /path/to/file' would leak a reference on that cache entry, preventing clean shutdown. Reviewed-on: http://gerrit.openafs.org/9957 Reviewed-by: Benjamin Kaduk Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 2bbba424ad6728a221688f782b4df90bf6da4a63) Change-Id: If9435903b32ca7001b418bc7a0fb611bda4d424e Reviewed-on: http://gerrit.openafs.org/10380 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 0d41c9a09206ad2b74a494f49469e289d3617087 Author: Benjamin Kaduk Date: Wed Sep 25 16:57:41 2013 -0400 Fix build for FreeBSD 10.0 Move a rmlock.h inclusion up a bit so that the vm headers can get the rmlock assertion (and other) macros they need. The filedesc structure has been expanded on FreeBSD to support a stronger capabilities system; getting to the actual file descriptor requires another structure access. limits.h and stdarg.h need sys/ and machine/ prefixes for inclusion in the kernel on FreeBSD. Unlike on master, there are not spurious include search path directives to remove. Catch up to VM layer changes. This builds, but crashes at runtime due to some ABI incompatibilities that appear in the rx event layer; those will be fixed in a separate patch. Reviewed-on: http://gerrit.openafs.org/10339 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Jeffrey Altman (cherry picked from commit e222b08c4049dae95475eda2d5c54bd43dd45e2e) Change-Id: Ia8f0f31b000292fd160b8752ad5839852e11f0e0 Reviewed-on: http://gerrit.openafs.org/10379 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 4dad6373c808e67d87faf14e2d011d58979dc737 Author: Ben Kaduk Date: Fri Mar 22 13:51:02 2013 -0400 Catch up to FreeBSD VM object read/write locks Upstream r248084 changed the vm_object mutex to be a rwlock, allowing for future optimizations. This is a KPI change, so introduce conditionals to be compatible with both versions of the KPI. Reviewed-on: http://gerrit.openafs.org/10295 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 897e970dbe09d163479719b4c9befa660d99874b) Change-Id: Ieeb30f3ad9accab37117109ccf82952812157aab Reviewed-on: http://gerrit.openafs.org/10378 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 336fe48e42c68c759eb35232c6d7672bcb8e7957 Author: Ben Kaduk Date: Mon Jun 20 22:34:41 2011 -0400 FBSD: Remove include directive for nonexistent file In the bsd.kmod.mk world, this becomes a fatal error. Reviewed-on: http://gerrit.openafs.org/5033 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 037f3251cd8fa318ad8320a061368efedc480c37) Change-Id: If586761fce1254818c858d29ce6c31a5b8b13943 Reviewed-on: http://gerrit.openafs.org/10377 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 476e2048b96453827f2e50e3a79f3ecc539f352b Author: Ben Kaduk Date: Thu Mar 28 17:10:29 2013 -0400 FreeBSD: VOP_MMAP has been dead since 1996 Clang complains that our (K&R!) declaration of struct vop_mmap_args will only be visible within the (empty) function. With the kernel's CFLAGS, though, this is fatal. Remove the dead code. Reviewed-on: http://gerrit.openafs.org/9856 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit a63e6747abd33fef40da16312dfc22d052bffd00) Change-Id: I647af5c9574dacd2b9fcd5147a0a252b3981c2c0 Reviewed-on: http://gerrit.openafs.org/10376 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 4914a6355d5cc7b6704706f4ec211b5f300cc682 Author: Ben Kaduk Date: Tue Oct 15 16:00:01 2013 -0400 Adjust for microtime() ABI on all XBSD On the BSDs, struct timeval is not two 32-bit integers like our struct clock, so the ABI is quite incompatible. Use the native type for the function call and translate to our local type accordingly. Unlike on master, there was no workaround in the FreeBSD kernel build to remove. Reviewed-on: http://gerrit.openafs.org/10340 Reviewed-by: Jeffrey Hutzelman Tested-by: BuildBot Reviewed-by: Antoine Verheijen Reviewed-by: Jeffrey Altman (cherry picked from commit 1bdcc3c7bca092f189f434f1f7b174090c24250c) Change-Id: I54cb609f80bc35fb09a5026c964ba28ae860f3f5 Reviewed-on: http://gerrit.openafs.org/10374 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit ac2d87fb6380de2ba83013983ad9c53f81347e11 Author: Andrew Deason Date: Thu Nov 1 16:46:13 2012 -0500 afs: Add some comments on GetValidDSlot panics A couple of call sites for afs_GetValidDSlot currently panic if an error is returned, but no explanation is given. Add a few comments helping explain why there is a panic there, instead of graceful error handling. Reviewed-on: http://gerrit.openafs.org/8407 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 3081a2cff2e4f9499268854504873fa801d50ce5) Change-Id: I3bbe8f32683cb6086add494641b206c5b861fe3a Reviewed-on: http://gerrit.openafs.org/10358 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Marc Dionne Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit c8ffb8b9eefc8c2a0c6b41e3e29c0f03940a5fcf Author: Andrew Deason Date: Thu Nov 1 16:33:31 2012 -0500 afs_FreeDiscardedDCache: Avoid assert on error Currently afs_FreeDiscardedDCache will assert if it cannot read in any discarded dcache entry to free. Return an error instead of asserting, so the caller can figure out what to do about the error. Adjust the callers to handle the error, or panic. afs_MaybeFreeDiscardedDCache still just panics anyway, as making it handle the error gracefully is beyond the scope of this commit, and is work for another day. This changes afs_FreeDiscardedDCache to return an int. Reviewed-on: http://gerrit.openafs.org/8406 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 866a9fbbdd89735ab76a70cb6d6523db2b98e4c9) Change-Id: I42a3be4938e5a43c394475653075f9e03a9e7975 Reviewed-on: http://gerrit.openafs.org/10357 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Marc Dionne Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit eb9585879b3055c2c62d8cc880a6d24501d40aa6 Author: Andrew Deason Date: Thu Nov 1 15:43:09 2012 -0500 afs: Handle afs_AllocDCache errors Do not panic if afs_AllocDCache encounters an error and returns NULL. Instead, go into the normal retry loop that occurs if we couldn't free up any more free/discard dcache entries. Reviewed-on: http://gerrit.openafs.org/8405 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit e02185547e316667989a100f77e68b918481b597) Change-Id: I507a6329b7b4fadaa39d0dc907c15fb5647fc135 Reviewed-on: http://gerrit.openafs.org/10356 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Marc Dionne Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 03dd9be6bb8c85a77603194b06f890a16b0c5fc0 Author: Andrew Deason Date: Thu Nov 1 15:32:31 2012 -0500 afs_AllocDCache: return NULL instead of panic Currently afs_AllocDCache will panic if we cannot get a valid dcache from the free/discard lists. Instead, return NULL, so the caller can decide how to handle the error. Currently the caller will just panic anyway, but that will be addressed in a future commit. Reviewed-on: http://gerrit.openafs.org/8377 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 64ee7b32f134e6431eb2894ed4397f8b1fea25ad) Change-Id: Ica8f1539279c30f4914ab84161c6bc2f0468d565 Reviewed-on: http://gerrit.openafs.org/10355 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Marc Dionne Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 2679af764de250448e3c7c8344c961f9b8149fd7 Author: Andrew Deason Date: Thu Nov 1 13:41:06 2012 -0500 afs: Traverse discard/free dslot list if errors Currently, when we pull a dslot off of the discard or free list, we just try to get the first entry from the list, and panic if we cannot get it. Instead, traverse through the whole list, trying to find an entry we can successfully get. This introduces the helper function afs_GetDSlotFromList to do this traversal. This does not yet address the case where we cannot get any entry on the relevant list. Reviewed-on: http://gerrit.openafs.org/8376 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 336939179721d79a6798614ff747dd06701e3edc) Change-Id: I12d8cfbe7d1fe7bbe50b49bcee34a8a5dced1569 Reviewed-on: http://gerrit.openafs.org/10354 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Marc Dionne Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 9d40feb5977bcaf897b869b52a9ae39c1a86a096 Author: Marc Dionne Date: Tue Nov 2 18:14:07 2010 -0400 volser: add missing Makefile dependencies Add some missing dependencies in the volser Makefile to prevent trying to compile while a header file is still being generated. This caused parallel make errors on some slower systems. Reviewed-on: http://gerrit.openafs.org/3244 Reviewed-by: Simon Wilkinson Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear (cherry picked from commit 6f1da57603cf86109e096001018ba9b0f1dd18b5) Change-Id: Ib2d64abfe4b10af03d0d3d7b6550afa931ccd3a0 Reviewed-on: http://gerrit.openafs.org/10337 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 01bf3b2ad70d63759588860b4ceed83bac3572a3 Author: Stephan Wiesand Date: Mon Oct 21 14:23:50 2013 +0200 Revert "build: compile_et rules for parallel make" This reverts commit 6c3adb6db781ef4b15d9336a63b40d3a79b11264. While gerrit 10310 may be correct, it at least triggers some other problem, causing significantly higher failure rates for parallel builds. This is especially true in combination with gerrit 10337, where there's at least one known case of 100% failure rate. A different solution, modifying compile_et to allow it to emit a single file per invocation, is being worked on. For the time being, revert 10310 on the 1.6 branch to get parallel build stability back to the previous level. Change-Id: I372d64868f7f7d0e7185f575212f16e453299b1c Reviewed-on: http://gerrit.openafs.org/10349 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Marc Dionne Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 994da1669293c7c341b5f73fdb7eaebbe530ec90 Author: Christof Hanke Date: Tue Oct 8 11:53:17 2013 +0200 linux-kernel-module: move keyring-specific function afs_set_session_keyring into if defined(LINUX_KEYRING_SUPPORT) block. Otherwise compilation fails. Reviewed-on: http://gerrit.openafs.org/10324 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit b0d75d0687a3436201411384c570448a49a9db15) Change-Id: I268a32a09a80865cf127332c079583e5dba1ae67 Reviewed-on: http://gerrit.openafs.org/10325 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Christof Hanke Reviewed-by: Stephan Wiesand commit 6c3adb6db781ef4b15d9336a63b40d3a79b11264 Author: Michael Meffie Date: Mon Sep 9 22:25:50 2013 -0400 build: compile_et rules for parallel make Change all makefile rules which run compile_et in order support parallel make. The compile_et generates two outputs, so special care must be taken in rules which run compile_et. All the rules for compile_et have been changed to the form: foo.c foo.h: foo.et compile_et foo.et -h foo foo.h: foo.c The above rules are equivalent to: foo.c: foo.et compile_et foo.et -h foo foo.h: foo.et foo.c compile_et foo.et -h foo therefore a parallel make will serialize the builds of foo.c and foo.h, and should detect that the second is no longer needed once the first is over. This form works since foo.et is not a phony target, and does not depend on a phony target. Previously, the rules for compile_et were of the one of the two forms: a) foo.c foo.h: foo.et compile_et foo.et -h foo or b) foo.h: foo.c foo.c: foo.et compile_et foo.et -h foo Form a) is problematic for parallel makes, since it is equivalent to: foo.c: compile_et foo.et -h foo foo.h: compile_et foo.et -h foo In a parallel make, compile_et will be run concurrently, clobbering each other's output files. Form b) is better, but is problematic when foo.h is removed, since foo.h will not be updated. Thanks to Russ Allbery for pointing out the automake documentation which describes issues with commands that produce multiple outputs, and portable solutions. http://www.gnu.org/software/automake/manual/automake.html#Multiple-Outputs Reviewed-on: http://gerrit.openafs.org/10237 Reviewed-by: Benjamin Kaduk Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit dbf68229c6c90d65781fdc16565dd1e9b56248c0) Change-Id: Ibb5a5e9c85245d716b1b203a15adbe5c87d860b7 Reviewed-on: http://gerrit.openafs.org/10310 Reviewed-by: Jeffrey Altman Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit caad18b1bd1ab2edd2aed62307b0ca86c686f0bd Author: Marc Dionne Date: Sun Apr 17 14:06:57 2011 -0400 adminutil: parallel build fixes Rearrange the Makefile to make it more parallel build proof. Add some dependencies on the header files, and avoid rules with 2 targets. Reviewed-on: http://gerrit.openafs.org/4497 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit c721bff5035b6e2d87e10be0f4711133b33dc5dc) Change-Id: Id66cd9557696224a6555f2ceb534fd27794f990a Reviewed-on: http://gerrit.openafs.org/10309 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit 30f197727d8dcc361e1df07238d88f8bedf5038d Author: Andrew Deason Date: Wed Sep 11 11:22:20 2013 -0500 Probe directly for com_err.h com_err.h can be in com_err.h, et/com_err.h, or krb5/com_err.h (for netbsd 6.1 and possibly other netbsd). aklog currently only includes either com_err.h or et/com_err.h, depending on autoconf probes performed by the krb5.m4 macros. So, also look for krb5/com_err.h. The krb5.m4 macros currently only look for com_err.h at all if certain other libkrb5 tests return certain results, so just look for all of them directly in some of our openafs-specific krb5 probing logic in configure.ac. Also remove the duplicate check for et/com_err.h in acinclude.m4 while we're here. We only use et/com_err.h if krb5 support is enabled, so only check for it in the second of krb5 probes. FIXES 131716 Reviewed-on: http://gerrit.openafs.org/10244 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 8e32b11be6ce0517f75588360a3ca8c333358ca3) Change-Id: I567959b6d26ece9606086f4d82c5be40b11d7ea8 Reviewed-on: http://gerrit.openafs.org/10275 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit 8e39eaa93a3f02eb85eabc9161fe4064026ff1be Author: Andrew Deason Date: Wed Sep 25 00:25:48 2013 -0500 Whine if single-DES keys are in use If we are using single-DES keys in our KeyFile, yell at the administrator, so they have a chance at realizing that they should migrate to stronger crypto. Reviewed-on: http://gerrit.openafs.org/10273 Tested-by: BuildBot Reviewed-by: Jeffrey Altman (cherry picked from commit 4212c7e604bebcb8f20b67c60323263231611bfb) Change-Id: I00b47889e7e79819a3c5d347349686e5d2da30e8 Reviewed-on: http://gerrit.openafs.org/10274 Tested-by: BuildBot Reviewed-by: Michael Meffie Tested-by: Michael Meffie Reviewed-by: Andrew Deason Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit ea4018f9ee2b6af0549125c62e6be88094207021 Author: Michael Meffie Date: Mon Sep 23 21:23:27 2013 -0400 doc: state klog.krb is obsolete State upfront that klog and klog.krb (v4) are obsolete. Update the klog.krb description and remove some redundant text. Reviewed-on: http://gerrit.openafs.org/10270 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 8fc86de33e95efc5cdcd73131d97a2afd1ad935a) Change-Id: I1fbd3920495a855b34e8547e90a941d36cafdfdf Reviewed-on: http://gerrit.openafs.org/10314 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit 9ae91dfe4767be0d7c097304d04a68cfee8c6c14 Author: Michael Meffie Date: Mon May 13 13:59:50 2013 -0400 vldb_check: print vlentry file offsets To aid in debugging, consistently print the vlentry database "address" and the file offset when displaying errors for vlentries. Print the vlentry file offsets when printing all the entries with the -entries option. Reviewed-on: http://gerrit.openafs.org/9906 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Derrick Brashear (cherry picked from commit ccb66323a0a74b35b44aa901a49490a5021d46e0) Change-Id: I4a3e7296b7b6cd8a228e4d44b591c572bdbb5c70 Reviewed-on: http://gerrit.openafs.org/10269 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit 513a8fee6e60a7a369664aca9ba15789672783bd Author: Christof Hanke Date: Wed Aug 28 14:51:13 2013 +0200 Linux Keyring error handling honour the returncode of key_instantiate_and_link() to avoid having non-working pagsh without an error. Reviewed-on: http://gerrit.openafs.org/10179 Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Derrick Brashear (cherry picked from commit c7f5a212025172307e85e09ada03333e5e288cc3) Change-Id: Ib5809e36ae8e87190206d75286bbeb23ace34b25 Reviewed-on: http://gerrit.openafs.org/10255 Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 8cef9359cd3ff5bd7c36465e09a6d616f70f3cd0 Author: Derrick Brashear Date: Fri Sep 13 11:13:05 2013 -0400 linux: core dump requires write fop turns out not just writev is unhappy with aio_write (only); core dumping wants a write file op. always provide it. FIXES 131729 Reviewed-on: http://gerrit.openafs.org/10251 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 13165c05836bcd4b3f5655ab2bcc979ff859efa2) Change-Id: I35f16004164af79621307de1973d25e75b01ec2c Reviewed-on: http://gerrit.openafs.org/10254 Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 51af11f297b54d79c3b54c9e6a0316db732d1047 Author: Christof Hanke Date: Thu Sep 12 09:25:31 2013 +0200 LINUX: Keyring deal with suse-specific key_type op instantiate_prep used for checking for STRUCT_KEY_TYPE_HAS_PREPARSE Reviewed-on: http://gerrit.openafs.org/10194 Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 9db8b123e4dab6c25ef4166ad3fa74aaa0f630f4) Change-Id: I94e44be4d370c7096140162bea9ba1ad8fd69781 Reviewed-on: http://gerrit.openafs.org/10252 Reviewed-by: Derrick Brashear Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit acb2fb8cf896845b84b2b49e82fbd3eb662e08e7 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. Reviewed-on: http://gerrit.openafs.org/7393 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 3fc800be9c702c1a40869908831a9895602909cb) Change-Id: Icfeb1bad816ff5c3220581c7adf541d8b87df989 Reviewed-on: http://gerrit.openafs.org/10174 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit ae8c311e207712e87421967749c79250a89d27ff Author: Derrick Brashear Date: Thu Sep 12 08:09:34 2013 -0400 linux: provide read and write ops even when we have aio read/write will fall back to aio ops but e.g. writev will fail if there is not either a write or writev op explicitly. force the fallback via do_sync_read/do_sync_write required with 2.6.18-348.x rhel kernels but probably not newer ones Reviewed-on: http://gerrit.openafs.org/10246 Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit e6af2ffc86af17c4be427384467c4122fc5301b3) Change-Id: I1b10a6428b1975ef5c76e1ff40217758ff7d90d9 Reviewed-on: http://gerrit.openafs.org/10248 Reviewed-by: Stephan Wiesand Reviewed-by: Marc Dionne Reviewed-by: Jason Edgecombe Tested-by: BuildBot commit ccc7a46b419141d7c28e89e2292f4e5d8cdb7683 Author: Andrew Deason Date: Fri Sep 20 15:13:43 2013 -0500 rx: Always call rxi_StartListener Commit c10f5296 made rx_Init only call rxi_StartListener in the kernel if we have RXK_LISTENER_ENV. But this doesn't make any sense, since rxi_StartListener only does anything if RXK_LISTENER_ENV is _not_ defined. As a result, for any non-rxk-listener non-rx-upcall platform, we never receives rx packets in the kernel, since we never set up our rx packet callback. The only such platform appears to be AIX, since while other platforms (HPUX, FBSD, IRIX) have a non-rxk-listener mode, they also implement an rxk-listener mode that we always turn on. So, just always call rxi_StartListener, and let the ifdef guards for the various implementations of rxi_StartListener do the right thing. FIXES 131725 Reviewed-on: http://gerrit.openafs.org/10263 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 2aa26fcb4e3cf5fa85a3aee3263893a0443a2b75) Change-Id: Id98c29175ec811195183c35c2c43c6c4de817dfc Reviewed-on: http://gerrit.openafs.org/10272 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit ad8b40dc80bb5196bcda61858efc1a817ab4b9d1 Author: Michael Meffie Date: Mon May 13 13:47:06 2013 -0400 vldb_check: cope with broken names and volids Fix-up broken vlentry names and rw volid so entries can be looked up in the vlserver and can be deleted with vos delentry if needed. Reviewed-on: http://gerrit.openafs.org/9905 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 7a89c4f94440ac1c8ebf16107ece3b56c178ffc9) Change-Id: I2cf2d711f6dee08b2d27429ff4d37290bc21b9a2 Reviewed-on: http://gerrit.openafs.org/10268 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit a33157bc62c3bae5975b2316ce62b6d09195601d Author: Christof Hanke Date: Fri Sep 13 11:47:08 2013 +0200 afsd: check if mountdir is an absolute path if the mountdir in the cacheinfo file is not absolute, it can confuse commands like "df". Thus, force it to be absolute. Reviewed-on: http://gerrit.openafs.org/10250 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit fb623d5da30e6d304f672d8485da2e1781afa5df) Change-Id: I80542020848c901e57e7440cb1ed2149aa0d3251 Reviewed-on: http://gerrit.openafs.org/10253 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 4f14bf220e0fa75fda39dee2b4453b431555b388 Author: Andrew Deason Date: Thu Aug 1 14:06:52 2013 -0500 DAFS: Remove AFS_DEMAND_ATTACH_UTIL Currently we have two DAFS-related preprocessor defines in the codebase: AFS_DEMAND_ATTACH_FS and AFS_DEMAND_ATTACH_UTIL. DAFS_FS is the symbol for enabling DAFS code, and turns on demand attachment and all of the related complicated volume handling; it requires pthreads. DAFS_UTIL is supposed to be used for utilities interacting with DAFS, but do not have pthreads and so cannot build the relevant threads for e.g. the VLRU, so they don't support demand attachment and a lot of more advanced volume handling techniques. Having both of these exist is confusing. For example, currently in partition.c we only initialize dp->volLockFile for DAFS_FS, even though the structure exists if _either_ DAFS_FS or DAFS_UTIL is defined. This means when only DAFS_UTIL is defined, volLockFile will exist in the partition structure, but will be uninitialized! Amongst other possible issues, this means right now that DAFS_UTIL users (dasalvager is the only one right now) will try to use an uninitialized volLockFile whenever they try to use a volume that needs locking. Since the partition struct is usually initialized to all zeroes, this means we'll try to issue a lock request for FD 0, whatever FD 0 is. If FD 0 is not open, we'll fail with EBADF and bail out. But if FD 0 is open to some random file, the lock will probably succeed, and we'll proceed without actually locking the volume lock file. While the fssync volume checkout mechanism still works, the on-disk locking mechanism protects against race conditions the fssync volume checkout mechanism cannot protect against, and so handling volumes in this way is not safe. This is just one example; there are other issues with the partition headerLockFile and probably may other things; most instances of DAFS_FS really should be enabled for DAFS_UTIL as well. So, instead of trying to account for and fix all of these problems individually, get rid of AFS_DEMAND_ATTACH_UTIL, and just use AFS_DEMAND_ATTACH_FS. This means that all relevant code must be pthreaded, but since the only relevant code is for the dasalvager, we can just make dasalvager pthreaded. Salvaging does not make use of any threads or LWPs, so this should not have any side-effects. Thanks to Ralf Brunckhorst for reporting the issue where we encounter EBADF when FD 0 is not open, leading to the discovery of this. Reviewed-on: http://gerrit.openafs.org/10123 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 7f15a1bbb34fa6f0d52800880f31be367d77a64f) Change-Id: I56904bc5989ffe346af9213584dee2ef5ce190ff Reviewed-on: http://gerrit.openafs.org/10167 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit 8db96f4848669ce2e765eda64ce0b0d28a8e20ef Author: Michael Meffie Date: Tue Aug 20 16:48:34 2013 -0400 bozo: cap retry delay Cap the retry delay to a reasonable amount of time instead of just doubling the delay until it reaches 16 hours. Reviewed-on: http://gerrit.openafs.org/10148 Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 21c8f4809ee7af9d2ec76cb37747183cee0c0d33) Change-Id: If10880ba5411af0ea66bcb50c8cce13f4155f2ad Reviewed-on: http://gerrit.openafs.org/10199 Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 466e8cb15e794e13ef27a0aaa7be6abad499d66d 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. Reviewed-on: http://gerrit.openafs.org/5534 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 170ce3db8a32c2b5df68ada3e84ecdaa98785e71) Change-Id: I4f3863c31318ba9c5950ef74ec0a04b31decfebb Reviewed-on: http://gerrit.openafs.org/9571 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 5ef139d769d4d3d43840e3a537a9939dd1d2d1e3 Author: Marc Dionne Date: Wed Jan 9 18:42:32 2013 -0500 gcc 4.8: fix warnings Quiet new warnings introduced by gcc 4.8: - Many unused typedefs under src/admin. - A possibly uninitialzed variable under src/viced Reviewed-on: http://gerrit.openafs.org/8913 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear (cherry picked from commit 684d1ec6ba4bb7e96404328d02be5d070ba63478) Change-Id: If887f461dc2bed37b342bb514334f0058b0aceda Reviewed-on: http://gerrit.openafs.org/10242 Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit 8e14537c605b3b6867c923dfef782492191939c7 Author: Marc Dionne Date: Tue Sep 3 07:55:14 2013 -0400 Linux 3.11: Adapt to d_count changes In preparation for upcoming changes in the 3.12 cycle, d_lockref was introduced late in the 3.11 cycle. The dentry's d_lock and d_count are moved to this new structure. A new d_lock macro makes the change transparent for locking, but direct users of d_count must adapt. A new d_count() helper function is provided and should now be used. Use the new d_count() helper function if available, and move some of the ifdef logic into a helper compatibility function. Reviewed-on: http://gerrit.openafs.org/10219 Tested-by: Jeffrey Altman Reviewed-by: Simon Wilkinson Reviewed-by: Jeffrey Altman (cherry picked from commit 1f577e41b65e9bd213a915a296ecf5bedd17fcc1) Change-Id: I43db7b00f966a214259b6814d0308b7164e31295 Reviewed-on: http://gerrit.openafs.org/10241 Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Reviewed-by: Andrew Deason Tested-by: BuildBot commit 47fb5837820e0dcf46c0c19a15b81848e75be3aa 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 Reviewed-on: http://gerrit.openafs.org/7076 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 34afb3e6b903fc1659b1c869fa2fb4226038e076) Change-Id: I06912a70af9f3cd54f4a5368e996a7308e687c20 Reviewed-on: http://gerrit.openafs.org/10243 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit b4de9dc5b030c04cfee5514ef8ca4f4497713699 Author: Andrew Deason Date: Mon Jun 3 16:28:44 2013 -0500 volser: Use the new IH_CREATE_INIT function Use IH_CREATE_INIT when restoring volume data, so we don't open each restored data file twice. Reviewed-on: http://gerrit.openafs.org/9970 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit ba42758ce218e8985adc0129d0ee3ffa8690537f) Change-Id: I01a0506fefce299aa7dc799e3ff494dfbeb2b894 Reviewed-on: http://gerrit.openafs.org/10178 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 93c574365cf5926e1640f25d39f311fa9868e763 Author: Andrew Deason Date: Thu May 30 17:53:56 2013 -0500 namei: Create the IH_CREATE_INIT function Create a new function that combines calls to IH_CREATE and IH_INIT into one operation; the new function is called IH_CREATE_INIT. This allows a caller to create a file and then use it, without needing to open() the file twice. This is currently only implemented for the Unix namei backend; other backends result in effectively the same functionality (but can use the same API). Reviewed-on: http://gerrit.openafs.org/9969 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit aaa2584c0498037529a30c985ac8a437ec7d842c) Change-Id: I5018418cea63ba19ef0ef3bb047e3f9799a93293 Reviewed-on: http://gerrit.openafs.org/10177 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 2c619d2105ed3d0846640a48c0c4a8d687691c8d Author: Andrew Deason Date: Thu May 30 17:52:32 2013 -0500 ihandle: Refactor ih_open to split out ih_attachfd Refactor the function ih_open, so part of its logic gets split out into the new ih_attachfd_r (and ih_attachfd) function. This allows other code to splice in an existing fd, without going through the normal "open" path. This patch should incur no functional change; it is just code reorganization. Reviewed-on: http://gerrit.openafs.org/9968 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit f40e20d5671310500fb4f6acf38980e158a74c66) Change-Id: I40bb515b5c822c3be3d3819c0183091753c41dea Reviewed-on: http://gerrit.openafs.org/10176 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 2d1ed3a1108de01ac6a967daf3fc71646703b9f2 Author: Andrew Deason Date: Thu May 30 17:40:58 2013 -0500 ihandle: Fix fdInUseCount leak on EMFILE Here, we close closeFd, but currently we don't decrement fdInUseCount. Since we retry the open immediately afterwards, this means we can leak fdInUseCount references. For example, if we retry this 5 times and get EMFILE on each attempt, we will close 5 FDs, but not decrement fdInUseCount at all. To fix this, decrement fdInUseCounter when we close a file for EMFILE. Reviewed-on: http://gerrit.openafs.org/9967 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 48344381d7a87a3617ec14ffc9f2d9735805ada6) Change-Id: I03aee981c0b9663ac937c6165796f19366acec1e Reviewed-on: http://gerrit.openafs.org/10175 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 0f795f08158ca65242b943ff89525e6901970bec Author: Michael Meffie Date: Thu Sep 12 12:20:33 2013 -0400 auth: fix cellservdb update check Fix a bug introduced by the check to avoid excessive stats of the cellservdb. Fixes a bug where cached cell config data is served for up to one second after a write. Check the timeRead field which is reset after a write to indicate the data should be read. Fixes commit 5cdc211b8bf1b3f5419ebe52ecc9d3772ffdf9a6 on the 1.6.x branch. Reviewed-on: http://gerrit.openafs.org/10230 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear (cherry picked from commit 73ae85bd59cfe9fca2daeb7dc0aa0917368bb5bf) Change-Id: I01c09383b0ba417aca13b2ef7724d4fde91e327a Reviewed-on: http://gerrit.openafs.org/10247 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 6e29c74fbd304e29b9d6309b4a79db17416fb081 Author: Mark Vitale Date: Fri Jan 25 18:47:49 2013 -0500 salvager: prevent assertion during -orphans attach Improve JudgeEntry() detection of orphaned directories to prevent unintentional deletion of their '.' and '..' entries. This in turn prevents a later assert (opr_Verify) when we try to delete and re-add '..' in order to attach the orphan. In JudgeEntry(), 2 sources of information about a directory entry are compared for consistency: - vnodeEssence (unique) from its vnode index entry - name, vnodeNumber and unique from its dir blob entry A directory entry may be ignored, deleted, or repaired/replaced, based upon the results of these and other tests (e.g. dirOprhaned). The '.' and '..' entries are treated as special cases because we do not want to delete them at this point if this directory is orphaned. However, the current test for orphanhood (vnodeEssence->unique == 0) is not sufficient; it could be zero for other reasons. This commit now uses the dirOrphaned flag to test for this. However, we are still interested in doing the right thing for '.' and '..' entries with vnodeEssence->unique == 0. This may indicate that the dir blob entry is pointing at the wrong vnode, and that vnode has unique==0. The current code incorrectly ignores (returns 0) this case. This commit now now falls through to the repair/replace code so that we can find the correct vnode for this entry. The current code assumes that the 'vnodeEssence == 0 && !dirOrphaned' case doesn't exist. Thanks to Andrew Deason for his assistance. Reviewed-on: http://gerrit.openafs.org/9104 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit e8faeae6dcae0e566de2b21d53d3f78f3cc44e3f) Change-Id: Ibc9e6ddf1f281e3a3a560ed1eefcdb4776e12caa Reviewed-on: http://gerrit.openafs.org/10165 Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit 2879ab9b26fd67bfa802b54bc4ac316a9448f1d1 Author: Chaskiel Grundman Date: Wed Aug 14 23:36:42 2013 -0400 Declare sigwait parameter if it will be used Make sure the 'sigw' parameter for sigwait is declared if it's going to be used (it was missing for netbsd) Derived from 18b932f (http://gerrit.openafs.org/2767) Change-Id: I53f79ef5eb9ff132e99b78ca87f125e832d2e5f0 Reviewed-on: http://gerrit.openafs.org/10138 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit c358d7cbbdf24de7d62d9ae3f514201a31bed2f9 Author: Ben Kaduk Date: Tue Jul 16 20:39:56 2013 -0400 Check for over/underflow while allocating PTS ids The behavior of signed integer over/underflow is implementation-defined, but even if the compiler is nice and just wraps around, we could get ourselves into trouble later on. Reviewed-on: http://gerrit.openafs.org/10091 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Mark Vitale Reviewed-by: Derrick Brashear (cherry picked from commit 6c7c185ba3ec6fbdda0651d18868e66edd655809) Change-Id: I1feb1879cce064760ae061538215b22b6fd55933 Reviewed-on: http://gerrit.openafs.org/10124 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 7242e25ae28da95b11b98e1353333b0ca70dc6d5 Author: Anders Kaseorg Date: Tue Jul 23 17:11:24 2013 -0400 aklog: Put ${AKLIBS} after ${AFSLIBS} on the linker command line Systems with newer, stricter linkers (such as Ubuntu saucy) require this ordering because libauth.a uses symbols from libk5crypto. Fixes this build failure: gcc -o aklog -g -O -I/…/openafs/src/config -I/…/openafs/include -I. -I. -D_LARGEFILE64_SOURCE -DALLOW_REGISTER aklog.o aklog_roken.o krb_util.o linked_list.o -Wl,-Bsymbolic-functions -Wl,-z,relro -lkrb5 -lk5crypto -lcom_err /…/openafs/lib/libprot.a /…/openafs/lib/libauth.a /…/openafs/lib/libubik.a /…/openafs/lib/librxkad.a /…/openafs/lib/libsys.a /…/openafs/lib/librx.a /…/openafs/lib/libsys.a /…/openafs/lib/liblwp.a /…/openafs/lib/libdes.a /…/openafs/lib/libafscom_err.a /…/openafs/lib/libcmd.a /…/openafs/lib/libafsutil.a -lresolv /usr/bin/ld.bfd.real: /…/openafs/lib/libauth.a(akimpersonate.o): undefined reference to symbol 'krb5_c_make_random_key@k5crypto_3_MIT' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libk5crypto.so: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[5]: *** [aklog] Error 1 make[5]: Leaving directory `/…/openafs/src/aklog' Change-Id: Ibb12178d85e37e21320706eaafb84c7457d16e6c Signed-off-by: Anders Kaseorg Reviewed-on: http://gerrit.openafs.org/10107 Reviewed-by: Andrew Deason Reviewed-by: Christof Hanke Reviewed-by: Benjamin Kaduk Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 36426f4569d1c8ea9f6828e3b93d6df3745fbbbf Author: Andrew Deason Date: Thu Mar 28 16:42:58 2013 -0500 aklog: Probe for libasn1 on heimdal aklog uses encode_EncTicketPart and some other encode_* ASN.1 routines when we're building against heimdal. Our krb5 autoconf logic from c-rra-util is not guaranteed to include libasn1 in KRB5_LIBS, since it's not required for functions in the krb5 API. So, specifically test for it. Related issue reported by Måns Nilsson. Reviewed-on: http://gerrit.openafs.org/9693 Tested-by: BuildBot Reviewed-by: Russ Allbery Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear (cherry picked from commit 1942d2a4fc90703e64e1c97ba10d2918ba584e73) Change-Id: Ibf3713ff5027ec3b410e4b19ffd11f5449357248 Reviewed-on: http://gerrit.openafs.org/9917 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit ff472ae83739de3f10900da272ae389defa259a1 Author: Andrew Deason Date: Tue Mar 26 17:50:31 2013 -0500 volser: Make VolListOneVolume errors consistent Currently, VolXListOneVolume errors out with ENODEV if any attachment error occurs with the specified volume. But VolListOneVolume always returns success if it can find the indicated volume, and any attachment errors and such are reported in the 'status' field of the volume info structure. These two functions do pretty much the same thing; VolXListOneVolume just provides more info than VolListOneVolume. So make them behave the same way, and provide more specific information, whether or not somebody ran 'vos examine' or 'vos examine -extended'. The 'vos' binary has always handled errors in the 'status' volume info structure for both "extended" and non-"extended" queries. This difference appears to just have been a mistake from OpenAFS 1.0. Reviewed-on: http://gerrit.openafs.org/9680 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Derrick Brashear (cherry picked from commit 199cfb4a885b98b583f538ed14dff7ec5c9f9990) Change-Id: I397c6b49eb7cfaef1c4dae16c1158dc0411701a3 Reviewed-on: http://gerrit.openafs.org/9916 Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit c637c4c6155c4b7c98669cfd3eed514f89c2e9fe Author: Andrew Deason Date: Tue Mar 26 17:26:23 2013 -0500 volser: Restore Vol*ListOneVolume error handling In the 1.4 series, the volserver VolListOneVolume function always returned success if the specified volume was found in any way, and ENODEV otherwise. The VolXListOneVolume returned ENODEV if the volume was not found, or if any error occurred. DAFS (specifically, commit ed25934c1fe96b143715025b49104e75dce9a361) changed these so they both behave the same way. That is, they both return success if the volume was found at all, and ENODEV otherwise. Commit 53cc2ebaea5e5488d5285f0d13ffa47069ee986f changed both of these functions so that we always return an error on any attachment error. These changes mean that a 'vos examine' for a volume with an existing volume transaction now indicates that a volume is offline/unattached, but in the 1.4 series, the volume was indicated as "busy". So, restore the original 1.4 behavior of these functions, so the volume status is reported as it always was. This effectively reverts 53cc2ebaea5e5488d5285f0d13ffa47069ee986f, and slightly changes the post-DAFS code to look more like the 1.4 code. This also removes the 'code' variable from VolListOneVolume and adds an explicit comment about what's going on, to make this a little more clear. While changing the behavior of VolXListOneVolume to match that of VolListOneVolume perhaps makes sense, for now just restore the exact 1.4 behavior, and make the function flow look a little more like the 1.4 code did. A future change may make them the same again. Reported by Andy Malato. Reviewed-on: http://gerrit.openafs.org/9679 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 71afa42cdd9107b071fb79f0adaf96c5fcf145da) Change-Id: I2d7143bf4fde98a11104c5071317a2d2545f41c4 Reviewed-on: http://gerrit.openafs.org/9915 Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit dc02aa435650b1cdf2c2aaa84c143ce19c7707e6 Author: Andrew Deason Date: Tue Mar 26 17:00:05 2013 -0500 volser: Indicate busy volume with VBUSY Commit 34fc86bcc749f3bd059831b7e5dae03dc09a9393 changed several uses of VBUSY to VOLSERVOLBUSY in order to detect retriable operations. However, one such change did not change an Rx abort code, but instead was used for the 'status' field for a volintInfo or volintXInfo structure. That is not really a general error code, but a field with a few specific known values (at least, that is how existing clients interpret it). Go back to using VBUSY, so clients indicate the volume as busy, instead of as offline/unattached. Reported by Andy Malato. Reviewed-on: http://gerrit.openafs.org/9678 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear (cherry picked from commit 3929282d2767bd35e54037e5477e917979c84be3) Change-Id: Ic6efeeca7f37d05704b09a3244bcf40641cae5ea Reviewed-on: http://gerrit.openafs.org/9685 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 9cf1206f1695a806fa0d5829737fd39bab2db5e3 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. Reviewed-on: http://gerrit.openafs.org/3312 Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit dfceff1d3a66e76246537738720f411330808d64) Change-Id: I2e47c7ddac74f75b6f650327028644e178cfc574 Reviewed-on: http://gerrit.openafs.org/9477 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 3ddea6c9cc770b3fcc2669b6b43d44deea5f2d03 Author: Andrew Deason Date: Thu Jul 21 13:20:54 2011 -0500 afsd: Add the -rxmaxfrags option Add an option to afsd to limit the number of fragments Rx will send/receive, called -rxmaxfrags. Reviewed-on: http://gerrit.openafs.org/4899 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear (cherry picked from commit ba546ecf0c6a404f2efced2e600826621876ffcf) Change-Id: Idb93fc60b3056604c1d415ac7fc134ee672ceefe Reviewed-on: http://gerrit.openafs.org/9430 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 86ce4dcac924440c29024906bfda89e8d6f030a7 Author: Marc Dionne Date: Wed May 29 10:33:44 2013 -0400 Linux: Remove extra "goto out" from tmpfs fix Remove a stray "goto out" that should not have been applied in this spot along with the tmpfs fix. Thanks to Stephan Wiesand for pointing it out. Reviewed-on: http://gerrit.openafs.org/9953 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit f393612d8f0a121d0cb8755f3eb9913c0f09606d) Change-Id: Ief9521bb41ae1a853b14282b166c62de165a3dc8 Reviewed-on: http://gerrit.openafs.org/10193 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 7a40c83337cb4ff07646ea7c2cc0d6d98be94bff Author: Marc Dionne Date: Wed May 22 09:26:57 2013 -0400 Linux: Fix tmpfs cache support As of kernel 3.1, tmpfs no longer has a readpage() operation in its address space operations. Some of the cache manager code relies on this, causing an oops if tmpfs is used as backing store for the cache. As a minimal fix, detect that there is no readpage() and disable the optimizations that depend on it. Reviewed-on: http://gerrit.openafs.org/9949 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 3767cf8bf420bd59c3426a4287259b1e97178e96) Change-Id: I4fa0f2449eabf4dc82e5450c0b378b9ebe49d848 Reviewed-on: http://gerrit.openafs.org/9950 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 0b591f452e62032fe9f70610b1a671d620e5d724 Author: Michael Meffie Date: Thu Nov 4 09:26:25 2010 -0400 avoid private stdio fields in waitkey Use the stdio_ext functions provided by solaris and glibc instead of directly accessing private stdio FILE structure members. This is needed for 64-bit solaris builds and is more portable in general since the FILE structure is meant to be opaque. This is a backport of commit aac929badb5e40a59ae77ae69fc43df8f6f376fc, without the changes to remove duplicate code. Reviewed-on: http://gerrit.openafs.org/3257 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit aac929badb5e40a59ae77ae69fc43df8f6f376fc) Change-Id: I2953fe9d27edb30365266b1f4372e5fd18baf06e Reviewed-on: http://gerrit.openafs.org/9604 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit d64031f3b81ed472e91a4e6823068f81ffefb064 Author: Michael Meffie Date: Wed Jan 16 12:10:02 2013 -0500 vlclient: add -probe option Add a new option to the vlclient test program to call the probe server RPC to ping the vlservers in a cell. Uses a multi rx call to do the probes in parallel. The existing -host option can be used to ping a single vlserver. Reviewed-on: http://gerrit.openafs.org/8911 Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit bb733da134ce7d7742d5b7359edb36f67ec85632) Change-Id: I9d26e072fafa3e785bb1bc2eb0d8db43fbc1ff57 Reviewed-on: http://gerrit.openafs.org/9570 Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 22c9c452ec2f4b5a4ebc4d69c1c3e1495c34a382 Author: Michael Meffie Date: Thu Oct 6 08:33:37 2011 -0400 bozo: build notifier sample program Build the smail-notifier sample program. Reviewed-on: http://gerrit.openafs.org/5555 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit ac88af748e25a40d062c888396aab8670ff8426a) Change-Id: Idb845fe0a3f7fd6581f6756b899be140db625123 Reviewed-on: http://gerrit.openafs.org/9568 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 1984f86fcfa094b7e7b2a2c37d8f3690b6e20aa3 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. Reviewed-on: http://gerrit.openafs.org/7574 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 387fe294f663abd9c92cd007869e2e9e8cc11d69) Change-Id: I45b278b59649526b62eb83353cfe31465e79c712 Reviewed-on: http://gerrit.openafs.org/9487 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 0dbe0a8dc7306b17a05685fc5e224b0a4eb0223d 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. Reviewed-on: http://gerrit.openafs.org/7514 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit fff80cb1983a8cf7ccf1c1dc4f69e232785700c5) Change-Id: I08f0ac2c4fb803cf7553a03beaa30439abab4e61 Reviewed-on: http://gerrit.openafs.org/9480 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit c94a12c9a759d8fb4558dd878a6299ca77b35eb1 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. Reviewed-on: http://gerrit.openafs.org/7231 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear (cherry picked from commit 2460e132a9ed63714754745fe24f6f3a5712c81d) Change-Id: Ic86d3f3ed5791f880b41533edcd405a8fec24c0b Reviewed-on: http://gerrit.openafs.org/9476 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 903b5847cc017b7164542990dca022f6c41c4ed2 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. Reviewed-on: http://gerrit.openafs.org/6787 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 46e85dd4682a3273e15bbf96c4d5492087555cab) Change-Id: I545e9ad8d54ad63dbe8e221dfc6947446135cbb7 Reviewed-on: http://gerrit.openafs.org/9462 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 42a59d23a327380fc94ca2ff04bc5e4ff3bbf305 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. Reviewed-on: http://gerrit.openafs.org/6786 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 2a1719faa810663d6d9cf774339e286c18ef2717) Change-Id: I295ef6c982991bdeeb533c55e6ba6d3175789ce6 Reviewed-on: http://gerrit.openafs.org/9461 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit ac0ce5d6ef57206cbad7dc2779c371a6b7bd46e4 Author: Andrew Deason Date: Thu Mar 31 17:22:12 2011 -0500 salvager: Error volumes on GetInodeSummary errors When GetInodeSummary fails due to an internal failure (not from just failing to find applicable inodes), currently it just returns an error, and does not return the checked-out singleVolumeNumber back to the fileserver. When we fail to gather inodes, we should force the volume to an error state, since we haven't salvaged the volume. But if we fail to find any applicable inodes, we just want to VOL_DONE the volume, since the header has possibly been destroyed, and the volume doesn't exist. So, issue an FSYNC_VOL_FORCE_ERROR command when we encounter errors in GetInodeSummary, except when we fail to find applicable inodes. Reviewed-on: http://gerrit.openafs.org/4439 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 8084fc28a3069949bdc788f048fa8a96c012b96d) Change-Id: I64e8e1ac8e3386d09a3bcd7696a2d0f70ded33b0 Reviewed-on: http://gerrit.openafs.org/9459 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 3648401e204a9d447766ff0999d747b24aebdc55 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. Reviewed-on: http://gerrit.openafs.org/6784 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 839638870986ebd4cf992f7a2c81a23e37c14228) Change-Id: I0008d46d07c2ce763e70605b9260a7f71a86044a Reviewed-on: http://gerrit.openafs.org/9458 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 98222fb3b0b9adebb734195c7c21f646fc7c9b70 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. Reviewed-on: http://gerrit.openafs.org/6783 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 76f12c2389fd2a8e09b4e869730169401d154ce9) Change-Id: I4d59de02a190a6d175735482aa102a496407f32a Reviewed-on: http://gerrit.openafs.org/9457 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 91dd02f73529cca3bd105ada62b5e51f9b60f416 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. Reviewed-on: http://gerrit.openafs.org/6422 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 2e5545342b0c644546f8a370bdbf836a6da68b60) Change-Id: Ib9ef1702af1ff20d836b1c1649fc1182c93e209b Reviewed-on: http://gerrit.openafs.org/9455 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit f048005be43287768b7fac28907f063eea07d2cd 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. Reviewed-on: http://gerrit.openafs.org/6421 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 98a6db0b047efcfbeb0fb3c8b1e4e136b206f10d) Change-Id: I6036c6e599c1fe57bae79516cb4333219afd75cf Reviewed-on: http://gerrit.openafs.org/9454 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 134c0b631ee45c162064c723c11bcb8e371fe7d7 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. Reviewed-on: http://gerrit.openafs.org/6390 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 83d3084e95ac025660f0b8064f49400eb94bfb60) Change-Id: I4c2217bc18502d8b761645f38522c02fc91c4084 Reviewed-on: http://gerrit.openafs.org/9452 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 9e9bce4b5ff987ce72a7923ca2d2765797d47f5b Author: Andrew Deason Date: Thu Apr 22 17:09:18 2010 -0500 Remove the global tempHeader/stuff structures Currently, volinodes.h defines an array ('stuff') for easily accessing information about different inode types. Part of the array points to parts of a global 'tempHeader' structure, making this not threadsafe. Change this into an interface which utilizes local storage to make this threadsafe and remove those horridly-named global variables. This adds the init_inode_info static inline function, for initializing a local inode information table. Reviewed-on: http://gerrit.openafs.org/1869 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit d8f2debce49a8a0eb310bdaf8ad0ee7601a0542e) Change-Id: I1567e9184327b1cfa397b0bf37d611c2e8c2b8a1 Reviewed-on: http://gerrit.openafs.org/9409 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand Reviewed-by: Mark Vitale Tested-by: BuildBot commit f0ce80536adc9c6fa7b42286e999c325516695d3 Author: Mark Vitale Date: Fri Dec 21 18:26:18 2012 -0500 vol: correct old conditional for IH_CONDSYNC Two places in the vol package performed IH_CONDSYNC(vp->linkHandle) only if AFS_NT40_ENV. This was correct when the namei implementation was windows only; however, this ifdef was apparently overlooked when namei was implemented for UNIX. Reviewed-on: http://gerrit.openafs.org/8815 Reviewed-by: Derrick Brashear Reviewed-by: Michael Meffie Tested-by: BuildBot (cherry picked from commit 19f424ecc26b02b210a3ba54b93846dddba14ede) Change-Id: I944004d77ab17938465aa39f37d931df0adcd725 Reviewed-on: http://gerrit.openafs.org/9510 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit fea397b0433ae3cc1155a3f826b0776eee23a497 Author: Andrew Deason Date: Wed Nov 28 17:22:21 2012 -0600 vol: Let non-usable volumes attach for non-DAFS Before DAFS, volumes that were not inService/blessed were not accessible by normal clients, but were still allowed to attach. That is, access to clients was prevented at VGetVolume-time, rather than at attach-time. Commit 939382c5 tried to short-circuit this by detecting this volume state at attach-time. However, volume utilities (e.g. volserver) can give us back a volume over FSSYNC when they are done with the volume, and for non-DAFS, we then try to attach the volume. So, with 939382c5 that attachment will fail when volserver gives us back a volume that is not inService/blessed (which can happen for some normal volume operations). This situation is not terrible, since either way the volume is not usable by clients (since the volume didn't attach), and the volume is still usable by volserver (since volserver is allowed to check out nonexistent volumes). But it is a deviation from pre-DAFS behavior and it can result in confusing error messages, so revert the 939382c5 behavior for non-DAFS. For DAFS, this behavior is fine, since the fileserver does not attach a volume unless it is trying to service a client request. So, leave it for DAFS. FIXES 131505 Reviewed-on: http://gerrit.openafs.org/8557 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 988f66c5c3bd4c4f23bfa53e69a52ed52c4e3ab9) Change-Id: I08b55b30047fc19788e2c83ada1ecd80456f1f74 Reviewed-on: http://gerrit.openafs.org/9499 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 115299e8aeedefa1c3f64e65f91a4ea0a5a2427f 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. Reviewed-on: http://gerrit.openafs.org/7566 Tested-by: BuildBot Reviewed-by: Tom Keiser Reviewed-by: Derrick Brashear (cherry picked from commit dda5cc0c5f7172aa4edf58c0f876c8bf05590889) Change-Id: I93760c1bd337a76079bf03dcba1d9c4e32cd692e Reviewed-on: http://gerrit.openafs.org/9483 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 8ff592b56d2ed74a01da8090637e06cab2cc1c19 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. Reviewed-on: http://gerrit.openafs.org/7516 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 4f9c3f2be9abd5548dd52888b49c407d574b6557) Change-Id: I8e2b9d2a114f8aea283145ca44bf8ae52c354908 Reviewed-on: http://gerrit.openafs.org/9482 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit e7c6ff13868cfbf0c3374b52877a2d9d932dfa3e Author: Anders Kaseorg Date: Tue Jul 23 14:30:20 2013 -0400 Do not expose afs_assert.h from other public headers afs_assert.h redefines the standard assert macro, which is evil and breaks some applications that might want to include our public headers (e.g. some versions of Cython). This was fixed on master by commit cac74242728ad97e3ce9cef0a949d58c237250f6, which removes afs_assert.h entirely and adds opr_Assert. Since that patch may be too invasive for 1.6.x, here’s a minimal patch that just stops exposing afs_assert.h from our other public headers. Change-Id: I39a7b9ae8d43cfe0059e10e47ce4b1c22e01c544 Signed-off-by: Anders Kaseorg Reviewed-on: http://gerrit.openafs.org/10096 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit 5640a55409fe88642b8b1ef55449052f22d65092 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 Reviewed-on: http://gerrit.openafs.org/6101 Tested-by: BuildBot Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear (cherry picked from commit 2332ee3aa8e21738ed4aa42b53edd4e2ae0a2984) Change-Id: Ic77354893101acda867aa8e4c8ea7a2932666d5b Reviewed-on: http://gerrit.openafs.org/9490 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit ab524b5ed55bdcd296bea28ec717c0708e0c2553 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. Reviewed-on: http://gerrit.openafs.org/7515 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit a43f0e4717fd72727ae325eb4437cef065419cdd) Change-Id: Iaa2320808c4855516192b164de9778c9019a4559 Reviewed-on: http://gerrit.openafs.org/9481 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit 821bfd32682164f29228770c8152d68f37837b4b Author: Chaskiel Grundman Date: Wed Aug 14 23:31:46 2013 -0400 Eliminate pointless changes between nbsd50/60 params param.nbsd60.h removed AFS_64BIT_ENV and added an empty expression to an #if. AFS_64BIT_ENV is required for any platform to build (on 1.6) This is a 1.6-only change. On master, AFS_64BIT_ENV was removed entirely in commit fc9aa428. Change-Id: I57d7e2a2ef5ab4bf787a99083d35ba70e240710c Reviewed-on: http://gerrit.openafs.org/10137 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Jonathan A. Kollasch Tested-by: Jonathan A. Kollasch Reviewed-by: Stephan Wiesand commit 5cdc211b8bf1b3f5419ebe52ecc9d3772ffdf9a6 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. Reviewed-on: http://gerrit.openafs.org/5743 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman (cherry picked from commit 0e3bfa033ed230fcb46ad8e3c26c8b7aae6e00af) Change-Id: Ia533d037cc772c085cfaad47035e2a29df64952e Reviewed-on: http://gerrit.openafs.org/9435 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit e77d5cea4a11677fea03abb2eb88717a1b686a94 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]. Reviewed-on: http://gerrit.openafs.org/5790 Reviewed-by: Marc Dionne Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit f199ac666195771a02e3ebb040c6e5fe47c58c58) Change-Id: I70be3c518d2b1ccd51e050532d966a27cf22090f Reviewed-on: http://gerrit.openafs.org/9434 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit b324d126c899dfe38d8eb8be8074beca60fdbb4c Author: Michael Meffie Date: Tue Apr 9 04:00:16 2013 -0400 libafs: initialize hard mount last errors Initialize the values of the server last errors introduced in commit 94a8ce970d57498583e249ea61725fce1ee53a50 to avoid logging garbage for the last error codes. Reviewed-on: http://gerrit.openafs.org/10082 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 495d6fcbba1630b136d9c1b4256f0a71666a8a7b) Change-Id: I4402838d761ab4bbb3e0798f219dfb825347b090 Reviewed-on: http://gerrit.openafs.org/10085 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 9ad6dfb3508bfcf658c0223adcf019840423782a 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. Reviewed-on: http://gerrit.openafs.org/7572 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 568adf7d18eb17a42caa263aabc92a686f0ae121) Change-Id: I715e7ede7ea92be65a134116ecb4d1b7e2ccd264 Reviewed-on: http://gerrit.openafs.org/9485 Reviewed-by: Michael Meffie Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Reviewed-by: Andrew Deason Tested-by: BuildBot commit 9a533f1661e322629f027c8755d07fe262ee926b 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. Reviewed-on: http://gerrit.openafs.org/6992 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman (cherry picked from commit 9498cebd11ac26ed7986b5496440159f7ef745f2) Change-Id: Ia5b2d95e05bed0fb89aeb6132008d58de68c96a0 Reviewed-on: http://gerrit.openafs.org/9467 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 53005f4fe7b6df5263d399f0aec9fee3078e39bc Author: Andrew Deason Date: Thu May 12 10:57:09 2011 -0500 viced: Enable NAT ping on hosts Turn on NAT ping on the Rx connection for the callback channel for hosts. This should help improve behavior for clients behind NATs and stateful firewalls, even for clients that predate NAT ping functionality. Reviewed-on: http://gerrit.openafs.org/4646 Tested-by: Andrew Deason Reviewed-by: Derrick Brashear (cherry picked from commit aafdc08cfc49da4c23ecd91f9e690fd70e95df55) Change-Id: I428b6648276ec49fd4f003b3cf2d88a07c8aa1d9 Reviewed-on: http://gerrit.openafs.org/9420 Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Reviewed-by: Andrew Deason Tested-by: BuildBot commit 49a1ef5edfcbfcb411889081d89bc5c112e9033c Author: Mark Vitale Date: Tue Mar 12 22:13:20 2013 -0400 dafs: prevent corruption in large fsstate.dat files If while writing to the fsstate.dat file, it exceeds the current size of the file (multiples of FS_STATE_INIT_FILESIZE (8MiB)), we call fs_stateResizeFile. This un-mmaps, truncates, and re-mmaps the file. Unfortunately, fs_stateMapFile() resets the state->mmap.offset and .cursor, so any writes in flight over the resize will overwrite the first bytes of the file (and leave zeros in the file where the data should have been written). Upon return from the write that caused a file resize, the offset is eventually corrected and the state dump continues with a silent failure. Eventually the state dump completes and the file header is rewritten; this may conceal some or all of the overwrite damage at offset 0. However, any zeros near the 8MiB offset (and its multiples) remain as corruption. Add a flag to fs_stateMapFile() to allow the caller to specify if the offset and cursor should be preserved. Modify fs_stateResizeFile() to use this capability. testing note: temporarily reduced FS_STATE_INIT_FILESIZE to 256 bytes during testing in order to make the problem easier to reproduce. This problem would normally occur only on relatively large/active DAFS fileservers. Reviewed-on: http://gerrit.openafs.org/9599 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 42351db75e04e46012208d38f80dc17be7ab776d) Change-Id: I05a01ebce15e26534361863ed0f8d3161c3f8240 Reviewed-on: http://gerrit.openafs.org/9683 Reviewed-by: Michael Meffie Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit bad0b13a17183c93c926c694270dc18964ff443c 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. Reviewed-on: http://gerrit.openafs.org/7125 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 709a6358e1d1f6cc0b025522e1e595c50bb2b733) Change-Id: I2f142084fdb4e66c3e7841c9ac961cab417633a0 Reviewed-on: http://gerrit.openafs.org/9471 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand Tested-by: Stephan Wiesand commit fe524cc1a401e9c8ee57a00960bf47a24d29251e 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 Reviewed-on: http://gerrit.openafs.org/7108 Reviewed-by: Derrick Brashear Tested-by: Jason Edgecombe (cherry picked from commit 35becabed870d4bfe49abaa499d99a3ffb0a2d31) Change-Id: If14e0145404dcb81fb5d2184c0991fa3ca64a1df Reviewed-on: http://gerrit.openafs.org/9470 Tested-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Reviewed-by: Andrew Deason Tested-by: Stephan Wiesand commit fa147c02bcbc6c4f55a8100dafe4c29ee1290117 Author: Michael Meffie Date: Thu Jun 7 14:46:04 2012 -0400 libafs: fs flushall for unix cm Implement the fs flushall command on the unix cache manager to flush all volume data. Uses a new common pioctl code point VIOC_FLUSHALL (14), registered with the grand.central.org assigned numbers. Reviewed-on: http://gerrit.openafs.org/7540 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 4197bbecd9d0b2ff0b8eaec75a0df9a64f713cf0) Change-Id: Ia4e9eb070d279bf05dbe38ea9b99f1f2f6b9c6f0 Reviewed-on: http://gerrit.openafs.org/9390 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit 25e11eea9f9b0aac20ed495bdf306329a00c2fd1 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. Reviewed-on: http://gerrit.openafs.org/7539 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 82865811e49aae8b7b8ff9f5d995dc32518b9eb8) Change-Id: I88c9940748dcf7d179fcc2327cddcf222314560d Reviewed-on: http://gerrit.openafs.org/9389 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit ae5e71b4e25eb2aac9b7923ceb17909fa0c22438 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. Reviewed-on: http://gerrit.openafs.org/7538 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 36c6c46bd081e0278611c3bb6ae25dd765f10648) Change-Id: I0c4a001c20633a404c299359914f2368b4492901 Reviewed-on: http://gerrit.openafs.org/9388 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit de79977537f46cfc670136b8e5f7162e0f87c689 Author: Andrew Deason Date: Mon Nov 1 15:34:26 2010 -0500 Cleanup VOffline log message for non-DAFS Commit fd592c7674d4aa44dda90998b54d7b56947f6ed8 fixed the 'Volume X (Y) is now offline' message for DAFS, but the same problem persists for non-DAFS. Fix the non-DAFS case. Reviewed-on: http://gerrit.openafs.org/3213 Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 138ac6577eab40e25a796f7c18f3c39add000ed2) Change-Id: I3e0c53d93bcaad43a9fd7b20ccf32bc216601455 Reviewed-on: http://gerrit.openafs.org/9412 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Tested-by: BuildBot commit b2401a892177a56a519011ced023616080042156 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). Reviewed-on: http://gerrit.openafs.org/3892 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 112b9b35fc701ca26ba7f99c31a73a7a1eecbdc0) Change-Id: Ifd84a161125bd14799fab2f75f321ca164ef39d2 Reviewed-on: http://gerrit.openafs.org/9451 Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit 2a0f2de71841ddff402390457b80443bb9ac30ca 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 Reviewed-on: http://gerrit.openafs.org/6126 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 730832073a1e87654f28bfff054e24d4170c01dc) Change-Id: I019b38b6670d3a45b774740d324d5d49e23f94d1 Reviewed-on: http://gerrit.openafs.org/9436 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit d43bdbb42a7f7a5663f0944c4e672ca81aa7b940 Author: Simon Wilkinson Date: Thu May 19 18:19:29 2011 +0100 vlserver: Use correct base value when replacing When we're removing existing address entries the code calculates a base and index value for each entry that we're removing an address from. However, it then _uses_ a previously calculated base value, with the new index. This works fine if the old base and the new base match, but if they don't, chaos will ensue. Fix to always use matched base and index pairs. Reviewed-on: http://gerrit.openafs.org/4771 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit a180b0c5d8991a14f1fbd78d81dcb4754a24f4d3) Change-Id: I37372f020ad644f30b6dbdd1ed68b56eb1c0f2e2 Reviewed-on: http://gerrit.openafs.org/9429 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit c155fa4fe2a2c6ebc2da31083c24ddeb355b5700 Author: Andrew Deason Date: Fri May 21 15:54:33 2010 -0500 vlserver: Access cache via vl_ctx The vlserver application-level ubik cache (which consists of HostAddress, ex_addr, and cheader) is currently being accessed via global variables everywhere. Instead, access these via the new vl_ctx struct that is passed to functions during a transaction, so we have the ability to modify the cache without making all changes visible as we change it. Reviewed-on: http://gerrit.openafs.org/2105 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 1f532d099b8b084d43dd0140890448464325b602) Change-Id: I161b6c41e104af045941663f78148037313036ee Reviewed-on: http://gerrit.openafs.org/9422 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 08745d9e2abf92d2d99dc44ffd8fe7db658b6606 Author: Andrew Deason Date: Fri May 21 11:12:50 2010 -0500 vlserver: Add a struct for trans-specific data Instead of passing a ubik_trans pointer to many functions inside the vlserver, pass a vlserver-defined vl_ctx struct, so we can add new things to keep track of in a transaction that are not part of ubik. Reviewed-on: http://gerrit.openafs.org/2104 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 3bf0350218dcf4d6e086941fac394769b6b9cc4a) Change-Id: Ic224f1fab7505b486baa0a41e5481bc615f00826 Reviewed-on: http://gerrit.openafs.org/9421 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit 2870a6278079dd070aed278c8560cc0bc5590d36 Author: Andrew Deason Date: Thu May 12 10:21:09 2011 -0500 viced: h_SetupCallbackConn_r in removeAddress_r removeAddress_r has some code that is identical to the h_SetupCallbackConn_r function. Call the function instead. Reviewed-on: http://gerrit.openafs.org/4645 Tested-by: Andrew Deason Reviewed-by: Derrick Brashear (cherry picked from commit 0376255747ac17ed41afbc219f5a5978e58d8e9c) Change-Id: I9f7b4fbc6059a15b30d675a7c78ac9ff00ba32b0 Reviewed-on: http://gerrit.openafs.org/9419 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand Reviewed-by: Mark Vitale Tested-by: BuildBot commit ec46d5af2e2b85caa6a2a9ddd3527ceccebdf32a Author: Andrew Deason Date: Wed Dec 12 16:14:55 2012 -0600 LINUX: Avoid multiple d_invalidate loops Currently, in afs_linux_lookup, we put an artificial limit on how many times we loop through all dentry aliases, trying ti d_invalidate all of them. Instead of using an arbitrary limit, we can just go through all of them once, by using d_prune_aliases. This should be faster, and removes some of the logic required here. Note that this does remove our check for DCACHE_DISCONNECTED in each alias' d_flags. This should not be a problem, since we will still use any remaining DCACHE_DISCONNECTED dentry via d_splice_alias if one still exists. Reviewed-on: http://gerrit.openafs.org/8751 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear (cherry picked from commit 370aaaeafa43f804b0a5286d92b4ec5f1ccb62be) Change-Id: I1aa70afe8268852c676f241e0189bc010ad757aa Reviewed-on: http://gerrit.openafs.org/9288 Reviewed-by: Andrew Deason Reviewed-by: Marc Dionne Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit b645fd18a2686d0a098261dc4a1a5b54a44e8adf 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. Reviewed-on: http://gerrit.openafs.org/8203 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 3237543afafae7191635fd8e8cada1f95e8abcff) Change-Id: I44a9a56b849bc3c1473b290961190a47ad45f5b5 Reviewed-on: http://gerrit.openafs.org/9283 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand Reviewed-by: Mark Vitale Tested-by: BuildBot commit 8940b7436ab6828b7053d2f6c97cc7f9ae0930f4 Author: Ben Kaduk Date: Wed Jun 19 16:48:23 2013 -0400 db_dump.o depends on budb_errs.h Add INCLS and budb_errs.h accordingly. In contrast to master, budb did not have this already. Reviewed-on: http://gerrit.openafs.org/9996 Reviewed-by: Jeffrey Hutzelman Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 7af86ecffb737b050f67908b63f247e8361eacdc) Change-Id: Id8657c39d58a1f73e07bf5d9a5324cb343b3888b (cherry picked from commit e6d1db4643d023eda837c8ae37b82b0dc7d5ee4d) Reviewed-on: http://gerrit.openafs.org/10005 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 6a1c2d4a69471746978a9f2e95d1552f2f8f1a94 Author: Anders Kaseorg Date: Tue Jul 23 14:37:26 2013 -0400 volume_inline.h: Down with assert, again Commit 34767c6a0f914960c9a1efabe69dd9c312a2b400 replaced all assert calls in this file with osi_Assert, but shortly thereafter, commit db6ee95864a8fc5f33b7e95c19c8ff5058d37e92 added VTimedWaitStateChange_r with two new assert calls. These are precarious in a public header; fix them to osi_Assert like the ones in VWaitStateChange_r. Signed-off-by: Anders Kaseorg Reviewed-on: http://gerrit.openafs.org/10094 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 30fa9480dd99ed93fa642dd8ce9746760fb42180) Change-Id: Id0bc0e75de000cf3e4133aaf31f52d9a565c8d9f Reviewed-on: http://gerrit.openafs.org/10095 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit 00fd34a65c7914bfd480d892cc95e9f694e29f5f Author: Andrew Deason Date: Thu Nov 1 11:51:42 2012 -0500 afs: Handle easy GetValidDSlot errors Many callers of GetValidDSlot currently assume they will always get back a valid dcache, and will panic on getting NULL. However, for many of these callers, handling the NULL case is quite easy, since the failure to get a dcache can just result in an error directly, or obtaining the dcache is best-effort or just an optimization. This commit just handles the "easy" cases; some other callers require more complex handling. Reviewed-on: http://gerrit.openafs.org/8375 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit f74a0a7bbb37a8ab6050e833cf8d66abdff31854) Change-Id: Ic2c463edebcb821562541004bd4181483c90c3e6 Reviewed-on: http://gerrit.openafs.org/9287 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit bb80282ba95b23c85cc5f287ed174e37b4d374a7 Author: Andrew Deason Date: Wed Oct 31 15:04:55 2012 -0500 afs: Make last_error always useful Currently we record last_error as the last getuerror() we got when failing to read in a slot in UFSGetDSlot. For kernels that do not have getuerror(), this variable is currently useless, and we do not record anywhere what the last error received was (besides logging it via afs_warn). So, for non-uerror, just record what 'code' we got, so we at least have something. Reviewed-on: http://gerrit.openafs.org/8369 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 48b60478897e7cb22e9cc1adfa3b71c188572093) Change-Id: I32a079934c8d3ecd3d7316cfc7eb8da01580a08e Reviewed-on: http://gerrit.openafs.org/9286 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit f61880266f476fefbeacbe2a7af1e397b0ddadc3 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. Reviewed-on: http://gerrit.openafs.org/6946 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear (cherry picked from commit df522b588396aaac3ec662b516ef7287f3b7c47b) Change-Id: I7ae826b6d6747e3ab3a1d8086ff17503a904a6d5 Reviewed-on: http://gerrit.openafs.org/9282 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit b4f321f207f710bd62be53f653f45439e94992e0 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. Reviewed-on: http://gerrit.openafs.org/6945 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 0594fc80b48152b4b03edda7e19133b59fc0670e) Change-Id: I65491a9a82911d9c99d6238a4ea66ed400db7aa0 Reviewed-on: http://gerrit.openafs.org/9281 Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit 514fc63db0664f263ce0b5a9b37e6f97bbeec440 Author: Andrew Deason Date: Wed Jul 31 15:58:41 2013 -0500 budb: Do not use garbage cellinfo If the -servers option is given, we never initialize cellinfo or the clones array. So, don't give the cellinfo structure or the clones array to ubik in that case, or we may crash or do other weird things. This issue appears to have been introduced in commit fc4ab52e. FIXES 131706 Reviewed-on: http://gerrit.openafs.org/10115 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 6b0016dd992b3215cb17c93812e14de9e4916d25) Change-Id: I7174d3ac596fb9ecf512aa159fdc839714f8791c Reviewed-on: http://gerrit.openafs.org/10166 Reviewed-by: Derrick Brashear Reviewed-by: Benjamin Kaduk Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 2ee9f04c1cd26b93d6b773c4eec329a0d04648ea Author: Michael Meffie Date: Mon Dec 10 18:00:25 2012 -0500 xstat: length check cm call info Define the cm xstat function call counters with an xmacro to avoid duplicating the list of cm function names. This obviates the need to update xstat_cm_test.c when new function names are added to the cm xstat collection id 0. Check the number of returned records when printing the function call counts to avoid over-running when a newer xstat_cm_test client receives data from an older cm. Reviewed-on: http://gerrit.openafs.org/8741 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear (cherry picked from commit 09c0484fd8878797957f7ff5936c542a0f6332c4) Change-Id: I622a4f16cbb102962199f26e5431b04ea381d5fe Reviewed-on: http://gerrit.openafs.org/9065 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 008a0965615d0a16eb1eb402e4d240ebd70e73c2 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. Reviewed-on: http://gerrit.openafs.org/8197 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 0fc27471e7da0c5de4addcdec1bfbca5208072cc) Change-Id: I308d930c94708fd8d9025886c10f40cc4d10d195 Reviewed-on: http://gerrit.openafs.org/8910 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Tested-by: BuildBot commit 220336585530ff9f0b4b1e3b47e3dd6727a18ab3 Author: Simon Wilkinson Date: Tue Feb 26 11:52:01 2013 +0000 libafscp: NULL return value not pointer When afscp_FindCallBack sets its return-by-reference value to NULL, it should do so to the value itself, not the pointer to it. Caught by coverity (#988419) Reviewed-on: http://gerrit.openafs.org/9266 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear (cherry picked from commit 99929488511d13dab94491cac1d477062f9da741) Change-Id: I046189684cef6c88c46455a90ab49d03da1f1cab Reviewed-on: http://gerrit.openafs.org/9359 Tested-by: Andrew Deason Reviewed-by: Stephan Wiesand Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear commit 2d3ae77f9f26f64c88415a2e063e28c2cebeed1c Author: Simon Wilkinson Date: Tue Feb 19 17:53:11 2013 +0000 libafscp: Actually return callback from FindCallback Fix FindCallback so that it actually returns the callback that it found. This requires changing the function prototype so that the third parameter is passed by reference, and updating the single call site. Caught by clang-analyzer Reviewed-on: http://gerrit.openafs.org/9198 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit f67e4a3cdfb1856e31dda0d4741c8d34df13f8fc) Change-Id: Ia610993535acc68beef7e8cffcfac77db2638aa4 Reviewed-on: http://gerrit.openafs.org/9973 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit ac750113f34bcd03df3350ec9863b7b3c67efa25 Author: Mark Vitale Date: Fri Dec 21 17:56:14 2012 -0500 dafs: preattach should wait for exclusive states In rare circumstances an FSYNC_VOL_ON operation may fail silently, leaving the volume in its previous state. The only clue is a FileLog message "volume not in quiescent state". This is caused by a race condition in the volume package: an FSYNC_VOL_ON operation is attempting to preattach a volume (in VPreAttachVolumeByVp_r()) at the same time a fileserver RPC (e.g. FetchStatus) is detaching the volume (in VReleaseVolumeHandles_r()) at the conclusion of attach2() logic. The fix calls VWaitExclusiveState_r() before calling VPreAttachVolumeByVp_r(). Change-Id: Ib66859381d29311fda3e08984dcb740eadafb340 Reviewed-on: http://gerrit.openafs.org/8814 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear (cherry picked from commit 1f891b622e9b32a068082087eae9d787057f7f00) Reviewed-on: http://gerrit.openafs.org/9070 Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit fa085d0b3c53b94cb3d582269ee7a568bfbc7ccf Author: Ken Dreyer Date: Wed Jul 31 16:00:24 2013 -0600 do not ship uncompressed tarballs There's not much point to shipping uncompressed tarballs in 2013. Delete them during "make-release". Reviewed-on: http://gerrit.openafs.org/10116 Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand Tested-by: BuildBot Reviewed-by: Ken Dreyer (cherry picked from commit 0346ed6f53a6f3fb5d75de41c7ec5a139727618f) Change-Id: Ic1247c6a42ecb6a5c6bae1fd88b789a8b3e55d49 Reviewed-on: http://gerrit.openafs.org/10131 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit 0e8929f9a8cddac3ad806a1adaa72e3bf108719b Author: Ben Kaduk Date: Wed Mar 13 13:27:32 2013 -0400 Enable dvolser and tvolser for FreeBSD The top-level Makefile did not recurse into dvolser or tvolser for FreeBSD. They compile just fine, so enable them. Reviewed-on: http://gerrit.openafs.org/9598 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit e93360ecc79822dd8149990a6eb5f3235b7cca1f) Change-Id: Ia7dfbce23453a147f2c1ba81718373f632a039b6 Reviewed-on: http://gerrit.openafs.org/10122 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit fe99b4883af9eee954c3a3942b11cd9874690cb0 Author: Jonathan A. Kollasch Date: Tue Oct 11 12:33:19 2011 -0500 build tsalvaged, tvolser, and dvolser targets on *nbsd* Reviewed-on: http://gerrit.openafs.org/5595 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 1ca207f18491147bb7f7de3e588fb1979ac3d0c5) Change-Id: I8570370905fa4c3bbdd72f5535329cfab5bebf1a Reviewed-on: http://gerrit.openafs.org/10121 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Tested-by: Jonathan A. Kollasch Reviewed-by: Jonathan A. Kollasch Reviewed-by: Stephan Wiesand commit 83ef563a1ffadbc965c5863d11c488d46ceffc62 Author: Andrew Deason Date: Thu Jan 27 13:13:21 2011 -0600 afscp: Fix -s option for writes When writing to AFS with afscp, the -s option was sleeping before any StoreData RPCs actually got issued to the fileserver. Move the sleep to after we have done one rx_Read/rx_Write, so we sleep after starting to contact the fileserver, to make sleeping while writing more consistent with sleeping while reading. Reviewed-on: http://gerrit.openafs.org/3762 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 380cc22a45dff7e40cd50d57a56742b59ccc4952) Change-Id: I5bafad6958111bfb196adde79361939b00a176a1 Reviewed-on: http://gerrit.openafs.org/9417 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 23048745c9b8611a4e2e24c2b7ba01e103d8cf53 Author: Andrew Deason Date: Wed Nov 10 15:35:17 2010 -0600 afscp: Add -s option Add an -s option to afscp, to specify an amount of time to sleep in the middle of a read or write operation. This can be helpful in simulating a slow client. Reviewed-on: http://gerrit.openafs.org/3291 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 00023f168e0e097c6a7e9da4450a009e4818a1a5) Change-Id: Ifefce12d7372f9f8fe7149b91af0d0a7f128cb96 Reviewed-on: http://gerrit.openafs.org/9416 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit 5a89d8972d53ec913e1d7eec52955410b568aa86 Author: Ken Dreyer Date: Sat Jul 27 09:22:56 2013 -0600 doc: clarify setcrypt defaults Reviewed-on: http://gerrit.openafs.org/10111 Reviewed-by: Jason Edgecombe Reviewed-by: Michael Laß Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 3a24ed9baef178d34b6d0fb3a5f6a485dea9353b) Change-Id: I2d9cd3c9167e2d67ced609e5be2d173a82b36a28 Reviewed-on: http://gerrit.openafs.org/10136 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Ken Dreyer Reviewed-by: Stephan Wiesand commit 989b8a48c435b7561ded88dc43dfd73dcdf3c64e Author: Michael Laß Date: Sun Jul 14 21:31:27 2013 +0200 Use -nofork when starting bosserver via systemd Systemd does not expect the started process to fork unless "Type=forking" is given. Use -nofork to run BOS in foreground and allow systemd to track its state. Reviewed-on: http://gerrit.openafs.org/10087 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Marc Dionne Reviewed-by: Mark Vitale Tested-by: Michael Laß Tested-by: Ken Dreyer Reviewed-by: Ken Dreyer (cherry picked from commit e2d458c11956af6fe721f7151487cb19f07ac16f) Change-Id: I2b66ca126dbda6c2c616d74b571908c57d1e86e4 Reviewed-on: http://gerrit.openafs.org/10093 Tested-by: BuildBot Reviewed-by: Ken Dreyer Reviewed-by: Andrew Deason Reviewed-by: Stephan Wiesand commit bd52d1a2c3cb50aba533adc44a99e9c20db27706 Author: Andrew Deason Date: Fri Feb 8 17:24:28 2013 -0600 afs: Avoid SetupVolume panic Currently SetupVolume panics if it cannot successfully read a volumeinfo entry from disk. Try to return an error instead, so we don't panic the machine. Reviewed-on: http://gerrit.openafs.org/9094 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 6f7ae535bbac2a5376358801b7f2c9e072f2d141) Change-Id: Ib8ea06192bfcd6c2111444db325abc4a90190bbc Reviewed-on: http://gerrit.openafs.org/9131 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Stephan Wiesand commit 4d03cfc8bd6545e60ff63d206841dc8537e9d07a Author: Andrew Deason Date: Fri Feb 8 17:26:32 2013 -0600 afs: Move SetupVolume tv initialization after loop The fields in tv are not used by the loop looking for the given volume on disk. If we wait until after that loop to initialize the fields in tv, it is easier to handle errors encountered in the loop. This should incur no functional change. Reviewed-on: http://gerrit.openafs.org/9093 Tested-by: BuildBot Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Derrick Brashear (cherry picked from commit 8f95dc9eb92cb31f9d29eb87daac747f53b5a1cc) Change-Id: I65f3b647017aebacf28026a648c75b2d279c768e Reviewed-on: http://gerrit.openafs.org/9130 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Stephan Wiesand commit da2d64ce2f85e6b807a01f4a696a25fd989181b1 Author: Andrew Deason Date: Wed Jan 2 14:09:06 2013 -0500 afs: Check dv against localhero aincr For operations that modify directories, we call afs_LocalHero to determine if we can perform the directory modification in our local cache, and avoid fetching the dir blob from the fileserver. Currently, afs_LocalHero assumes that the DV received from the fileserver is correct, and will update the cache DV as long as we have a valid callback on the file. If for any reason the client cache falls out of sync with what's on the fileserver, this can cause the client to incorrectly believe its cache is up to date. Since, the cached data will be marked with the newest DV, even if the DV on the server has jumped to be larger than we expected. While the client cache should never fall out of sync with the fileserver, in the past this has been possible due to other bugs (fileserver idle dead processing and client VNOSERVICE handling). Assuming that the given DV is correct is also just unnecesarily fragile, since we can always check if it is correct, so just check it, and add some comments helping explain what's going on here. Note that regular file writes effectively already check this. Note that this change makes use of the 'aincr' argument to afs_LocalHero, which was previously unused. aincr appears to have been used for a purpose similar to this before OpenAFS 1.0, but was removed, possibly accidentally. It is possible this change negatively affects, or even breaks (unlikely), functionality with the AFS<->DFS translator. Although nothing of the sort has been seen, it is difficult to know one way or the other, due to the lack of available DFS translators. Reviewed-on: http://gerrit.openafs.org/8864 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 004e9f25634d76be58b5a60dfc3c9a058d8bcd26) Change-Id: Ie0a3ab5defc5dde3284ad7527fdd05835a85da7f Reviewed-on: http://gerrit.openafs.org/8898 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 0c5afaca547549e788d86962c7180d5de42488b5 Author: Marc Dionne Date: Mon Jul 8 10:53:00 2013 -0400 Linux 3.11: Convert from readdir to iterate file operation Convert the readdir function so that it can be used as the new "iterate" file operation. This new operation is passed a context that contains a pointer to the filldir function and the offset. The context is passed into the new dir_emit function that will call the function specified by the context. The new dir_emit function returns true on success, so we must be careful about how we check for failure since this is different behaviour from what filldir currently does. Reviewed-on: http://gerrit.openafs.org/10051 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 902b8809f03533ffa7731919930bb5178f77df6c) Change-Id: I12dc2517af66b66b2de6b2cb01d39e3a0cbc5fe2 Reviewed-on: http://gerrit.openafs.org/10118 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Jeffrey Altman Reviewed-by: Stephan Wiesand commit 984ff6cb2b3100ae3dd567c537dc3e4ae065f3ae Author: Derrick Brashear Date: Thu Jul 25 07:51:04 2013 -0400 dirpath: update keytab strings in windows this was missed in the pullup from 33eecea7db14d06c59e1081b970d4caf0af773ca Change-Id: Iee734bf06af4152ead5cfcf33bbbcafc39812c5a Reviewed-on: http://gerrit.openafs.org/10109 Tested-by: BuildBot Reviewed-by: Derrick Brashear commit 2f411f4f8c3e1116cb9bc515db598eda1e6cea1b Merge: 772a378 5f5b02a Author: Simon Wilkinson Date: Wed Jul 24 16:10:28 2013 +0100 Merge branch 'rxkad-kdf-1.6' into origin/openafs-stable-1_6_x Merge the changes necessary for OpenAFS-SA-2013-003 and OpenAFS-SA-2013-004 back into the stable branch. commit 5f5b02a57102af1a85fb9bdaaec31b6094d0c9c4 Author: Michael Meffie Date: Wed Jul 17 23:10:42 2013 +0100 ubik: Fix encryption selection in ugen Make sure that we encrypt when requested to by the application Change-Id: If4c2ba2257bf060d3e9169ccdbcae54f54dfe5d7 commit 772a378bc412d62e25dfa5d4d8b3c854ee8b604a 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. Reviewed-on: http://gerrit.openafs.org/7571 Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit 7a875f639f61966f2d327f929305091d2678e99a) Change-Id: I44301904cc8e7145ba13276a32b7cea475bc0574 Reviewed-on: http://gerrit.openafs.org/9484 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Derrick Brashear