vfs: document locking requirements for d_move, __d_move and d_materialise_unique
Adding a comment to d_materialise_unique per Al's request... d_move and __d_move have some pretty substantial locking requirements, but they are not clearly documented. Add some comments spelling them out. Also, document the requirement for the i_mutex of the parent in d_materialise_unique. Cc: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
41c96486f2
commit
c46c887744
11
fs/dcache.c
11
fs/dcache.c
|
@ -2138,8 +2138,9 @@ static void dentry_unlock_parents_for_move(struct dentry *dentry,
|
|||
* @target: new dentry
|
||||
*
|
||||
* Update the dcache to reflect the move of a file name. Negative
|
||||
* dcache entries should not be moved in this way. Caller hold
|
||||
* rename_lock.
|
||||
* dcache entries should not be moved in this way. Caller must hold
|
||||
* rename_lock, the i_mutex of the source and target directories,
|
||||
* and the sb->s_vfs_rename_mutex if they differ. See lock_rename().
|
||||
*/
|
||||
static void __d_move(struct dentry * dentry, struct dentry * target)
|
||||
{
|
||||
|
@ -2202,7 +2203,8 @@ static void __d_move(struct dentry * dentry, struct dentry * target)
|
|||
* @target: new dentry
|
||||
*
|
||||
* Update the dcache to reflect the move of a file name. Negative
|
||||
* dcache entries should not be moved in this way.
|
||||
* dcache entries should not be moved in this way. See the locking
|
||||
* requirements for __d_move.
|
||||
*/
|
||||
void d_move(struct dentry *dentry, struct dentry *target)
|
||||
{
|
||||
|
@ -2320,7 +2322,8 @@ static void __d_materialise_dentry(struct dentry *dentry, struct dentry *anon)
|
|||
* @inode: inode to bind to the dentry, to which aliases may be attached
|
||||
*
|
||||
* Introduces an dentry into the tree, substituting an extant disconnected
|
||||
* root directory alias in its place if there is one
|
||||
* root directory alias in its place if there is one. Caller must hold the
|
||||
* i_mutex of the parent directory.
|
||||
*/
|
||||
struct dentry *d_materialise_unique(struct dentry *dentry, struct inode *inode)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue