Name

vfs_link — create a new link

Synopsis

int vfs_link (struct dentry * old_dentry,
 struct inode * dir,
 struct dentry * new_dentry,
 struct inode ** delegated_inode);
 

Arguments

struct dentry * old_dentry

object to be linked

struct inode * dir

new parent

struct dentry * new_dentry

where to create the new link

struct inode ** delegated_inode

returns inode needing a delegation break

Description

The caller must hold dir->i_mutex

If vfs_link discovers a delegation on the to-be-linked file in need of breaking, it will return -EWOULDBLOCK and return a reference to the inode in delegated_inode. The caller should then break the delegation and retry. Because breaking a delegation may take a long time, the caller should drop the i_mutex before doing so.

Alternatively, a caller may pass NULL for delegated_inode. This may be appropriate for callers that expect the underlying filesystem not to be NFS exported.