mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
parent
48270181ba
commit
98dafd5eb1
@ -542,6 +542,25 @@ static NTSTATUS odb_ctdb_rename(struct odb_lock *lck, const char *path)
|
||||
return odb_push_record(lck, &file);
|
||||
}
|
||||
|
||||
/*
|
||||
get the path of an open file
|
||||
*/
|
||||
static NTSTATUS odb_ctdb_get_path(struct odb_lock *lck, const char **path)
|
||||
{
|
||||
struct opendb_file file;
|
||||
NTSTATUS status;
|
||||
|
||||
*path = NULL;
|
||||
|
||||
status = odb_pull_record(lck, &file);
|
||||
/* we don't ignore NT_STATUS_OBJECT_NAME_NOT_FOUND here */
|
||||
NT_STATUS_NOT_OK_RETURN(status);
|
||||
|
||||
*path = file.path;
|
||||
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
update delete on close flag on an open file
|
||||
*/
|
||||
@ -653,6 +672,7 @@ static const struct opendb_ops opendb_ctdb_ops = {
|
||||
.odb_close_file = odb_ctdb_close_file,
|
||||
.odb_remove_pending = odb_ctdb_remove_pending,
|
||||
.odb_rename = odb_ctdb_rename,
|
||||
.odb_get_path = odb_ctdb_get_path,
|
||||
.odb_set_delete_on_close = odb_ctdb_set_delete_on_close,
|
||||
.odb_get_delete_on_close = odb_ctdb_get_delete_on_close,
|
||||
.odb_can_open = odb_ctdb_can_open,
|
||||
|
@ -142,6 +142,14 @@ _PUBLIC_ NTSTATUS odb_rename(struct odb_lock *lck, const char *path)
|
||||
return ops->odb_rename(lck, path);
|
||||
}
|
||||
|
||||
/*
|
||||
get back the path of an open file
|
||||
*/
|
||||
_PUBLIC_ NTSTATUS odb_get_path(struct odb_lock *lck, const char **path)
|
||||
{
|
||||
return ops->odb_get_path(lck, path);
|
||||
}
|
||||
|
||||
/*
|
||||
update delete on close flag on an open file
|
||||
*/
|
||||
|
@ -36,6 +36,7 @@ struct opendb_ops {
|
||||
const char **delete_path);
|
||||
NTSTATUS (*odb_remove_pending)(struct odb_lock *lck, void *private);
|
||||
NTSTATUS (*odb_rename)(struct odb_lock *lck, const char *path);
|
||||
NTSTATUS (*odb_get_path)(struct odb_lock *lck, const char **path);
|
||||
NTSTATUS (*odb_set_delete_on_close)(struct odb_lock *lck, bool del_on_close);
|
||||
NTSTATUS (*odb_get_delete_on_close)(struct odb_context *odb,
|
||||
DATA_BLOB *key, bool *del_on_close);
|
||||
|
@ -713,6 +713,25 @@ static NTSTATUS odb_tdb_rename(struct odb_lock *lck, const char *path)
|
||||
return odb_push_record(lck, &file);
|
||||
}
|
||||
|
||||
/*
|
||||
get the path of an open file
|
||||
*/
|
||||
static NTSTATUS odb_tdb_get_path(struct odb_lock *lck, const char **path)
|
||||
{
|
||||
struct opendb_file file;
|
||||
NTSTATUS status;
|
||||
|
||||
*path = NULL;
|
||||
|
||||
status = odb_pull_record(lck, &file);
|
||||
/* we don't ignore NT_STATUS_OBJECT_NAME_NOT_FOUND here */
|
||||
NT_STATUS_NOT_OK_RETURN(status);
|
||||
|
||||
*path = file.path;
|
||||
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
update delete on close flag on an open file
|
||||
*/
|
||||
@ -802,6 +821,7 @@ static const struct opendb_ops opendb_tdb_ops = {
|
||||
.odb_close_file = odb_tdb_close_file,
|
||||
.odb_remove_pending = odb_tdb_remove_pending,
|
||||
.odb_rename = odb_tdb_rename,
|
||||
.odb_get_path = odb_tdb_get_path,
|
||||
.odb_set_delete_on_close = odb_tdb_set_delete_on_close,
|
||||
.odb_get_delete_on_close = odb_tdb_get_delete_on_close,
|
||||
.odb_can_open = odb_tdb_can_open,
|
||||
|
Loading…
Reference in New Issue
Block a user