Provided by: freebsd-manpages_12.2-2_all bug

NAME

       VOP_RENAME — rename a file

SYNOPSIS

       #include <sys/param.h>
       #include <sys/vnode.h>

       int
       VOP_RENAME(struct  vnode  *fdvp,  struct  vnode  *fvp,  struct  componentname  *fcnp, struct vnode *tdvp,
           struct vnode *tvp, struct componentname *tcnp);

DESCRIPTION

       This renames a file and possibly changes its parent directory.  If the destination object exists, it will
       be removed first.

       Its arguments are:

       fdvp  The vnode of the old parent directory.

       fvp   The vnode of the file to be renamed.

       fcnp  Pathname information about the file's current name.

       tdvp  The vnode of the new parent directory.

       tvp   The vnode of the target file (if it exists).

       tcnp  Pathname information about the file's new name.

LOCKS

       The source directory and file are unlocked but are expected to have their ref count bumped on entry.  The
       VOP routine is expected to vrele(9) both prior to returning.

       The destination directory and file are locked as well as having their ref count bumped.  The VOP  routine
       is expected to vput(9) both prior to returning.

ERRORS

       [EPERM]            The file is immutable.

       [EXDEV]            It is not possible to rename a file between different file systems.

       [EINVAL]           An  attempt  was  made to rename . or .., or to perform an operation which would break
                          the directory tree structure.

       [ENOTDIR]          An attempt was made to rename a directory to a file or vice versa.

       [ENOTEMPTY]        An attempt was made to remove a directory which is not empty.

SEE ALSO

       vnode(9)

AUTHORS

       This manual page was written by Doug Rabson.

Debian                                            July 24, 1996                                    VOP_RENAME(9)