BOOL is_valid_share_mode_entry(const struct share_mode_entry *e) { int num_props = 0; 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); SMB_ASSERT(num_props <= 1); return (num_props != 0); }
bool is_valid_share_mode_entry(const struct share_mode_entry *e) { int num_props = 0; if (e->stale) { 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); if ((num_props > 1) && serverid_exists(&e->pid)) { smb_panic("Invalid share mode entry"); } return (num_props != 0); }
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); SMB_ASSERT(num_props <= 1); return (num_props != 0); }