summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorTim Prouty <tprouty@samba.org>2009-01-31 20:51:04 -0800
committerTim Prouty <tprouty@samba.org>2009-02-09 23:46:12 -0800
commit122dbbf00acc1768f98e5b57e94aab2b61671f40 (patch)
tree97dd65074e1d07f582ba945f50a9fb90d078cd05 /source3/include
parentfe5b0b595c926aea0916541ceeaf610bc018cb63 (diff)
downloadsamba-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.h4
-rw-r--r--source3/include/smb.h4
-rw-r--r--source3/include/vfs.h4
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) \