fs: support RENAME_NOREPLACE for local filesystems
[linux-2.6-microblaze.git] / fs / reiserfs / namei.c
index 8a36696..21b4b71 100644 (file)
@@ -1306,7 +1306,8 @@ static void set_ino_in_dir_entry(struct reiserfs_dir_entry *de,
  * get_empty_nodes or its clones
  */
 static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry,
-                          struct inode *new_dir, struct dentry *new_dentry)
+                          struct inode *new_dir, struct dentry *new_dentry,
+                          unsigned int flags)
 {
        int retval;
        INITIALIZE_PATH(old_entry_path);
@@ -1321,6 +1322,9 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry,
        unsigned long savelink = 1;
        struct timespec ctime;
 
+       if (flags & ~RENAME_NOREPLACE)
+               return -EINVAL;
+
        /*
         * three balancings: (1) old name removal, (2) new name insertion
         * and (3) maybe "save" link insertion
@@ -1648,7 +1652,7 @@ const struct inode_operations reiserfs_dir_inode_operations = {
        .mkdir = reiserfs_mkdir,
        .rmdir = reiserfs_rmdir,
        .mknod = reiserfs_mknod,
-       .rename = reiserfs_rename,
+       .rename2 = reiserfs_rename,
        .setattr = reiserfs_setattr,
        .setxattr = generic_setxattr,
        .getxattr = generic_getxattr,