libfs: support RENAME_NOREPLACE in simple_rename()

This is trivial to do:

 - add flags argument to simple_rename()
 - check if flags doesn't have any other than RENAME_NOREPLACE
 - assign simple_rename() to .rename2 instead of .rename

Filesystems converted:

hugetlbfs, ramfs, bpf.

Debugfs uses simple_rename() to implement debugfs_rename(), which is for
debugfs instances to rename files internally, not for userspace filesystem
access.  For this case pass zero flags to simple_rename().

Signed-off-by: Miklos Szeredi <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Cc: Alexei Starovoitov <[email protected]>
This commit is contained in:
Miklos Szeredi 2016-09-27 11:03:57 +02:00
commit e0e0be8a83
6 changed files with 11 additions and 6 deletions

View file

@ -146,7 +146,7 @@ static const struct inode_operations ramfs_dir_inode_operations = {
.mkdir = ramfs_mkdir,
.rmdir = simple_rmdir,
.mknod = ramfs_mknod,
.rename = simple_rename,
.rename2 = simple_rename,
};
static const struct super_operations ramfs_ops = {