mirror of
https://github.com/samba-team/samba.git
synced 2025-01-24 02:04:21 +03:00
opendb: unify the parameters of odb_open_file() and odb_can_open()
metze (This used to be commit e6b708a52b0eada3fd374b66292ded3b0f6ce217)
This commit is contained in:
parent
9852e0d315
commit
7264a8b7ca
@ -596,8 +596,9 @@ static NTSTATUS odb_ctdb_get_delete_on_close(struct odb_context *odb,
|
||||
create_options and access_mask
|
||||
*/
|
||||
static NTSTATUS odb_ctdb_can_open(struct odb_lock *lck,
|
||||
uint32_t share_access, uint32_t create_options,
|
||||
uint32_t access_mask)
|
||||
uint32_t stream_id, uint32_t share_access,
|
||||
uint32_t access_mask, bool delete_on_close,
|
||||
uint32_t open_disposition, bool break_to_none)
|
||||
{
|
||||
struct odb_context *odb = lck->odb;
|
||||
NTSTATUS status;
|
||||
@ -611,7 +612,7 @@ static NTSTATUS odb_ctdb_can_open(struct odb_lock *lck,
|
||||
}
|
||||
NT_STATUS_NOT_OK_RETURN(status);
|
||||
|
||||
if ((create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE) &&
|
||||
if (delete_on_close &&
|
||||
file.num_entries != 0) {
|
||||
return NT_STATUS_SHARING_VIOLATION;
|
||||
}
|
||||
|
@ -166,10 +166,12 @@ _PUBLIC_ NTSTATUS odb_get_delete_on_close(struct odb_context *odb,
|
||||
create_options and access_mask
|
||||
*/
|
||||
_PUBLIC_ NTSTATUS odb_can_open(struct odb_lock *lck,
|
||||
uint32_t share_access, uint32_t create_options,
|
||||
uint32_t access_mask)
|
||||
uint32_t stream_id, uint32_t share_access,
|
||||
uint32_t access_mask, bool delete_on_close,
|
||||
uint32_t open_disposition, bool break_to_none)
|
||||
{
|
||||
return ops->odb_can_open(lck, share_access, create_options, access_mask);
|
||||
return ops->odb_can_open(lck, stream_id, share_access, access_mask,
|
||||
delete_on_close, open_disposition, break_to_none);
|
||||
}
|
||||
|
||||
_PUBLIC_ NTSTATUS odb_update_oplock(struct odb_lock *lck, void *file_handle,
|
||||
|
@ -40,8 +40,9 @@ struct opendb_ops {
|
||||
DATA_BLOB *key, bool *del_on_close,
|
||||
int *open_count, char **path);
|
||||
NTSTATUS (*odb_can_open)(struct odb_lock *lck,
|
||||
uint32_t share_access, uint32_t create_options,
|
||||
uint32_t access_mask);
|
||||
uint32_t stream_id, uint32_t share_access,
|
||||
uint32_t access_mask, bool delete_on_close,
|
||||
uint32_t open_disposition, bool break_to_none);
|
||||
NTSTATUS (*odb_update_oplock)(struct odb_lock *lck, void *file_handle,
|
||||
uint32_t oplock_level);
|
||||
NTSTATUS (*odb_break_oplocks)(struct odb_lock *lck);
|
||||
|
@ -742,16 +742,13 @@ static NTSTATUS odb_tdb_get_delete_on_close(struct odb_context *odb,
|
||||
create_options and access_mask
|
||||
*/
|
||||
static NTSTATUS odb_tdb_can_open(struct odb_lock *lck,
|
||||
uint32_t share_access, uint32_t create_options,
|
||||
uint32_t access_mask)
|
||||
uint32_t stream_id, uint32_t share_access,
|
||||
uint32_t access_mask, bool delete_on_close,
|
||||
uint32_t open_disposition, bool break_to_none)
|
||||
{
|
||||
struct odb_context *odb = lck->odb;
|
||||
NTSTATUS status;
|
||||
struct opendb_file file;
|
||||
uint32_t stream_id = 0;
|
||||
uint32_t open_disposition = 0;
|
||||
bool delete_on_close = false;
|
||||
bool break_to_none = false;
|
||||
bool attrs_only = false;
|
||||
|
||||
status = odb_pull_record(lck, &file);
|
||||
@ -760,10 +757,6 @@ static NTSTATUS odb_tdb_can_open(struct odb_lock *lck,
|
||||
}
|
||||
NT_STATUS_NOT_OK_RETURN(status);
|
||||
|
||||
if (create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE) {
|
||||
delete_on_close = true;
|
||||
}
|
||||
|
||||
status = odb_tdb_open_can_internal(odb, &file, stream_id,
|
||||
share_access, access_mask,
|
||||
delete_on_close, open_disposition,
|
||||
|
Loading…
x
Reference in New Issue
Block a user