return ret;
}
-static ssize_t shadow_copy2_lgetxattr(vfs_handle_struct *handle,
- const char *fname, const char *aname,
- void *value, size_t size)
-{
- time_t timestamp;
- char *stripped;
- ssize_t ret;
- int saved_errno;
- char *conv;
-
- if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname,
- ×tamp, &stripped)) {
- return -1;
- }
- if (timestamp == 0) {
- return SMB_VFS_NEXT_LGETXATTR(handle, fname, aname, value,
- size);
- }
- conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp);
- TALLOC_FREE(stripped);
- if (conv == NULL) {
- return -1;
- }
- ret = SMB_VFS_NEXT_LGETXATTR(handle, conv, aname, value, size);
- saved_errno = errno;
- TALLOC_FREE(conv);
- errno = saved_errno;
- return ret;
-}
-
static ssize_t shadow_copy2_listxattr(struct vfs_handle_struct *handle,
const char *fname,
char *list, size_t size)
.mkdir_fn = shadow_copy2_mkdir,
.rmdir_fn = shadow_copy2_rmdir,
.getxattr_fn = shadow_copy2_getxattr,
- .lgetxattr_fn = shadow_copy2_lgetxattr,
.listxattr_fn = shadow_copy2_listxattr,
.removexattr_fn = shadow_copy2_removexattr,
.lremovexattr_fn = shadow_copy2_lremovexattr,