No in-tree uses remain.

Signed-off-by: Miklos Szeredi <mszer...@redhat.com>
---
 Documentation/filesystems/Locking           |  6 +-----
 Documentation/filesystems/directory-locking |  2 +-
 Documentation/filesystems/vfs.txt           |  9 ++-------
 fs/cachefiles/namei.c                       |  3 +--
 fs/namei.c                                  | 15 +++------------
 include/linux/fs.h                          |  2 --
 security/tomoyo/realpath.c                  |  4 ++--
 7 files changed, 10 insertions(+), 31 deletions(-)

diff --git a/Documentation/filesystems/Locking 
b/Documentation/filesystems/Locking
index d30fb2cb5066..da320bc08b9e 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -50,8 +50,6 @@ prototypes:
        int (*mkdir) (struct inode *,struct dentry *,umode_t);
        int (*rmdir) (struct inode *,struct dentry *);
        int (*mknod) (struct inode *,struct dentry *,umode_t,dev_t);
-       int (*rename) (struct inode *, struct dentry *,
-                       struct inode *, struct dentry *);
        int (*rename2) (struct inode *, struct dentry *,
                        struct inode *, struct dentry *, unsigned int);
        int (*readlink) (struct dentry *, char __user *,int);
@@ -83,7 +81,6 @@ symlink:      yes
 mkdir:         yes
 unlink:                yes (both)
 rmdir:         yes (both)      (see below)
-rename:                yes (all)       (see below)
 rename2:       yes (all)       (see below)
 readlink:      no
 get_link:      no
@@ -102,8 +99,7 @@ tmpfile:     no
 
        Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
 victim.
-       cross-directory ->rename() and rename2() has (per-superblock)
-->s_vfs_rename_sem.
+       cross-directory ->rename2() has (per-superblock) ->s_vfs_rename_sem.
 
 See Documentation/filesystems/directory-locking for more detailed discussion
 of the locking scheme for directory operations.
diff --git a/Documentation/filesystems/directory-locking 
b/Documentation/filesystems/directory-locking
index c314badbcfc6..4e32cb961e5b 100644
--- a/Documentation/filesystems/directory-locking
+++ b/Documentation/filesystems/directory-locking
@@ -19,7 +19,7 @@ locks victim and calls the method.  Locks are exclusive.
 
 4) rename() that is _not_ cross-directory.  Locking rules: caller locks
 the parent and finds source and target.  In case of exchange (with
-RENAME_EXCHANGE in rename2() flags argument) lock both.  In any case,
+RENAME_EXCHANGE in flags argument) lock both.  In any case,
 if the target already exists, lock it.  If the source is a non-directory,
 lock it.  If we need to lock both, lock them in inode pointer order.
 Then call the method.  All locks are exclusive.
