Indicate BACKUP_INTENT to vfs_openat(). Why? I have a customer request
who wants to add O_NOATIME in this case to avoid metadata updates when
a backup or virus-checking application comes along.
This does not fully handle BACKUP_INTENT correctly, this would require
become_root() appropriately. We might want to do that later after a
lot of careful security audit, but this patch independently might
already provide some infrastructure for it.
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Thu Oct 5 14:00:33 UTC 2023 on atb-devel-224
};
#define VFS_OPEN_HOW_RESOLVE_NO_SYMLINKS 1
+#define VFS_OPEN_HOW_WITH_BACKUP_INTENT 2
struct vfs_open_how {
int flags;
START_PROFILE(syscall_openat);
- if (how->resolve & ~VFS_OPEN_HOW_RESOLVE_NO_SYMLINKS) {
+ if (how->resolve & ~(VFS_OPEN_HOW_RESOLVE_NO_SYMLINKS |
+ VFS_OPEN_HOW_WITH_BACKUP_INTENT)) {
errno = ENOSYS;
result = -1;
goto out;
.flags = flags,
.mode = unx_mode,
};
+
+ if (create_options & FILE_OPEN_FOR_BACKUP_INTENT) {
+ how.resolve |= VFS_OPEN_HOW_WITH_BACKUP_INTENT;
+ }
+
fsp_open = open_file(req,
parent_dir_fname->fsp,
smb_fname_atname,