Corinna Vinschen
2e560a092c
* flock.cc (LOCK_OBJ_NAME_LEN): Change to accommodate extra lf_ver
...
field.
(class lockf_t): Add lf_ver field.
(lockf_t::lockf_t): Initialize lf_ver to 0.
(class inode_t): Change i_wait to i_cnt. Change comment to explain
change in usage.
(inode_t:use): Rename from wait. Make private.
(inode_t::unuse): Rename from unwait. Make private.
(inode_t::inuse): Rename from waiting. Make private.
(inode_t::notused): New public method to set use count to 0.
(inode_t::unlock_and_remove): New method to unlock node and to delete
it if it's unused in current process.
(fhandler_base::del_my_locks): Drop global list lock. Drop variable
no_locks_left. Simpify unlocking and removing node by just calling
unlock_and_remove.
(fixup_lockf_after_exec): Call notused method for each node.
(inode_t::get): Call use method. Lock node only if outside of list
lock.
(inode_t::get_all_locks_list): Accommodate additional lf_ver field
when creating lockf_t structure from object name.
(lockf_t::create_lock_obj_attr): Accommodate additional lf_ver field
when creating object name from lockf_t structure. Handle
STATUS_OBJECT_NAME_COLLISION gracefully in F_POSIX case as well.
Change comment accordingly. Increment lf_ver field rather than high
byte of lf_wid field. Simplify comment.
(fhandler_disk_file::lock): Always call unlock_and_remove rather than
just UNLOCK on node.
(lf_setlock): Move ret definition where it's used. Drop unneeded
tests for obj being not NULL. Only check for deadlock condition if the
lock we're trying to establish is a POSIX lock. Revamp object
collecting and wait code to cover all cases. Don't return with EDEADLK
if blocking process can't be opened for synchronization in F_POSIX case,
rather just wait like in F_FLOCK case. Change system_printf to
debug_printf in that case. Only run WaitForMultipleObjects with high
priority. Close obj and process handles prior to locking node.
2011-08-29 13:50:25 +00:00
..
2011-02-14 09:42:19 +00:00
2011-08-21 03:22:30 +00:00
2011-02-15 15:56:03 +00:00
2011-05-12 13:44:54 +00:00
2010-02-14 21:28:44 +00:00
2009-01-21 17:14:39 +00:00
2011-04-29 10:38:12 +00:00
2011-07-04 15:25:36 +00:00
2011-08-16 14:44:26 +00:00
2010-08-30 01:57:37 +00:00
2010-08-30 01:57:37 +00:00
2011-08-29 13:50:25 +00:00
2009-09-22 02:49:15 +00:00
2008-01-01 18:51:23 +00:00
2009-09-22 02:49:15 +00:00
2010-01-01 19:28:15 +00:00
2011-01-03 01:53:19 +00:00
2011-06-09 21:20:27 +00:00
2009-01-21 17:14:39 +00:00
2011-02-07 16:22:02 +00:00
2011-02-15 15:56:03 +00:00
2011-03-17 08:40:25 +00:00
2011-06-06 05:02:13 +00:00
2009-08-13 07:35:50 +00:00
2011-04-28 12:13:41 +00:00
2009-08-01 19:52:46 +00:00
2011-06-06 05:02:13 +00:00
2011-06-14 21:48:43 +00:00
2008-07-11 10:00:36 +00:00
2009-10-31 13:24:06 +00:00
2008-11-26 10:18:10 +00:00
2008-11-26 10:18:10 +00:00
2011-04-04 09:04:00 +00:00
2008-11-26 10:18:10 +00:00
2008-11-26 10:18:10 +00:00
2011-08-25 19:37:39 +00:00
2011-07-30 20:50:23 +00:00
2011-08-03 16:40:48 +00:00
2011-08-03 16:40:48 +00:00
2009-07-07 20:12:44 +00:00
2008-02-15 17:53:11 +00:00
2011-08-03 19:17:02 +00:00
2011-03-18 18:16:37 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2011-08-18 15:59:16 +00:00
2011-05-05 22:30:53 +00:00
2010-09-20 20:25:50 +00:00
2011-06-14 21:48:43 +00:00
2011-08-19 20:05:15 +00:00
2011-06-14 21:48:43 +00:00
2011-06-06 05:02:13 +00:00
2011-08-16 20:08:34 +00:00
2011-08-03 17:58:59 +00:00
2011-06-06 05:02:13 +00:00
2008-02-15 17:53:11 +00:00
2011-08-19 18:19:22 +00:00
2010-01-14 18:46:02 +00:00
2011-08-21 18:45:07 +00:00
2008-04-07 16:15:45 +00:00
2011-06-15 17:36:10 +00:00
2011-02-09 15:40:37 +00:00
2011-08-03 16:40:48 +00:00
2011-01-20 11:09:21 +00:00
2011-06-01 01:20:28 +00:00
2011-04-30 16:34:48 +00:00
2011-06-06 05:02:13 +00:00
2011-07-31 12:37:52 +00:00
2011-08-19 18:19:22 +00:00
2011-08-27 20:01:29 +00:00
2011-07-21 20:21:46 +00:00
2011-05-05 17:44:42 +00:00
2011-07-31 12:37:52 +00:00
2011-06-06 05:02:13 +00:00
2011-07-31 12:37:52 +00:00
2011-04-04 12:23:36 +00:00
2009-01-03 05:12:22 +00:00
2011-08-19 20:05:15 +00:00
2011-08-20 18:55:45 +00:00
2011-06-12 20:15:26 +00:00
2011-06-06 05:02:13 +00:00
2011-06-12 20:15:26 +00:00
2011-04-01 08:41:26 +00:00
2011-07-31 12:37:52 +00:00
2011-07-30 08:09:44 +00:00
2011-07-31 12:37:52 +00:00
2011-08-23 13:07:24 +00:00
2011-06-06 05:02:13 +00:00
2011-06-14 21:48:43 +00:00
2011-07-25 15:19:35 +00:00
2011-07-31 12:37:52 +00:00
2011-05-28 18:17:09 +00:00
2011-07-21 20:21:46 +00:00
2009-07-24 20:54:33 +00:00
2011-08-27 20:01:29 +00:00
2011-08-12 12:31:08 +00:00
2011-08-29 13:50:25 +00:00
2011-07-04 15:25:36 +00:00
2010-08-01 19:10:52 +00:00
2008-12-13 21:05:31 +00:00
2008-12-31 21:33:34 +00:00
2009-01-03 05:12:22 +00:00
2011-06-09 21:20:27 +00:00
2010-08-30 01:57:37 +00:00
2011-06-06 05:02:13 +00:00
2011-08-09 12:00:27 +00:00
2011-08-03 16:40:48 +00:00
2011-07-04 15:25:36 +00:00
2009-07-12 21:26:40 +00:00
2010-02-02 01:54:55 +00:00
2009-07-12 21:26:40 +00:00
2011-08-18 15:59:16 +00:00
2009-01-03 05:12:22 +00:00
2010-02-26 09:36:21 +00:00
2011-04-04 12:23:36 +00:00
2010-02-25 16:55:02 +00:00
2011-05-10 16:43:34 +00:00
2009-08-04 04:20:36 +00:00
2011-04-18 19:07:18 +00:00
2008-04-07 18:45:59 +00:00
2011-05-02 19:14:39 +00:00
2009-02-16 20:22:38 +00:00
2009-01-03 05:12:22 +00:00
2011-08-13 10:28:15 +00:00
2011-08-13 10:28:15 +00:00
2009-01-09 05:18:02 +00:00
2011-02-11 18:00:55 +00:00
2011-02-11 18:00:55 +00:00
2010-07-19 18:22:40 +00:00
2010-04-10 05:47:54 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2011-06-12 20:15:26 +00:00
2011-06-06 05:02:13 +00:00
2009-01-21 17:14:39 +00:00
2008-07-15 11:42:45 +00:00
2011-08-16 23:32:18 +00:00
2010-08-28 08:51:21 +00:00
2010-10-02 19:03:44 +00:00
2010-10-02 19:03:44 +00:00
2011-06-06 05:02:13 +00:00
2011-08-27 20:01:29 +00:00
2011-08-09 09:14:28 +00:00
2011-03-29 10:42:11 +00:00
2011-08-01 17:01:38 +00:00
2011-07-26 13:30:41 +00:00
2009-12-18 10:11:56 +00:00
2011-08-13 10:28:15 +00:00
2011-05-28 18:17:09 +00:00
2011-08-15 16:05:13 +00:00
2011-08-23 14:05:04 +00:00
2011-06-06 05:02:13 +00:00
2011-08-03 19:17:02 +00:00
2010-08-30 01:57:37 +00:00
2011-06-06 05:02:13 +00:00
2011-03-29 10:32:40 +00:00
2008-12-20 09:35:18 +00:00
2008-09-11 04:34:24 +00:00
2011-06-06 05:02:13 +00:00
2011-04-23 13:15:46 +00:00
2011-08-07 19:49:08 +00:00
2011-07-06 18:35:44 +00:00
2011-04-29 10:38:12 +00:00
2011-06-06 05:02:13 +00:00
2011-04-29 10:38:12 +00:00
2011-07-26 13:30:41 +00:00
2011-04-29 10:38:12 +00:00
2008-03-13 15:18:10 +00:00
2011-07-29 12:47:54 +00:00
2011-05-03 15:58:52 +00:00
2009-01-21 17:14:39 +00:00
2011-04-04 09:04:00 +00:00
2011-08-09 12:00:27 +00:00
2011-08-09 12:00:27 +00:00
2009-12-18 20:32:04 +00:00
2011-08-03 19:17:02 +00:00
2011-08-13 10:28:15 +00:00
2010-09-01 18:24:11 +00:00
2011-06-06 05:02:13 +00:00
2011-07-04 15:25:36 +00:00
2011-02-11 18:00:55 +00:00
2010-03-15 21:29:15 +00:00
2011-07-04 15:25:36 +00:00
2011-06-06 05:02:13 +00:00
2011-01-19 09:41:54 +00:00
2011-05-04 22:12:15 +00:00
2011-04-21 00:53:55 +00:00
2010-03-13 19:34:35 +00:00
2011-08-01 17:01:38 +00:00
2011-07-21 09:39:22 +00:00
2011-05-11 08:20:17 +00:00
2011-04-30 16:34:48 +00:00
2010-08-30 01:57:37 +00:00
2010-08-30 01:57:37 +00:00
2011-08-24 15:18:17 +00:00
2011-08-24 15:18:17 +00:00
2011-05-17 17:08:10 +00:00
2011-08-03 16:40:48 +00:00
2010-12-12 05:48:29 +00:00
2008-03-12 12:41:50 +00:00
2011-08-03 16:40:48 +00:00
2010-06-21 19:55:12 +00:00
2011-06-14 21:48:43 +00:00
2011-06-14 21:48:43 +00:00
2011-06-06 05:02:13 +00:00
2008-04-07 18:45:59 +00:00
2011-08-03 16:40:48 +00:00
2010-02-04 12:35:49 +00:00
2009-07-07 21:41:43 +00:00
2011-07-30 20:50:23 +00:00
2011-07-30 20:50:23 +00:00
2011-05-01 14:35:12 +00:00
2009-08-01 19:52:46 +00:00
2011-01-20 11:09:21 +00:00
2011-04-19 10:15:09 +00:00
2011-05-28 18:17:09 +00:00
2011-03-16 21:10:51 +00:00