diff options
author | Volker Lendecke <vl@samba.org> | 2013-12-29 13:56:44 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2014-04-23 22:33:08 +0200 |
commit | 3e24e07467962436fa505f3b8e591f1af6cafdc0 (patch) | |
tree | bb0eb8e9a6b306dac79d90d21b5fb696ac395ec6 /source3/smbd/files.c | |
parent | 6dcf2c7eab0f39a17f22b09df94e5fcdac8726d1 (diff) | |
download | samba-3e24e07467962436fa505f3b8e591f1af6cafdc0.tar.gz samba-3e24e07467962436fa505f3b8e591f1af6cafdc0.tar.xz samba-3e24e07467962436fa505f3b8e591f1af6cafdc0.zip |
lib: Move full_path_tos to util_str.c
This can be useful elsewhere
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/smbd/files.c')
-rw-r--r-- | source3/smbd/files.c | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/source3/smbd/files.c b/source3/smbd/files.c index 5cf037edc2..8496806708 100644 --- a/source3/smbd/files.c +++ b/source3/smbd/files.c @@ -688,45 +688,6 @@ NTSTATUS dup_file_fsp(struct smb_request *req, files_struct *from, return fsp_set_smb_fname(to, from->fsp_name); } -/* - * This routine improves performance for operations temporarily acting on a - * full path. It is equivalent to the much more expensive - * - * talloc_asprintf(talloc_tos(), "%s/%s", dir, name) - * - * This actually does make a difference in metadata-heavy workloads (i.e. the - * "standard" client.txt nbench run. - */ - -ssize_t full_path_tos(const char *dir, const char *name, - char *tmpbuf, size_t tmpbuf_len, - char **pdst, char **to_free) -{ - size_t dirlen, namelen, len; - char *dst; - - dirlen = strlen(dir); - namelen = strlen(name); - len = dirlen + namelen + 1; - - if (len < tmpbuf_len) { - dst = tmpbuf; - *to_free = NULL; - } else { - dst = talloc_array(talloc_tos(), char, len+1); - if (dst == NULL) { - return -1; - } - *to_free = dst; - } - - memcpy(dst, dir, dirlen); - dst[dirlen] = '/'; - memcpy(dst+dirlen+1, name, namelen+1); - *pdst = dst; - return len; -} - /** * Return a jenkins hash of a pathname on a connection. */ |