diff options
author | Tim Prouty <tprouty@samba.org> | 2009-01-31 20:51:04 -0800 |
---|---|---|
committer | Tim Prouty <tprouty@samba.org> | 2009-02-09 23:46:12 -0800 |
commit | 122dbbf00acc1768f98e5b57e94aab2b61671f40 (patch) | |
tree | 97dd65074e1d07f582ba945f50a9fb90d078cd05 /source3/include | |
parent | fe5b0b595c926aea0916541ceeaf610bc018cb63 (diff) | |
download | samba-122dbbf00acc1768f98e5b57e94aab2b61671f40.tar.gz samba-122dbbf00acc1768f98e5b57e94aab2b61671f40.tar.bz2 samba-122dbbf00acc1768f98e5b57e94aab2b61671f40.zip |
s3 vfs: Add a destructor to the fsp extension data API
I'm not certain if the dummy pointer is needed in struct vfs_fsp_data,
but I added it to be consistent with the comment below.
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/proto.h | 4 | ||||
-rw-r--r-- | source3/include/smb.h | 4 | ||||
-rw-r--r-- | source3/include/vfs.h | 4 |
3 files changed, 8 insertions, 4 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index e5dbe60e11..1a1f8bef69 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -7317,7 +7317,9 @@ void sys_utmp_claim(const char *username, const char *hostname, NTSTATUS smb_register_vfs(int version, const char *name, const vfs_op_tuple *vfs_op_tuples); bool vfs_init_custom(connection_struct *conn, const char *vfs_object); -void *vfs_add_fsp_extension_notype(vfs_handle_struct *handle, files_struct *fsp, size_t ext_size); +void *vfs_add_fsp_extension_notype(vfs_handle_struct *handle, + files_struct *fsp, size_t ext_size, + void (*destroy_fn)(void *p_data)); void vfs_remove_fsp_extension(vfs_handle_struct *handle, files_struct *fsp); void *vfs_memctx_fsp_extension(vfs_handle_struct *handle, files_struct *fsp); void *vfs_fetch_fsp_extension(vfs_handle_struct *handle, files_struct *fsp); diff --git a/source3/include/smb.h b/source3/include/smb.h index 3da63cfc2b..100ec21031 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -373,7 +373,9 @@ struct rpc_cli_smbd_conn; struct vfs_fsp_data { struct vfs_fsp_data *next; struct vfs_handle_struct *owner; - /* NOTE: This structure contains two pointers so that we can guarantee + void (*destroy)(void *p_data); + void *_dummy_; + /* NOTE: This structure contains four pointers so that we can guarantee * that the end of the structure is always both 4-byte and 8-byte aligned. */ }; diff --git a/source3/include/vfs.h b/source3/include/vfs.h index e9115ab807..228f090600 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -679,8 +679,8 @@ typedef struct 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)) +#define VFS_ADD_FSP_EXTENSION(handle, fsp, type, destroy_fn) \ + vfs_add_fsp_extension_notype(handle, (fsp), sizeof(type), (destroy_fn)) /* Return a pointer to the existing FSP extension data. */ #define VFS_FETCH_FSP_EXTENSION(handle, fsp) \ |