commit aec7d1cfc4f7b8c0ef2f1505f853194196679c5a Author: Stephan Wiesand Date: Tue Jul 4 10:57:09 2017 +0200 Make OpenAFS 1.6.21 Update version strings for the 1.6.21 release. Change-Id: I27569473ad9b988829bb517419d3d04f4cfa8c0f Reviewed-on: https://gerrit.openafs.org/12649 Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 35b2b6b44f03b5df157b20972d727bf70369eb0c Author: Stephan Wiesand Date: Thu Jun 8 18:14:40 2017 +0200 Update NEWS for 1.6.21 Finalize the 1.6.21 release notes Change-Id: I09974201c8155dc697abbf29079e5ceb2a74e629 Reviewed-on: https://gerrit.openafs.org/12635 Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 39087b3d11cc7f896856ad6b29e87ff1c36eb057 Author: Stephan Wiesand Date: Wed Apr 19 15:55:02 2017 +0200 Make OpenAFS 1.6.21pre1 Update version strings for the first 1.6.21 prerelease. Change-Id: I700f0b110373e47f2f471f30ba8eefe9a3b6cf4f Reviewed-on: https://gerrit.openafs.org/12603 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Benjamin Kaduk Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand commit 622f4fe9a54cee03594227517db5b11719d6fdfc Author: Stephan Wiesand Date: Wed Jun 7 15:09:04 2017 +0200 Update NEWS for 1.6.21pre1 Release notes for the first OpenAFS 1.6.21 prerelease Change-Id: I9d01bd7856574e2c3da872854a5bffeac2119f3e Reviewed-on: https://gerrit.openafs.org/12634 Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 8a2d3fa036c34ec5dbd209f2ff3ea3b7ba23358d Author: Jeffrey Altman Date: Thu Jun 1 22:25:49 2017 -0400 vol: modify volume updateDate upon salvage change If the salvager changed the volume, set the VolumeDiskData.updateDate field so that 1. the change is visible via "vos examine" 2. backup services will backup the corrected volume Teradactyl pointed out the problem which forces cell administrators to manually trigger a backup for each volume that has been salvaged. Reviewed-on: https://gerrit.openafs.org/12629 Tested-by: BuildBot Reviewed-by: Stephan Wiesand Reviewed-by: Benjamin Kaduk (cherry picked from commit cdb92f94598e5b25fbcdfc6fb1650218ec05d63f) Change-Id: I0ecf0bf52a78cd6e1de4e79fc4a33cb509a816f5 Reviewed-on: https://gerrit.openafs.org/12633 Tested-by: BuildBot Reviewed-by: Michael Meffie Tested-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 7d5473963f25b23237a274ac5bb419e81dcbda61 Author: Michael Meffie Date: Wed Apr 29 11:54:45 2015 -0400 libafs: remove linux conditionals for md5 inode number calculation Remove the conditionals which hide the md5 digest calculation for inode numbers on non-linux platforms. This feature was originally added to support sites running on linux, but is generally useful and the implementation is not specific to linux. Reviewed-on: http://gerrit.openafs.org/11854 Tested-by: BuildBot Reviewed-by: Perry Ruiter Reviewed-by: Benjamin Kaduk (cherry picked from commit ac05e8ceebd05c2d8496759e70cf7b1b92541134) Change-Id: I8fd613c436120a6436f48920ce4f33570dfb1fb8 Reviewed-on: https://gerrit.openafs.org/12632 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 9359063394ad5a00cd42383b467f71609f1c6746 Author: Michael Meffie Date: Fri Jun 2 15:19:26 2017 -0400 bozo: do not fail silently on unknown bosserver options Instead of failing silently when the bosserver is started with an unknown option, print an error message and exit with a non-zero value. Continue to exit with 0 when the -help option is given to request the usage message. This change should help make bosserver startup failures more obvious when an unsupported option is specified. Example systemd status message: systemd[1]: Starting OpenAFS Server Service... bosserver[32308]: Unrecognized option: -bogus bosserver[32308]: Usage: bosserver [-noauth] .... systemd[1]: openafs-server.service: main process exited, code=exited, status=1/FAILURE Reviewed-on: https://gerrit.openafs.org/12630 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit f5491119ff7d422b1c0c311a50e30bec1c15296c) Change-Id: I5c3ffbb21915fd0a2773873e360cee85504796f8 Reviewed-on: https://gerrit.openafs.org/12631 Tested-by: BuildBot Reviewed-by: Michael Meffie Reviewed-by: Benjamin Kaduk Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit a40dcece9fb6b70c6bb7d28ecadcf99660517ba9 Author: Joe Gorse Date: Tue May 16 07:29:30 2017 +0000 LINUX: Switch to new bdi api for 4.12. super_setup_bdi() dynamically allocates backing_dev_info structures for filesystems and cleans them up on superblock destruction. Appears with Linux commit fca39346a55bb7196888ffc77d9e3557340d1d0b Author: Jan Kara Date: Wed Apr 12 12:24:28 2017 +0200 Reviewed-on: https://gerrit.openafs.org/12614 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit 63e530e7df0b8013bcc4421b0bba558d4f1d2d57) Change-Id: I48a49ee8852bf842c24e7df0609fe2184bf45d90 Reviewed-on: https://gerrit.openafs.org/12626 Tested-by: Stephan Wiesand Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 04102d7fa7f492d004f62b3e56f856014a1ad92a Author: Jeffrey Altman Date: Sat May 27 14:59:04 2017 -0400 rx: wake up send after 'twind' has been updated Beginning in AFS 3.4 and 3.5 the ack trailer includes the size of the peer's receive window. This value is used to update the sender's transmit window (twind). When the twind is increased the application thread is signaled to indicate that more packets can be sent. This change wakes the application thread after twind is updated by the peer's receive window instead of beforehand. Failure to do so can result in 100ms transmit delays when the receive window transitions from closed to open. Reviewed-on: https://gerrit.openafs.org/12625 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot (cherry picked from commit aaa47dc1077f0dd5b0040006c831f64cc8a303b5) Change-Id: Icfbe10f93a34adfb14f5c34198f78b67aa043c53 Reviewed-on: https://gerrit.openafs.org/12627 Tested-by: Stephan Wiesand Reviewed-by: Benjamin Kaduk Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit fa16f1edffac4234482e1b45efd084d435381e2f Author: Joe Gorse Date: Wed May 10 19:46:38 2017 +0000 LINUX: CURRENT_TIME macro goes away. Check if the macro exists, define it if it does not. Reviewed-on: https://gerrit.openafs.org/12611 Reviewed-by: Mark Vitale Reviewed-by: Benjamin Kaduk Tested-by: BuildBot (cherry picked from commit b47dc5482da614742b01dcc62d5e11d766a9432f) Change-Id: I1ed3706e830b98436a5a22d99fa338b01fd5b997 Reviewed-on: https://gerrit.openafs.org/12624 Tested-by: Stephan Wiesand Reviewed-by: Mark Vitale Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit 32571182cbd47b83bdb432c7a6905764413523f9 Author: Michael Meffie Date: Wed Apr 29 12:00:24 2015 -0400 afs: add afsd -inumcalc option This commit adds the afsd -inumcalc command line switch to specify the inode number calculation method in a platform neutral way. Inode numbers reported for files within the AFS filesystem are generated by the cache manager using a calculation which derives a number from a FID. Long ago, a new type of calculation was added which generates inode numbers using a MD5 message digest of the FID. The MD5 inode number calculation variant is computationally more expensive but greatly reduces the chances for inode number collisions. The MD5 calculation can be enabled on the Linux cache manager using the Linux sysctl interface. Other than the sysctl method of selecting the inode calculation type, the MD5 inode number calculation method is not specific to Linux. This change introduces a command-line option which accepts a value to indicate the calculation method, instead of a simple flag to enable MD5 inode numbers. This should allow for new inode calculation methods in the future without the need for additional afsd command-line flags. Two values are currently accepted for -inumcalc. The value of 'compat' specifies the legacy inode number calculation. The value 'md5' indicates that the new MD5 calculation is to be used. Reviewed-on: https://gerrit.openafs.org/11855 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit 0028ea92ad3e7aac6a4c51f63703a4d9d7b9dcd6) Change-Id: I9021eea9f64c754157061d039f63b6f744ec2ec5 Reviewed-on: https://gerrit.openafs.org/12608 Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Tested-by: Stephan Wiesand commit 703f7219ab1eb43cefe6f2805d5c46122dcff226 Author: Christof Hanke Date: Thu Sep 12 13:34:04 2013 +0200 client: flag in cachemanager if rmtsys is enabled when processing "fs sysname" on a client, a rmtsys-related checks are executed by default. These prevent a user with gid 2748 and 2750 (0xabc and 0xabe) from executing this command. Add a new flag inside the cachemanager for the rmtsys- functionality. This flag is set through a new ioctl by the afsd on startup. Reviewed-on: http://gerrit.openafs.org/10245 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit db1de98ecf6fd22b9c36b3ba284984f03cb0ae35) Change-Id: Ia2a367e4675782a681b4f6efd6365da482adfab8 Reviewed-on: https://gerrit.openafs.org/12607 Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Tested-by: Stephan Wiesand commit 2a011abc47a03f927d1501a95795a1597a12bdc3 Author: Marcio Barbosa Date: Tue Apr 18 13:04:13 2017 -0700 afs: release the packets used by rx on shutdown When the OpenAFS client is unmounted on DARWIN, the blocks of packets allocated by RX are released. Historically, the memory used by those packets was never properly released. Before 230dcebcd61064cc9aab6d20d34ff866a5c575ea, only the last block of packets used to be released: ... struct rx_packet *rx_mallocedP = 0; ... void rxi_MorePackets(int apackets) { ... getme = apackets * sizeof(struct rx_packet); p = rx_mallocedP = (struct rx_packet *)osi_Alloc(getme); ... } ... void rxi_FreeAllPackets(void) { ... osi_Free(rx_mallocedP, ...); ... } ... As we can see, ‘rx_mallocedP’ is a global pointer that stores the first address of the last allocated block of packets. As a result, when ‘rxi_FreeAllPackets’ is called, only the last block is released. However, 230dcebcd61064cc9aab6d20d34ff866a5c575ea moved the global pointer in question to the end of the last block. As a result, when the OpenAFS client is unmounted on DARWIN, the ‘rxi_FreeAllPackets’ function releases the wrong block of memory. This problem was exposed on OS X 10.12 Sierra where the system crashes when the OpenAFS client is unmounted. To fix this problem, store the address of every single block of packets in a queue and release one by one when the OpenAFS client is unmounted. Reviewed-on: https://gerrit.openafs.org/12427 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit 5b28061fb593f5f48df549b07f0ccd848348b93c) Change-Id: Id8606b1c1444861df69ed4af8169e343964a691d Reviewed-on: https://gerrit.openafs.org/12602 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 2b1383044788235a03c13dbeacd951a90a591d6b Author: Marcio Barbosa Date: Tue Jan 31 11:43:18 2017 -0300 vol: detach offline volumes on dafs Taking a volume offline always clears the inService bit. Taking a volume out of service also takes it offline. Therefore, if the inService flag is false, the volume in question should be offline. On dafs, an offline volume should be unattached. The attach2() function does not change the state of the volume received as an argument to unattached when the inService flag is false. Instead, this function changes the state of the volume in question to pre-attached and returns VNOVOL to the client. As result, subsequent accesses to this volume will make the server try and fail to attach this offline volume over and over again, writing to the FileLog each time. To fix this problem, detach the volume received as an argument if the inService flag is false. Since the new state of this volume will be unattached, subsequent accesses will not hit attach2(). This situation where a volume is not offline but is also not in service can occur if a volume is taken offline with vos offline and some time later the DAFS fileserver is shutdown and restarted; the volume is placed into the preattach state by default when the server restarts. Each access to the volume by clients then causes the fileserver to attempt to attach the volume, which fails, since the in-service flag in the volume header is false from the previous vos offline. The fileserver will log a warning to the FileLog on each attempt to attach the volume, and this will fill the FileLog with duplicate messages corresponding to the number of attempted accesses. Reviewed-on: https://gerrit.openafs.org/12515 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit 2421da2bf327525216ec7e79b9aa81fa2c4f77d5) Change-Id: I95cffb6a91797341d9202cbbef3b205c11348d5e Reviewed-on: https://gerrit.openafs.org/12569 Reviewed-by: Marcio Brito Barbosa Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Michael Meffie Tested-by: Michael Meffie Reviewed-by: Stephan Wiesand commit 72a48c34e79b6bf0ea251cf46122c973d1bf6555 Author: Mark Vitale Date: Mon Feb 20 20:16:47 2017 -0500 DAFS: do not save or restore host state if CPS in progress If a fileserver is shutdown while one or more PR_GetHostCPS calls are in progress, this state is saved in the fsstate.dat file as hostFlags HCPS_WAITING, HCPS_INPROGRESS. Other hosts that are merely waiting will have HCPS_WAITING recorded. However, it makes no sense to restore host structs in this state, because the GetCPS calls will no longer be in progress. Once these hosts become active, they will block server threads and quickly cause all server threads to be exhausted as other CPS requests are blocked behind them. Instead, exclude these states from both save and restore. Reviewed-on: https://gerrit.openafs.org/12561 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot (cherry picked from commit 38a3f51fb8b3910ecdd7cacb06f35ec681990aea) Change-Id: I0e02543fd2e547fcc9f95db0973f09e5951a1da1 Reviewed-on: https://gerrit.openafs.org/12568 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit fb7eceb7606c91d9cd8b3ce196a81c110c58a3be Author: Mark Vitale Date: Tue Jan 12 18:06:51 2016 -0500 afs: fs getcacheparms miscounts dcaches for large files fs getcacheparms issued with the -excessive option tabulates in-memory dcaches ("DCentries") by size. However, any dcache with validPos > 2^31 is miscounted in the 4k-16k bucket. This is caused by a type mismatch between 'validPos' (afs_size_t) and 'size' (int) which leads to a negative value for size by sign-extension. The size comparison "sieve" fails for negative numbers; it skips the first bucket (0-4K) and dumps them in the second one (4k-16k). Move the declaration of 'size' closer to its use, and declare it with the same type as 'validPos' (afs_size_t) so the comparison sieve correctly places these dcaches in the last (>=1M) bucket. Reviewed-on: https://gerrit.openafs.org/12347 Reviewed-by: Stephan Wiesand Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit b5e4e8c14130f601bbf43dee5927222ebf7613fa) Change-Id: I659fd86f05b29c1eac1a262d340bcc1ce2640797 Reviewed-on: https://gerrit.openafs.org/12605 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit bf222ca6ae9a36d246a0431b0244871637080a25 Author: Mark Vitale Date: Tue Jan 12 17:50:36 2016 -0500 afs: fs getcacheparms miscounts zero-length dcaches When fs getcacheparms is issued with the -excessive option, it tabulates all in-memory dcaches ("DCentries") by size. dcaches with validPos == 0 were being tabulated in the 4k-16k bucket. Fix the first comparison in the 'sieve' so these dcaches will be counted in the correct 0-4k bucket instead. Introduced by commit 176c2fddb95ced6c13e04e7492fc09b5551f273c Reviewed-on: https://gerrit.openafs.org/12346 Reviewed-by: Stephan Wiesand Reviewed-by: Benjamin Kaduk Tested-by: BuildBot (cherry picked from commit c966c0b8414ef0a041b1a8d5261c9eccd4d39d99) Change-Id: I53a20644f549550cef85f0cc6f3551ed5dbe1e23 Reviewed-on: https://gerrit.openafs.org/12604 Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit a1eac45d30d895b5d2e819637f6e50db5141ca59 Author: Stephan Wiesand Date: Thu Mar 2 12:52:10 2017 +0100 doc: clarify the fs wscell manpage What's displayed by fs wscell is not necessarily the current content of ThisCell, but that at the time of starting the client. Say so. FIXES 133339 Reviewed-on: https://gerrit.openafs.org/12537 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit bd15a5f56fde98983464acf5fd4cdd731d206d9f) Change-Id: I47d7b92488b1166934a1704765c0f1e914a178a8 Reviewed-on: https://gerrit.openafs.org/12559 Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit 7608ef72321a4899f96026298c8c20888a5f9019 Author: Marc Dionne Date: Sat Jan 29 12:09:30 2011 -0500 ubik: SVOTE_Beacon should hold the DB lock for CheckTid Reviewed-on: https://gerrit.openafs.org/4262 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 5548f6540557795ded65a52c7066839c5eef468f) Change-Id: I0d4a4d5e796bc6cb731f00db34cc0776f746ca85 Reviewed-on: https://gerrit.openafs.org/12516 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand commit e9b11ef3ae93b6b906fb4660af5743a6645a27b8 Author: Michael Meffie Date: Thu Jul 7 15:51:18 2016 -0400 doc: update information about vlserver logging Mention the vlserver -d option can be used to set the initial logging level. Thanks to Mark Vitale for the suggestion. Reviewed-on: https://gerrit.openafs.org/12324 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit f5f057ce8198480fb9c67f2a8c8eee906f8a7c4a) Change-Id: Iaa0f10d020d3993fe92690c860cdad03605d31ec Reviewed-on: https://gerrit.openafs.org/12477 Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit e64639b851e18a29003fd7d656673d00b2d90193 Author: Mark Vitale Date: Sat Jan 7 06:22:47 2017 -0500 LINUX: eliminate unused variable warning Commit c3bbf0b4444db88192eea4580ac9e9ca3de0d286 added routine osi_TryEvictDentries and included new logic for D_INVALIDATE_IS_VOID. Unfortunately, this new code path no longer uses dentry; it also should have been made conditional at that time. Wrap the declaration of dentry in #ifndef D_INVALIDATE_IS_VOID to eliminate the unused variable warning. Reviewed-on: https://gerrit.openafs.org/12505 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit 19599b5ef5f7dff2741e13974692fe4a84721b59) Change-Id: Ic15df733fcbccfaf9870ecd335bb2d549ab0d43d Reviewed-on: https://gerrit.openafs.org/12513 Tested-by: BuildBot Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 5757a0dc3debb6b1d7e47faee18373a2866e4b03 Author: Michael Meffie Date: Thu Aug 27 13:06:05 2015 -0400 afs: shake harder in shake-loose-vcaches Linux based cache managers will allocate vcaches on demand and deallocate batches of vcaches in the background. This feature is called dynamic vcaches. Vcaches to be deallocated are found by traversing the vcache LRU list (VLRU) from the oldest vcache to the newest. Up to a target number of vcaches are attempted to be evicted. The afs_xvcache lock protecting the VLRU may be dropped and re-acquired while attempting to evict a vcache. When this happens, it is possible the VLRU may have changed, so the traversal of the VLRU is restarted. This restarting of the VLRU transversal is limited to 100 iterations to avoid looping indefinitely. Vcaches which are busy cannot be evicted and remain in the VLRU. When a busy cache was not evicted and the afs_xvache lock was dropped, the VLRU traversal is restarted from the end of the VLRU. When the busy vcache is encountered on the retry, it will trigger additional retries until the loop limit is reached, at which point the target number of vcaches will not be deallocated. This can leave a very large number of unbusy vcaches which are never deallocated. On a busy machine, tens of millions of unused vcaches can remain in memory. When the busy vcache at the end of the VLRU is finally evicted, the log jam is broken, and the background deamon will hold the afs_xvcache lock for an excessively long time, hanging the system. Fix this by moving busy vcaches to the head of the VLRU before restarting the VLRU traversal. These busy vcaches will be skipped when retrying the VLRU traversal, allowing the cache manager to make progress deallocating vcaches down to the target level. This was already done on the mac osx platform while attempting to evict vcaches. Move the code to move busy vcaches to the head of the VLRU up the the platform agnostic caller. Thanks to Andrew Deason for the initial version of this patch. Reviewed-on: https://gerrit.openafs.org/11654 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk (cherry picked from commit 5c136c7d93ed97166f39bf716cc7f5d579b70677) Change-Id: If60b1889d012a739aa5b43e842abb80a6ebfdb6a Reviewed-on: https://gerrit.openafs.org/12451 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit c392d7990ebd53ab7a774148d254dc93f6f042b2 Author: Mark Vitale Date: Thu Aug 4 18:42:27 2016 -0400 LINUX: do not use d_invalidate to evict dentries When working within the AFS filespace, commands which access large numbers of OpenAFS files (e.g., git operations and builds) may result in active files (e.g., the current working directory) being evicted from the dentry cache. One symptom of this is the following message upon return to the shell prompt: "fatal: unable to get current working directory: No such file or directory" Starting with Linux 3.18, d_invalidate returns void because it always succeeds. Commit a42f01d5ebb13da575b3123800ee6990743155ab adapted OpenAFS to cope with the new return type, but not with the changed semantics of d_invalidate. Because d_invalidate can no longer fail with -EBUSY when invoked on an in-use dentry. OpenAFS must no longer trust it to preserve in-use dentries. Modify the dentry eviction code to use a method (d_prune_aliases) that does not evict in-use dentries. Reviewed-on: https://gerrit.openafs.org/12363 Reviewed-by: Benjamin Kaduk Tested-by: Benjamin Kaduk (cherry picked from commit c3bbf0b4444db88192eea4580ac9e9ca3de0d286) Change-Id: Ic72a280f136cc414b54d4b8ec280f225290df122 Reviewed-on: https://gerrit.openafs.org/12450 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit c3656b85c45cb18c780b9117e0fa7d37f916eb53 Author: Benjamin Kaduk Date: Thu Oct 27 17:27:26 2016 -0500 Reformat src/afs/LINUX/osi_vcache.c Apply the GNU indent options from CODING, with manual adjustments to leave jump labels in column zero. Also rename and mark static a function-local helper function. Reviewed-on: https://gerrit.openafs.org/12422 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot (cherry picked from commit 22933e02e2510f25b79230964f135571c7bfe710) Change-Id: I9fb2886ae2213218ae80ea9d5b80540b9c79077b Reviewed-on: https://gerrit.openafs.org/12449 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 362f11de086535b32989fcae50bae5713f647a66 Author: Mark Vitale Date: Thu Aug 4 18:18:15 2016 -0400 LINUX: split dentry eviction from osi_TryEvictVCache To make osi_TryEvictVCache clearer, and to prepare for a future change in dentry eviction, split the dentry eviction logic into its own routine osi_TryEvictDentries. No functional difference should be incurred by this commit. Reviewed-on: https://gerrit.openafs.org/12362 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot Reviewed-by: Joe Gorse (cherry picked from commit 742643e306929ac979ab69515a33ee2a3f2fa3fa) Change-Id: I750fc7606ca56e784a60bdbc13a32d21fe307429 Reviewed-on: https://gerrit.openafs.org/12448 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit f8fcaaa0648a750dc56477f2878f53967ac85e73 Author: Mark Vitale Date: Mon Nov 21 13:25:40 2016 -0500 doc: correct help for 'bos getlog' -restricted mode Commit f085951d39c0d6c1e6a626177c30235704317600 introduced an error in the bos getlog helpfile. Modify the helpfile to describe the actual restrictions imposed by -restricted mode. Reviewed-on: https://gerrit.openafs.org/12454 Reviewed-by: Benjamin Kaduk Tested-by: Benjamin Kaduk (cherry picked from commit 3af0460a4a6d7bf22e1789fd9e375659e20c3a55) Change-Id: Ifa544c322e67da712a0bc96b3797e51786e4d399 Reviewed-on: https://gerrit.openafs.org/12476 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 786e1fce50c2a9b1988ec05047061decc06229d5 Author: Stephan Wiesand Date: Wed Apr 5 16:41:43 2017 +0200 Update NEWS again for 1.6.20.2 Finalize the 1.6.20.2 release notes, including a few late additions. Change-Id: I32a394e4af700d52f487e0db528ed261e4c2131b Reviewed-on: https://gerrit.openafs.org/12591 Reviewed-by: Stephan Wiesand Tested-by: Stephan Wiesand commit 2c06cc8e406f5c6d7d56121ebbaa271fc99706e8 Author: Stephan Wiesand Date: Tue Apr 11 11:58:55 2017 +0200 Linux: only include cred.h if it exists Commit c89fd17df1032ec2eacc0d0c9b73e19c5e8db7d2 introduced an explicit include of linux/cred.h since the latest kernel no longer includes it implicitly in sched.h. Alas, older kernels (like 2.6.18) don't have this file. Add a configure test for the existence of cred.h and only include it if actually present. Reviewed-on: https://gerrit.openafs.org/12593 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot (cherry picked from commit 6b7b4239ab22fbb301e3b50e2ca4072445ba4e9e) Change-Id: I64970ba471180d32fa5af5445e7604bbe8511b32 Reviewed-on: https://gerrit.openafs.org/12598 Reviewed-by: Michael Meffie Reviewed-by: Benjamin Kaduk Tested-by: BuildBot Reviewed-by: Stephan Wiesand commit f7c0c066f458e52658199f6ccc66dc0db3b8b3ca Author: Mark Vitale Date: Thu Mar 23 18:36:44 2017 -0700 Linux v4.11: cred.h is no longer included in sched.h With Linux commit e26512fea5bcd6602dbf02a551ed073cd4529449, cred.h is no longer included in sched.h. Several components of libafs which require cred.h were picking it by including sched.h. Instead, explicitly add an include for cred.h. cred.h begins with a customary one-shot to prevent multiple loads: #ifndef _LINUX_CRED_H #define _LINUX_CRED_H Therefore we don't need a new autoconf test or preprocessor conditional to prevent redundant includes on older Linux releases. Reviewed-on: https://gerrit.openafs.org/12574 Tested-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Joe Gorse Tested-by: Joe Gorse Reviewed-by: Benjamin Kaduk Reviewed-by: Michael Meffie (cherry picked from commit c89fd17df1032ec2eacc0d0c9b73e19c5e8db7d2) Change-Id: I235a6272c55a8f734be07b578bbb1a324cf34e2e Reviewed-on: https://gerrit.openafs.org/12590 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit fbabbca365d8401203dcfa095b8c71e77e091936 Author: Mark Vitale Date: Thu Mar 23 15:10:03 2017 -0700 Linux v4.11: signal stuff moved to sched/signal.h In Linux commit c3edc4010e9d102eb7b8f17d15c2ebc425fed63c, signal_struct and other signal handling declarations were moved from sched.h to sched/signal.h. This breaks existing OpenAFS autoconf tests for recalc_sigpending() and task_struct.signal->rlim, so that the OpenAFS kernel module can no longer build. Modify OpenAFS autoconfig tests to cope. Reviewed-on: https://gerrit.openafs.org/12573 Tested-by: BuildBot Reviewed-by: Joe Gorse Tested-by: Joe Gorse Reviewed-by: Benjamin Kaduk Reviewed-by: Michael Meffie (cherry picked from commit ad001550949b612ff6b4899fa8da50ee58f87533) Change-Id: I491208d77e45d45cc0089b8033892a6408da431c Reviewed-on: https://gerrit.openafs.org/12589 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 3dd5078c16a48aad91e5ce4585bcc07a7d730b17 Author: Joe Gorse Date: Mon Mar 20 14:30:46 2017 +0000 Linux v4.11: getattr takes struct path With Linux commit a528d35e8bfcc521d7cb70aaf03e1bd296c8493f statx: Add a system call to make enhanced file info available The Linux getattr inode operation is altered to take two additional arguments: a u32 request_mask and an unsigned int flags that indicate the synchronisation mode. This change is propagated to the vfs_getattr*() function. - int (*getattr) (struct vfsmount *, struct dentry *, struct kstat *); + int (*getattr) (const struct path *, struct kstat *, + u32 request_mask, unsigned int sync_mode); The first argument, request_mask, indicates which fields of the statx structure are of interest to the userland call. The second argument, flags, currently may take the values defined in include/uapi/linux/fcntl.h and are optionally used for cache coherence: (1) AT_STATX_SYNC_AS_STAT tells statx() to behave as stat() does. (2) AT_STATX_FORCE_SYNC will require a network filesystem to synchronise its attributes with the server - which might require data writeback to occur to get the timestamps correct. (3) AT_STATX_DONT_SYNC will suppress synchronisation with the server in a network filesystem. The resulting values should be considered approximate. This patch provides a new autoconf test and conditional compilation to cope with the changes in our getattr implementation. Reviewed-on: https://gerrit.openafs.org/12572 Reviewed-by: Joe Gorse Tested-by: Joe Gorse Tested-by: BuildBot Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Benjamin Kaduk (cherry picked from commit de5ee1a67d1c3284d65dc69bbbf89664af70b357) Change-Id: I41ff134e1e71944f0629c9837d38cfbc495264c8 Reviewed-on: https://gerrit.openafs.org/12588 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand commit 3b5e0cee5b57fb1e4086439c5edcaaa499ba60da Author: Jonathon Weiss Date: Thu Nov 10 17:06:18 2016 -0500 Prevent double-starting client on RHEL7 On RHEL7 if the AFS client is stopped with 'service openafs-client stop', but that fails for some reason (most commonly because some process has a file or directory in AFS open) systemd will decide that the openafs-client is in a failed state when it is actually running. If one then runs 'service openafs-client start' systemd will start a new AFS client. At this point AFS access will continue to work until the functional AFS client is (successfully) stopped, at which point a reboot is required to recover. Have systemd check the status of 'fs sysname' before starting the AFS client, so we avoid getting into a state that requires a reboot. Reviewed-on: https://gerrit.openafs.org/12443 Tested-by: BuildBot Reviewed-by: Michael Meffie Reviewed-by: Benjamin Kaduk (cherry picked from commit c666bfee8848183ccbc566c9e0fa019088e56505) Change-Id: I2e7bf69ec5d1ae344d38b86fc3caace25b2da135 Reviewed-on: https://gerrit.openafs.org/12587 Tested-by: BuildBot Reviewed-by: Stephan Wiesand