[PATCH] Change unix_convert to use struct smb_filename
tprouty at samba.org
Thu Apr 30 19:02:32 GMT 2009
On Apr 30, 2009, at 3:04 AM, Volker Lendecke wrote:
> On Tue, Apr 28, 2009 at 02:30:11PM -0700, Tim Prouty wrote:
>> NTSTATUS unix_convert(TALLOC_CTX *ctx,
>> connection_struct *conn,
>> const char *orig_path,
>> struct smb_filename *smb_fname,
>> uint32_t ucf_flags)
> Just a quick stylistic question: Why not allocate the
> smb_filename struct in unix_convert and have the substrings
> as talloc children off that? In case this turns out to be a
> malloc performance hit, we can always do the appropriate
> talloc_pool trick inside unix_convert.
Thanks for the feedback!
I was considering that option, but since we already had a talloc_ctx
being passed around, it seemed simpler to just have the smb_filename
struct sit on the stack. I guess one possible advantage of tallocing
an smb_filename struct is that the talloc_ctx arg could be eliminated
from unix_convert, further simplifying the API.
Another advantage is that the memory would be more cleanly tracked,
and could be freed earlier as soon as it is no longer being used. Are
there other advantages as well?
On a related note, in a future patch it would make sense to store the
smb_filename struct in the file_struct as well. To add this ability
I'll probably also add some utility functions that alloc/init/copy/etc
smb_filename structs. These utility structs could be used here as well.
I'm not familiar with the talloc_pool trick. Are there examples of
the trick in use elsewhere?
More information about the samba-technical