mirror of
https://github.com/samba-team/samba.git
synced 2025-02-03 13:47:25 +03:00
Expose per-fsp extension talloc context.
This patch supplements the fsp extension API with an operation to retrieve the malloc zone pointer for that fsp. (This used to be commit d5d9e4084cfb3db3bebff0334b93f376022ef5d3)
This commit is contained in:
parent
d2a9630a8b
commit
26b75f2d83
@ -579,12 +579,21 @@ typedef struct vfs_statvfs_struct {
|
||||
/* NB flags can come from FILE_SYSTEM_DEVICE_INFO call */
|
||||
} vfs_statvfs_struct;
|
||||
|
||||
/* Add a new FSP extension of the given type. Returns a pointer to the
|
||||
* extenstion data.
|
||||
*/
|
||||
#define VFS_ADD_FSP_EXTENSION(handle, fsp, type) \
|
||||
vfs_add_fsp_extension_notype(handle, (fsp), sizeof(type))
|
||||
|
||||
/* Return a pointer to the existing FSP extension data. */
|
||||
#define VFS_FETCH_FSP_EXTENSION(handle, fsp) \
|
||||
vfs_fetch_fsp_extension(handle, (fsp))
|
||||
|
||||
/* Return the talloc context associated with an FSP extension. */
|
||||
#define VFS_MEMCTX_FSP_EXTENSION(handle, fsp) \
|
||||
vfs_memctx_fsp_extension(handle, (fsp))
|
||||
|
||||
/* Remove and destroy an FSP extension. */
|
||||
#define VFS_REMOVE_FSP_EXTENSION(handle, fsp) \
|
||||
vfs_remove_fsp_extension((handle), (fsp))
|
||||
|
||||
|
@ -263,19 +263,31 @@ void vfs_remove_fsp_extension(vfs_handle_struct *handle, files_struct *fsp)
|
||||
}
|
||||
}
|
||||
|
||||
void *vfs_fetch_fsp_extension(vfs_handle_struct *handle, files_struct *fsp)
|
||||
void *vfs_memctx_fsp_extension(vfs_handle_struct *handle, files_struct *fsp)
|
||||
{
|
||||
struct vfs_fsp_data *head;
|
||||
|
||||
for (head = fsp->vfs_extension; head; head = head->next) {
|
||||
if (head->owner == handle) {
|
||||
return EXT_DATA_AREA(head);
|
||||
return head;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *vfs_fetch_fsp_extension(vfs_handle_struct *handle, files_struct *fsp)
|
||||
{
|
||||
struct vfs_fsp_data *head;
|
||||
|
||||
head = vfs_memctx_fsp_extension(handle, fsp);
|
||||
if (head != NULL) {
|
||||
return EXT_DATA_AREA(head);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#undef EXT_DATA_AREA
|
||||
|
||||
/*****************************************************************
|
||||
|
Loading…
x
Reference in New Issue
Block a user