diff options
author | Stefan Metzmacher <metze@samba.org> | 2012-06-04 17:54:41 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2012-06-06 10:18:36 +0200 |
commit | cd3e658d8251de17f3657670f2026d8b22e6a376 (patch) | |
tree | 046af73b34624e0ebef2cd2928b3ae8e2f0adf06 /source3/smbd/vfs.c | |
parent | a8e7c57862ce4511b5e9503265c1dbff575bd373 (diff) | |
download | samba-cd3e658d8251de17f3657670f2026d8b22e6a376.tar.gz samba-cd3e658d8251de17f3657670f2026d8b22e6a376.tar.xz samba-cd3e658d8251de17f3657670f2026d8b22e6a376.zip |
s3:smbd: add vfs_remove_all_fsp_extensions()
metze
Diffstat (limited to 'source3/smbd/vfs.c')
-rw-r--r-- | source3/smbd/vfs.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c index 2be6c54a881..60320e60692 100644 --- a/source3/smbd/vfs.c +++ b/source3/smbd/vfs.c @@ -261,6 +261,27 @@ void vfs_remove_fsp_extension(vfs_handle_struct *handle, files_struct *fsp) } } +void vfs_remove_all_fsp_extensions(files_struct *fsp) +{ + struct vfs_fsp_data *curr; + struct vfs_fsp_data *prev; + + for (curr = fsp->vfs_extension, prev = NULL; + curr; + prev = curr, curr = curr->next) + { + if (prev) { + prev->next = curr->next; + } else { + fsp->vfs_extension = curr->next; + } + if (curr->destroy) { + curr->destroy(EXT_DATA_AREA(curr)); + } + TALLOC_FREE(curr); + } +} + void *vfs_memctx_fsp_extension(vfs_handle_struct *handle, files_struct *fsp) { struct vfs_fsp_data *head; |