mirror of
https://github.com/samba-team/samba.git
synced 2025-01-27 14:04:05 +03:00
s3: Check for serverid_exists in find_oplock_types
Signed-off-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
e34b7306fc
commit
49237b0cef
@ -1128,6 +1128,11 @@ static void find_oplock_types(files_struct *fsp,
|
|||||||
|
|
||||||
if (BATCH_OPLOCK_TYPE(lck->data->share_modes[i].op_type)) {
|
if (BATCH_OPLOCK_TYPE(lck->data->share_modes[i].op_type)) {
|
||||||
/* batch - can only be one. */
|
/* batch - can only be one. */
|
||||||
|
if (share_mode_stale_pid(lck->data, i)) {
|
||||||
|
DEBUG(10, ("find_oplock_types: Found stale "
|
||||||
|
"batch oplock\n"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (*pp_ex_or_batch || *pp_batch || *got_level2 || *got_no_oplock) {
|
if (*pp_ex_or_batch || *pp_batch || *got_level2 || *got_no_oplock) {
|
||||||
smb_panic("Bad batch oplock entry.");
|
smb_panic("Bad batch oplock entry.");
|
||||||
}
|
}
|
||||||
@ -1135,6 +1140,11 @@ static void find_oplock_types(files_struct *fsp,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (EXCLUSIVE_OPLOCK_TYPE(lck->data->share_modes[i].op_type)) {
|
if (EXCLUSIVE_OPLOCK_TYPE(lck->data->share_modes[i].op_type)) {
|
||||||
|
if (share_mode_stale_pid(lck->data, i)) {
|
||||||
|
DEBUG(10, ("find_oplock_types: Found stale "
|
||||||
|
"duplicate oplock\n"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
/* Exclusive or batch - can only be one. */
|
/* Exclusive or batch - can only be one. */
|
||||||
if (*pp_ex_or_batch || *got_level2 || *got_no_oplock) {
|
if (*pp_ex_or_batch || *got_level2 || *got_no_oplock) {
|
||||||
smb_panic("Bad exclusive or batch oplock entry.");
|
smb_panic("Bad exclusive or batch oplock entry.");
|
||||||
@ -1144,6 +1154,11 @@ static void find_oplock_types(files_struct *fsp,
|
|||||||
|
|
||||||
if (LEVEL_II_OPLOCK_TYPE(lck->data->share_modes[i].op_type)) {
|
if (LEVEL_II_OPLOCK_TYPE(lck->data->share_modes[i].op_type)) {
|
||||||
if (*pp_batch || *pp_ex_or_batch) {
|
if (*pp_batch || *pp_ex_or_batch) {
|
||||||
|
if (share_mode_stale_pid(lck->data, i)) {
|
||||||
|
DEBUG(10, ("find_oplock_types: Found "
|
||||||
|
"stale LevelII oplock\n"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
smb_panic("Bad levelII oplock entry.");
|
smb_panic("Bad levelII oplock entry.");
|
||||||
}
|
}
|
||||||
*got_level2 = true;
|
*got_level2 = true;
|
||||||
@ -1151,6 +1166,11 @@ static void find_oplock_types(files_struct *fsp,
|
|||||||
|
|
||||||
if (lck->data->share_modes[i].op_type == NO_OPLOCK) {
|
if (lck->data->share_modes[i].op_type == NO_OPLOCK) {
|
||||||
if (*pp_batch || *pp_ex_or_batch) {
|
if (*pp_batch || *pp_ex_or_batch) {
|
||||||
|
if (share_mode_stale_pid(lck->data, i)) {
|
||||||
|
DEBUG(10, ("find_oplock_types: Found "
|
||||||
|
"stale NO_OPLOCK entry\n"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
smb_panic("Bad no oplock entry.");
|
smb_panic("Bad no oplock entry.");
|
||||||
}
|
}
|
||||||
*got_no_oplock = true;
|
*got_no_oplock = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user