Hello Lukas, On 9/14/18 12:37 AM, Lucas Werkmeister wrote: > The RENAME_NOREPLACE flag was added with the initial release of the > renameat2 syscall in Linux 3.15, but support for most filesystems was > only added in later versions, and some may still not support it. > > Signed-off-by: Lucas Werkmeister <mail@xxxxxxxxxxxxxxxxxxx> > --- > > Notes: > This list gets rather unwieldy with Linux 4.9, but I’m not sure what > the best way to avoid that is… I think the best thing to do is omit a few of those filesystems and just say "and many other filesystems". I've applied your patch, and then reworked the text a little (and noted an important filesystem, XFS, that added support in 4.0, as far as I can tell) Here's the result: RENAME_NOREPLACE requires support from the underlying filesystem. Support for various file systemd was added as follows: * ext4 (Linux 3.15); * btrfs, shmem, and cifs (Linux 3.17); * xfs (Linux 4.0); * Support for many other filesystems was added in Linux 4.9, including etx2, minix, reiserfs, jfs, vfat, and bpf. Thanks for the patch! Cheers, Michael > man2/rename.2 | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/man2/rename.2 b/man2/rename.2 > index 53b26b589..03d542939 100644 > --- a/man2/rename.2 > +++ b/man2/rename.2 > @@ -209,6 +209,21 @@ already exists. > .B RENAME_NOREPLACE > can't be employed together with > .BR RENAME_EXCHANGE . > +.IP > +.B RENAME_NOREPLACE > +requires support from the underlying filesystem. > +Among the filesystems that provide that support are > +ext4 (since Linux 3.15), > +.\" ext4: commit 0a7c3937a1f23f8cb5fc77ae01661e9968a51d0c > +btrfs, shmem and cifs (since Linux 3.17), > +.\" btrfs: commit 80ace85c915d0f41016f82917218997b72431258 > +.\" shmem: commit 3b69ff51d087d265aa4af3a532fc4f20bf33e718 > +.\" cifs: commit 7c33d5972ce382bcc506d16235f1e9b7d22cbef8 > +and affs, bfs, exofs, ext2, hfs, hfsplus, jffs2, jfs, logfs, minix, msdos, > +nilfs2, omfs, reiserfs, sysvfs, ubifs, udf, ufs, vfat, > +hugetlbfs, ramfs, and bpf (since Linux 4.9). > +.\" local filesystems: commit f03b8ad8d38634d13e802165cc15917481b47835 > +.\" libfs: commit e0e0be8a835520e2f7c89f214dfda570922a1b90 > .TP > .BR RENAME_WHITEOUT " (since Linux 3.18)" > .\" commit 0d7a855526dd672e114aff2ac22b60fc6f155b08 > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/