diff options
| -rw-r--r-- | source4/cluster/ctdb/opendb_ctdb.c | 11 | ||||
| -rw-r--r-- | source4/ntvfs/common/opendb.c | 4 | ||||
| -rw-r--r-- | source4/ntvfs/common/opendb.h | 1 | ||||
| -rw-r--r-- | source4/ntvfs/common/opendb_tdb.c | 7 | 
4 files changed, 23 insertions, 0 deletions
diff --git a/source4/cluster/ctdb/opendb_ctdb.c b/source4/cluster/ctdb/opendb_ctdb.c index aaab3aa55d..f056e21716 100644 --- a/source4/cluster/ctdb/opendb_ctdb.c +++ b/source4/cluster/ctdb/opendb_ctdb.c @@ -133,6 +133,16 @@ static struct odb_lock *odb_ctdb_lock(TALLOC_CTX *mem_ctx,  	return lck;  } +static DATA_BLOB odb_ctdb_get_key(TALLOC_CTX *mem_ctx, struct odb_lock *lck) +{ +	/* +	 * as this file will went away and isn't used yet, +	 * copy the implementation from the tdb backend +	 * --metze +	 */ +	return data_blob_const(NULL, 0); +} +  /*    determine if two odb_entry structures conflict @@ -610,6 +620,7 @@ static NTSTATUS odb_ctdb_can_open(struct odb_lock *lck,  static const struct opendb_ops opendb_ctdb_ops = {  	.odb_init                = odb_ctdb_init,  	.odb_lock                = odb_ctdb_lock, +	.odb_get_key             = odb_ctdb_get_key,  	.odb_open_file           = odb_ctdb_open_file,  	.odb_open_file_pending   = odb_ctdb_open_file_pending,  	.odb_close_file          = odb_ctdb_close_file, diff --git a/source4/ntvfs/common/opendb.c b/source4/ntvfs/common/opendb.c index 4826ca5c26..f12f23817d 100644 --- a/source4/ntvfs/common/opendb.c +++ b/source4/ntvfs/common/opendb.c @@ -81,6 +81,10 @@ _PUBLIC_ struct odb_lock *odb_lock(TALLOC_CTX *mem_ctx,  	return ops->odb_lock(mem_ctx, odb, file_key);  } +_PUBLIC_ DATA_BLOB odb_get_key(TALLOC_CTX *mem_ctx, struct odb_lock *lck) +{ +	return ops->odb_get_key(mem_ctx, lck); +}  /*    register an open file in the open files database. This implements the share_access diff --git a/source4/ntvfs/common/opendb.h b/source4/ntvfs/common/opendb.h index 231ae3d7de..5472cea418 100644 --- a/source4/ntvfs/common/opendb.h +++ b/source4/ntvfs/common/opendb.h @@ -24,6 +24,7 @@ struct opendb_ops {  					struct ntvfs_context *ntvfs_ctx);  	struct odb_lock *(*odb_lock)(TALLOC_CTX *mem_ctx,  				     struct odb_context *odb, DATA_BLOB *file_key); +	DATA_BLOB (*odb_get_key)(TALLOC_CTX *mem_ctx, struct odb_lock *lck);  	NTSTATUS (*odb_open_file)(struct odb_lock *lck, void *file_handle,  				  uint32_t stream_id, uint32_t share_access,   				  uint32_t access_mask, bool delete_on_close, diff --git a/source4/ntvfs/common/opendb_tdb.c b/source4/ntvfs/common/opendb_tdb.c index abd9ca708b..469cf28374 100644 --- a/source4/ntvfs/common/opendb_tdb.c +++ b/source4/ntvfs/common/opendb_tdb.c @@ -134,6 +134,12 @@ static struct odb_lock *odb_tdb_lock(TALLOC_CTX *mem_ctx,  	return lck;  } +static DATA_BLOB odb_tdb_get_key(TALLOC_CTX *mem_ctx, struct odb_lock *lck) +{ +	return data_blob_talloc(mem_ctx, lck->key.dptr, lck->key.dsize); +} + +  /*    determine if two odb_entry structures conflict @@ -609,6 +615,7 @@ static NTSTATUS odb_tdb_can_open(struct odb_lock *lck,  static const struct opendb_ops opendb_tdb_ops = {  	.odb_init                = odb_tdb_init,  	.odb_lock                = odb_tdb_lock, +	.odb_get_key             = odb_tdb_get_key,  	.odb_open_file           = odb_tdb_open_file,  	.odb_open_file_pending   = odb_tdb_open_file_pending,  	.odb_close_file          = odb_tdb_close_file,  | 
