diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-03-28 17:54:04 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2019-03-28 18:43:04 +0100 |
commit | 8a016c746ef4f7e9b5fcc5fc7086e80880d84608 (patch) | |
tree | 3de74a91ac4963ec214009b55c14fd72b1429712 /src/basic/chattr-util.h | |
parent | c3272fd4df4a2ff3ebc1b8d4024d56bc803a1b62 (diff) | |
download | systemd-8a016c746ef4f7e9b5fcc5fc7086e80880d84608.tar.gz |
util-lib: when copying files make sure to apply some chattrs early, some late
Some chattrs only work sensible if you set them right after opening a
file for create (think: FS_NOCOW_FL). Others only work when they are
applied when the file is fully written (think: FS_IMMUTABLE_FL). Let's
take that into account when copying files and applying a chattr to them.
Diffstat (limited to 'src/basic/chattr-util.h')
-rw-r--r-- | src/basic/chattr-util.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/basic/chattr-util.h b/src/basic/chattr-util.h index 7570bba2fa..eb6bfbe461 100644 --- a/src/basic/chattr-util.h +++ b/src/basic/chattr-util.h @@ -1,6 +1,20 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ #pragma once +#include <linux/fs.h> + +#include "missing_fs.h" + +/* The chattr() flags to apply when creating a new file *before* writing to it. In particular, flags such as + * FS_NOCOW_FL don't work if applied a-posteriori. All other flags are fine (or even necessary, think + * FS_IMMUTABLE_FL!) to apply after writing to the files. */ +#define CHATTR_EARLY_FL \ + (FS_NOATIME_FL | \ + FS_COMPR_FL | \ + FS_NOCOW_FL | \ + FS_NOCOMP_FL | \ + FS_PROJINHERIT_FL) + int chattr_fd(int fd, unsigned value, unsigned mask, unsigned *previous); int chattr_path(const char *p, unsigned value, unsigned mask, unsigned *previous); |