r23956: merge from 3_2-ctdb-tridge:
authorStefan Metzmacher <metze@samba.org>
Wed, 18 Jul 2007 14:03:46 +0000 (14:03 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:28:49 +0000 (12:28 -0500)
fixed a bug with dead share mode entries

jra: please tell me if it's ok to merge this to 3_2_0.

metze
(This used to be commit 044ac6afa7a36b352f4cb203879af082d4726417)

source3/locking/locking.c

index 8692001f44efd386c155b539a06c5b1dd5063d15..e4d06b8bfdac56f507488260fc306935e9204660 100644 (file)
@@ -937,6 +937,14 @@ BOOL is_valid_share_mode_entry(const struct share_mode_entry *e)
 {
        int num_props = 0;
 
+       if (e->op_type == UNUSED_SHARE_MODE_ENTRY) {
+               /* cope with dead entries from the process not
+                  existing. These should not be considered valid,
+                  otherwise we end up doing zero timeout sharing
+                  violation */
+               return False;
+       }
+
        num_props += ((e->op_type == NO_OPLOCK) ? 1 : 0);
        num_props += (EXCLUSIVE_OPLOCK_TYPE(e->op_type) ? 1 : 0);
        num_props += (LEVEL_II_OPLOCK_TYPE(e->op_type) ? 1 : 0);