linux/fs
Alexander Larsson bc8df7a3dc ovl: Add an alternative type of whiteout
An xattr whiteout (called "xwhiteout" in the code) is a reguar file of
zero size with the "overlay.whiteout" xattr set. A file like this in a
directory with the "overlay.whiteouts" xattrs set will be treated the
same way as a regular whiteout.

The "overlay.whiteouts" directory xattr is used in order to
efficiently handle overlay checks in readdir(), as we only need to
checks xattrs in affected directories.

The advantage of this kind of whiteout is that they can be escaped
using the standard overlay xattr escaping mechanism. So, a file with a
"overlay.overlay.whiteout" xattr would be unescaped to
"overlay.whiteout", which could then be consumed by another overlayfs
as a whiteout.

Overlayfs itself doesn't create whiteouts like this, but a userspace
mechanism could use this alternative mechanism to convert images that
may contain whiteouts to be used with overlayfs.

To work as a whiteout for both regular overlayfs mounts as well as
userxattr mounts both the "user.overlay.whiteout*" and the
"trusted.overlay.whiteout*" xattrs will need to be created.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
2023-10-31 00:12:59 +02:00
..
9p vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
adfs adfs: convert to new timestamp accessors 2023-10-18 13:26:18 +02:00
affs affs: convert to new timestamp accessors 2023-10-18 13:26:18 +02:00
afs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
autofs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
befs befs: convert to new timestamp accessors 2023-10-18 13:26:18 +02:00
bfs bfs: convert to new timestamp accessors 2023-10-18 13:26:19 +02:00
btrfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
cachefiles
ceph vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
coda coda: convert to new timestamp accessors 2023-10-18 13:26:19 +02:00
configfs configfs: convert to new timestamp accessors 2023-10-18 13:26:19 +02:00
cramfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
crypto
debugfs debugfs: convert to new timestamp accessors 2023-10-18 13:26:20 +02:00
devpts devpts: convert to new timestamp accessors 2023-10-18 13:26:20 +02:00
dlm
ecryptfs ecryptfs: move ecryptfs_xattr_handlers to .rodata 2023-10-09 16:24:17 +02:00
efivarfs efivarfs: convert to new timestamp accessors 2023-10-18 13:26:20 +02:00
efs efs: convert to new timestamp accessors 2023-10-18 13:26:21 +02:00
erofs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
exfat exfat: convert to new timestamp accessors 2023-10-18 13:26:21 +02:00
exportfs
ext2 vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
ext4 vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
f2fs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
fat fat: convert to new timestamp accessors 2023-10-18 14:08:03 +02:00
freevxfs freevxfs: convert to new timestamp accessors 2023-10-18 14:08:21 +02:00
fscache
fuse vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
gfs2 vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
hfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
hfsplus vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
hostfs hostfs: convert to new timestamp accessors 2023-10-18 14:08:22 +02:00
hpfs hpfs: convert to new timestamp accessors 2023-10-18 14:08:22 +02:00
hugetlbfs hugetlbfs: convert to new timestamp accessors 2023-10-18 14:08:22 +02:00
iomap iomap: fix short copy in iomap_write_iter() 2023-10-19 09:41:36 -07:00
isofs isofs: convert to new timestamp accessors 2023-10-18 14:08:22 +02:00
jbd2 Regression and bug fixes for ext4. 2023-09-17 10:33:53 -07:00
jffs2 vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
jfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
kernfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
lockd
minix minix: convert to new timestamp accessors 2023-10-18 14:08:23 +02:00
netfs netfs: Only call folio_start_fscache() one time for each folio 2023-09-18 12:03:46 -07:00
nfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
nfs_common
nfsd vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
nilfs2 nilfs2: convert to new timestamp accessors 2023-10-18 14:08:24 +02:00
nls
notify vfs-6.7.misc 2023-10-30 09:14:19 -10:00
ntfs ntfs: convert to new timestamp accessors 2023-10-18 14:08:24 +02:00
ntfs3 vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
ocfs2 vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
omfs omfs: convert to new timestamp accessors 2023-10-18 14:08:25 +02:00
openpromfs openpromfs: convert to new timestamp accessors 2023-10-18 14:08:25 +02:00
orangefs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
overlayfs ovl: Add an alternative type of whiteout 2023-10-31 00:12:59 +02:00
proc vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
pstore pstore: convert to new timestamp accessors 2023-10-18 14:08:26 +02:00
qnx4 qnx4: convert to new timestamp accessors 2023-10-18 14:08:26 +02:00
qnx6 qnx6: convert to new timestamp accessors 2023-10-18 14:08:26 +02:00
quota quota: Fix slow quotaoff 2023-10-06 11:01:23 +02:00
ramfs ramfs: convert to new timestamp accessors 2023-10-18 14:08:26 +02:00
reiserfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
romfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
smb vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
squashfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
sysfs
sysv sysv: convert to new timestamp accessors 2023-10-18 14:08:28 +02:00
tracefs tracefs: convert to new timestamp accessors 2023-10-18 14:08:28 +02:00
ubifs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
udf udf: convert to new timestamp accessors 2023-10-18 14:08:28 +02:00
ufs ufs: convert to new timestamp accessors 2023-10-18 14:08:28 +02:00
unicode
vboxsf vboxsf: convert to new timestamp accessors 2023-10-18 14:08:29 +02:00
verity
xfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
zonefs zonefs: convert to new timestamp accessors 2023-10-18 14:08:29 +02:00
aio.c aio: Annotate struct kioctx_table with __counted_by 2023-09-20 14:22:01 +02:00
anon_inodes.c
attr.c fs: convert core infrastructure to new timestamp accessors 2023-10-18 13:26:15 +02:00
bad_inode.c fs: convert core infrastructure to new timestamp accessors 2023-10-18 13:26:15 +02:00
binfmt_elf.c
binfmt_elf_fdpic.c fs: binfmt_elf_efpic: fix personality for ELF-FDPIC 2023-09-29 17:20:45 -07:00
binfmt_elf_test.c
binfmt_flat.c
binfmt_misc.c fs: convert core infrastructure to new timestamp accessors 2023-10-18 13:26:15 +02:00
binfmt_script.c
buffer.c iomap: add a workaround for racy i_size updates on block devices 2023-09-25 08:55:00 -07:00
char_dev.c chardev: Simplify usage of try_module_get() 2023-10-19 11:03:16 +02:00
compat_binfmt_elf.c
coredump.c
d_path.c
dax.c
dcache.c
direct-io.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c
fcntl.c
fhandle.c
file.c file, i915: fix file reference for mmap_singleton() 2023-10-25 22:17:04 +02:00
file_table.c fs: store real path instead of fake path in backing file f_path 2023-10-19 11:03:15 +02:00
filesystems.c
fs-writeback.c vfs-6.7.misc 2023-10-30 09:14:19 -10:00
fs_context.c fs: factor out vfs_parse_monolithic_sep() helper 2023-10-12 18:53:36 +03:00
fs_parser.c
fs_pin.c
fs_struct.c
fs_types.c
fsopen.c fsconfig: ensure that dirfd is set to aux 2023-09-22 14:09:06 +02:00
init.c fs: add a new SB_I_NOUMASK flag 2023-10-19 11:02:47 +02:00
inode.c vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
internal.h fs: store real path instead of fake path in backing file f_path 2023-10-19 11:03:15 +02:00
ioctl.c
Kconfig
Kconfig.binfmt
kernel_read_file.c
libfs.c fs: new accessor methods for atime and mtime 2023-10-18 13:26:14 +02:00
locks.c NFSD 6.6 Release Notes 2023-08-31 15:32:18 -07:00
Makefile
mbcache.c
mnt_idmapping.c
mount.h
mpage.c
namei.c vfs-6.7.misc 2023-10-30 09:14:19 -10:00
namespace.c vfs: stop counting on gcc not messing with mnt_expiry_mark if not asked 2023-10-19 11:02:49 +02:00
nsfs.c fs: convert core infrastructure to new timestamp accessors 2023-10-18 13:26:15 +02:00
open.c fs: store real path instead of fake path in backing file f_path 2023-10-19 11:03:15 +02:00
pipe.c vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
pnode.c
pnode.h
posix_acl.c
proc_namespace.c
read_write.c
readdir.c
remap_range.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c fs: convert core infrastructure to new timestamp accessors 2023-10-18 13:26:15 +02:00
stat.c fs: convert core infrastructure to new timestamp accessors 2023-10-18 13:26:15 +02:00
statfs.c
super.c ovl: punt write aio completion to workqueue 2023-10-31 00:12:54 +02:00
sync.c
sysctls.c
timerfd.c
userfaultfd.c
utimes.c
xattr.c xattr: make the xattr array itself const 2023-10-09 16:24:16 +02:00