diff --git a/Documentation/filesystems/vfs.txt 
b/Documentation/filesystems/vfs.txt
index 9ace359d6cc5..c641e0c37a07 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -345,8 +345,6 @@ struct inode_operations {
        int (*mkdir) (struct inode *,struct dentry *,umode_t);
        int (*rmdir) (struct inode *,struct dentry *);
        int (*mknod) (struct inode *,struct dentry *,umode_t,dev_t);
-       int (*rename) (struct inode *, struct dentry *,
-                       struct inode *, struct dentry *);
        int (*rename2) (struct inode *, struct dentry *,
                        struct inode *, struct dentry *, unsigned int);
        int (*readlink) (struct dentry *, char __user *,int);
@@ -416,11 +414,8 @@ otherwise noted.
   rename: called by the rename(2) system call to rename the object to
        have the parent and name given by the second inode and dentry.
 
-  rename2: this has an additional flags argument compared to rename.
-       If no flags are supported by the filesystem then this method
-       need not be implemented.  If some flags are supported then the
-       filesystem must return -EINVAL for any unsupported or unknown
-       flags.  Currently the following flags are implemented:
+       The filesystem must return -EINVAL for any unsupported or
+       unknown flags.  Currently the following flags are implemented:
        (1) RENAME_NOREPLACE: this flag indicates that if the target
        of the rename exists the rename should fail with -EEXIST
        instead of replacing the target.  The VFS already checks for
diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
index 3f7c2cd41f8f..02e1507812de 100644
--- a/fs/cachefiles/namei.c
+++ b/fs/cachefiles/namei.c
@@ -804,8 +804,7 @@ struct dentry *cachefiles_get_directory(struct 
cachefiles_cache *cache,
            !d_backing_inode(subdir)->i_op->lookup ||
            !d_backing_inode(subdir)->i_op->mkdir ||
            !d_backing_inode(subdir)->i_op->create ||
-           (!d_backing_inode(subdir)->i_op->rename &&
-            !d_backing_inode(subdir)->i_op->rename2) ||
+           !d_backing_inode(subdir)->i_op->rename2 ||
            !d_backing_inode(subdir)->i_op->rmdir ||
            !d_backing_inode(subdir)->i_op->unlink)
                goto check_error;
diff --git a/fs/namei.c b/fs/namei.c
index adb04146df09..02803bd6cbad 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -4369,12 +4369,9 @@ int vfs_rename(struct inode *old_dir, struct dentry 
*old_dentry,
        if (error)
                return error;
 
-       if (!old_dir->i_op->rename && !old_dir->i_op->rename2)
+       if (!old_dir->i_op->rename2)
                return -EPERM;
 
-       if (flags && !old_dir->i_op->rename2)
-               return -EINVAL;
-
        /*
         * If we are going to change the parent - check write permissions,
         * we'll need to flip '..'.
@@ -4428,14 +4425,8 @@ int vfs_rename(struct inode *old_dir, struct dentry 
*old_dentry,
                if (error)
                        goto out;
        }
-       if (!old_dir->i_op->rename2) {
-               error = old_dir->i_op->rename(old_dir, old_dentry,
-                                             new_dir, new_dentry);
-       } else {
-               WARN_ON(old_dir->i_op->rename != NULL);
-               error = old_dir->i_op->rename2(old_dir, old_dentry,
-                                              new_dir, new_dentry, flags);
-       }
+       error = old_dir->i_op->rename2(old_dir, old_dentry,
+                                      new_dir, new_dentry, flags);
        if (error)
                goto out;
 
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 8aebcfc42f26..5a69b2e357a5 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1731,8 +1731,6 @@ struct inode_operations {
        int (*mkdir) (struct inode *,struct dentry *,umode_t);
        int (*rmdir) (struct inode *,struct dentry *);
        int (*mknod) (struct inode *,struct dentry *,umode_t,dev_t);
-       int (*rename) (struct inode *, struct dentry *,
-                       struct inode *, struct dentry *);
        int (*rename2) (struct inode *, struct dentry *,
                        struct inode *, struct dentry *, unsigned int);
        int (*setattr) (struct dentry *, struct iattr *);
diff --git a/security/tomoyo/realpath.c b/security/tomoyo/realpath.c
index 5077f1968841..38bcdbc06bb2 100644
--- a/security/tomoyo/realpath.c
+++ b/security/tomoyo/realpath.c
@@ -173,7 +173,7 @@ static char *tomoyo_get_local_path(struct dentry *dentry, 
char * const buffer,
                 * Use filesystem name if filesystem does not support rename()
                 * operation.
                 */
-               if (!inode->i_op->rename && !inode->i_op->rename2)
+               if (!inode->i_op->rename2)
                        goto prepend_filesystem_name;
        }
        /* Prepend device name. */
@@ -283,7 +283,7 @@ char *tomoyo_realpath_from_path(const struct path *path)
                 * or dentry without vfsmount.
                 */
                if (!path->mnt ||
-                   (!inode->i_op->rename && !inode->i_op->rename2))
+                   (!inode->i_op->rename2))
                        pos = tomoyo_get_local_path(path->dentry, buf,
                                                    buf_len - 1);
                /* Get absolute name for the rest. */
-- 
2.5.5

Reply via email to