[00:13:56] --- Russ has left: Disconnected [00:27:41] --- lars.malinowsky has become available [01:58:46] --- pod has become available [02:02:36] --- kula has left [03:11:38] --- kula has become available [05:25:47] --- reuteras has left [05:25:56] --- reuteras has become available [05:53:54] --- lars.malinowsky has left [06:01:29] --- lars.malinowsky has become available [07:00:19] --- meffie has become available [07:12:01] --- deason has become available [07:32:35] --- lars.malinowsky has left [07:41:32] --- reuteras has left [08:07:41] --- lars.malinowsky has become available [08:35:06] --- jaltman/FrogsLeap has left: Disconnected [08:52:34] --- jaltman/FrogsLeap has become available [08:59:21] --- ksumner has become available [10:02:22] > Can anyone expound on what "a real mess" would be? Basically, we are trying to avoid deadlocking with ourselves. According to my recollection, if afs_InReadDir() returns true, then there is a readdir in progress, and we can assume that... - It must be in our call stack - It is holding a lock on the vnode, so we don't want another one - It has already done an access check - Any access checks will be on behalf of things that don't _need_ more than read+lookup And so it is safe to return a "fake" result. [10:04:44] Hm, or maybe I meant not an actual deadlock, but the problems that would arise if the vnode were invalidated out from under readdir. It's been a few years. In either case, returning the fake result should be safe. [10:06:21] Okay, thanks for clarifying. [12:53:13] --- jaltman/FrogsLeap has left: Disconnected [13:23:06] --- jaltman/FrogsLeap has become available [13:23:20] --- jaltman/FrogsLeap has left: Disconnected [13:46:06] --- sxw has become available [14:14:49] Around for an annoying question? [14:19:51] Why is it that if afs_init_inodecache() fails, we only call osi_syscall_clean() if LINUX_KEYRING_SUPPORT is not defined? [14:20:18] If LINUX_KEYRING_SUPPORT is defined we don't start up the syscall stuff at all. [14:20:36] (in fact, IIRC, we don't even built it) [14:21:00] false. well, on 1.4.12.1, anyway [14:21:17] I ceased caring about 1.4.12.1 a long time ago. [14:22:06] It is possible that that is a bad pullup. What I described certainly should be the behaviour on master. [14:23:48] osi_Init(); err = osi_syscall_init(); if (err) return err; err = afs_init_inodecache(); if (err) { #ifndef LINUX_KEYRING_SUPPORT osi_syscall_clean(); #endif return err; } ... and that's the only place osi_syscall_clean() is conditionalized. On master (well, not updated in a few weeks), all the syscall startup and cleanup stuff is conditionalized. [14:24:06] > I ceased caring about 1.4.12.1 a long time ago. That must be nice. [14:27:47] The joys of automated management. We shipped 1.4.14 to all of our clients a while back. [14:32:01] That's definitely a bad pullup. Feel free to push a fix to the openafs-stable-1_4_x branch in gerrit. [15:37:42] --- sxw has left [15:50:45] --- deason has left [19:22:42] --- deason has become available [19:58:01] --- Russ has become available [20:18:05] --- jaltman/FrogsLeap has become available [21:40:47] --- deason has left [22:53:06] --- reuteras has become available [22:54:11] --- ktdreyer has become available [23:02:57] --- lars.malinowsky has left [23:18:16] --- ktdreyer has left [23:21:05] --- ktdreyer has become available