return ret;
}
-static int streams_xattr_get_ea_value_fsp(TALLOC_CTX *mem_ctx,
- files_struct *fsp,
- const char *ea_name,
- char **_val)
+static int streams_xattr_get_ea_value_fsp(
+ TALLOC_CTX *mem_ctx,
+ const struct streams_xattr_config *config,
+ files_struct *fsp,
+ const char *ea_name,
+ char **_val)
{
/* Get the value of this xattr. Max size is 64k. */
size_t attr_size = 256;
char *val = NULL;
ssize_t result;
- ret = streams_xattr_get_ea_value_fsp(talloc_tos(),
- fsp,
- xattr_name,
- &val);
+ ret = streams_xattr_get_ea_value_fsp(
+ talloc_tos(), config, fsp, xattr_name, &val);
if (ret != 0) {
return -1;
}
goto fail;
}
- ret = streams_xattr_get_ea_value_fsp(talloc_tos(),
- fsp->base_fsp,
- xattr_name,
- &val);
+ ret = streams_xattr_get_ea_value_fsp(
+ talloc_tos(), config, fsp->base_fsp, xattr_name, &val);
if (ret != 0) {
DBG_DEBUG("streams_xattr_get_ea_value_fsp returned %s\n",
strerror(ret));
}
/* Read the old stream from the base file fsp. */
- ret = streams_xattr_get_ea_value_fsp(talloc_tos(),
- pathref_src->fsp,
- src_xattr_name,
- &val);
+ ret = streams_xattr_get_ea_value_fsp(
+ talloc_tos(), config, pathref_src->fsp, src_xattr_name, &val);
if (ret != 0) {
errno = ret;
goto fail;
continue;
}
- ret = streams_xattr_get_ea_value_fsp(names,
- smb_fname->fsp,
- names[i],
- &val);
+ ret = streams_xattr_get_ea_value_fsp(
+ names, config, smb_fname->fsp, names[i], &val);
if (ret != 0) {
DBG_DEBUG("Could not get ea %s for file %s: %s\n",
names[i],
return -1;
}
- ret = streams_xattr_get_ea_value_fsp(talloc_tos(),
- fsp->base_fsp,
- sio->xattr_name,
- &val);
+ ret = streams_xattr_get_ea_value_fsp(
+ talloc_tos(), config, fsp->base_fsp, sio->xattr_name, &val);
if (ret != 0) {
errno = ret;
return -1;
files_struct *fsp, void *data,
size_t n, off_t offset)
{
+ struct streams_xattr_config *config = NULL;
struct stream_io *sio =
(struct stream_io *)VFS_FETCH_FSP_EXTENSION(handle, fsp);
char *val = NULL;
int ret;
size_t length, overlap;
+ SMB_VFS_HANDLE_GET_DATA(handle,
+ config,
+ struct streams_xattr_config,
+ return -1);
+
DBG_DEBUG("offset=%jd, size=%zu\n", (intmax_t)offset, n);
if (sio == NULL) {
return -1;
}
- ret = streams_xattr_get_ea_value_fsp(talloc_tos(),
- fsp->base_fsp,
- sio->xattr_name,
- &val);
+ ret = streams_xattr_get_ea_value_fsp(
+ talloc_tos(), config, fsp->base_fsp, sio->xattr_name, &val);
if (ret != 0) {
errno = ret;
return -1;
return -1;
}
- ret = streams_xattr_get_ea_value_fsp(talloc_tos(),
- fsp->base_fsp,
- sio->xattr_name,
- &val);
+ ret = streams_xattr_get_ea_value_fsp(
+ talloc_tos(), config, fsp->base_fsp, sio->xattr_name, &val);
if (ret != 0) {
errno = ret;
return -1;