Loading fs/btrfs/inode.c +12 −4 Original line number Diff line number Diff line Loading @@ -6413,7 +6413,8 @@ static int btrfs_mknod(struct inode *dir, struct dentry *dentry, goto out_unlock_inode; } else { btrfs_update_inode(trans, root, inode); d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); } out_unlock: Loading Loading @@ -6488,7 +6489,8 @@ static int btrfs_create(struct inode *dir, struct dentry *dentry, goto out_unlock_inode; BTRFS_I(inode)->io_tree.ops = &btrfs_extent_io_ops; d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); out_unlock: btrfs_end_transaction(trans, root); Loading Loading @@ -6631,7 +6633,12 @@ static int btrfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) if (err) goto out_fail_inode; d_instantiate_new(dentry, inode); d_instantiate(dentry, inode); /* * mkdir is special. We're unlocking after we call d_instantiate * to avoid a race with nfsd calling d_instantiate. */ unlock_new_inode(inode); drop_on_err = 0; out_fail: Loading Loading @@ -9782,7 +9789,8 @@ static int btrfs_symlink(struct inode *dir, struct dentry *dentry, goto out_unlock_inode; } d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); out_unlock: btrfs_end_transaction(trans, root); Loading fs/dcache.c +0 −22 Original line number Diff line number Diff line Loading @@ -1897,28 +1897,6 @@ struct dentry *d_instantiate_unique(struct dentry *entry, struct inode *inode) EXPORT_SYMBOL(d_instantiate_unique); /* * This should be equivalent to d_instantiate() + unlock_new_inode(), * with lockdep-related part of unlock_new_inode() done before * anything else. Use that instead of open-coding d_instantiate()/ * unlock_new_inode() combinations. */ void d_instantiate_new(struct dentry *entry, struct inode *inode) { BUG_ON(!hlist_unhashed(&entry->d_u.d_alias)); BUG_ON(!inode); lockdep_annotate_inode_mutex_key(inode); security_d_instantiate(entry, inode); spin_lock(&inode->i_lock); __d_instantiate(entry, inode); WARN_ON(!(inode->i_state & I_NEW)); inode->i_state &= ~I_NEW; smp_mb(); wake_up_bit(&inode->i_state, __I_NEW); spin_unlock(&inode->i_lock); } EXPORT_SYMBOL(d_instantiate_new); /** * d_instantiate_no_diralias - instantiate a non-aliased dentry * @entry: dentry to complete Loading fs/ecryptfs/inode.c +2 −1 Original line number Diff line number Diff line Loading @@ -298,7 +298,8 @@ ecryptfs_create(struct inode *directory_inode, struct dentry *ecryptfs_dentry, ecryptfs_inode_to_lower(ecryptfs_inode), crypt_stat); d_instantiate_new(ecryptfs_dentry, ecryptfs_inode); unlock_new_inode(ecryptfs_inode); d_instantiate(ecryptfs_dentry, ecryptfs_inode); out: return rc; } Loading fs/ext2/namei.c +4 −2 Original line number Diff line number Diff line Loading @@ -40,7 +40,8 @@ static inline int ext2_add_nondir(struct dentry *dentry, struct inode *inode) { int err = ext2_add_link(dentry, inode); if (!err) { d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); return 0; } inode_dec_link_count(inode); Loading Loading @@ -266,7 +267,8 @@ static int ext2_mkdir(struct inode * dir, struct dentry * dentry, umode_t mode) if (err) goto out_fail; d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); out: return err; Loading fs/ext4/namei.c +4 −2 Original line number Diff line number Diff line Loading @@ -2426,7 +2426,8 @@ static int ext4_add_nondir(handle_t *handle, int err = ext4_add_entry(handle, dentry, inode); if (!err) { ext4_mark_inode_dirty(handle, inode); d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); return 0; } drop_nlink(inode); Loading Loading @@ -2665,7 +2666,8 @@ out_clear_inode: err = ext4_mark_inode_dirty(handle, dir); if (err) goto out_clear_inode; d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); if (IS_DIRSYNC(dir)) ext4_handle_sync(handle); Loading Loading
fs/btrfs/inode.c +12 −4 Original line number Diff line number Diff line Loading @@ -6413,7 +6413,8 @@ static int btrfs_mknod(struct inode *dir, struct dentry *dentry, goto out_unlock_inode; } else { btrfs_update_inode(trans, root, inode); d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); } out_unlock: Loading Loading @@ -6488,7 +6489,8 @@ static int btrfs_create(struct inode *dir, struct dentry *dentry, goto out_unlock_inode; BTRFS_I(inode)->io_tree.ops = &btrfs_extent_io_ops; d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); out_unlock: btrfs_end_transaction(trans, root); Loading Loading @@ -6631,7 +6633,12 @@ static int btrfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) if (err) goto out_fail_inode; d_instantiate_new(dentry, inode); d_instantiate(dentry, inode); /* * mkdir is special. We're unlocking after we call d_instantiate * to avoid a race with nfsd calling d_instantiate. */ unlock_new_inode(inode); drop_on_err = 0; out_fail: Loading Loading @@ -9782,7 +9789,8 @@ static int btrfs_symlink(struct inode *dir, struct dentry *dentry, goto out_unlock_inode; } d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); out_unlock: btrfs_end_transaction(trans, root); Loading
fs/dcache.c +0 −22 Original line number Diff line number Diff line Loading @@ -1897,28 +1897,6 @@ struct dentry *d_instantiate_unique(struct dentry *entry, struct inode *inode) EXPORT_SYMBOL(d_instantiate_unique); /* * This should be equivalent to d_instantiate() + unlock_new_inode(), * with lockdep-related part of unlock_new_inode() done before * anything else. Use that instead of open-coding d_instantiate()/ * unlock_new_inode() combinations. */ void d_instantiate_new(struct dentry *entry, struct inode *inode) { BUG_ON(!hlist_unhashed(&entry->d_u.d_alias)); BUG_ON(!inode); lockdep_annotate_inode_mutex_key(inode); security_d_instantiate(entry, inode); spin_lock(&inode->i_lock); __d_instantiate(entry, inode); WARN_ON(!(inode->i_state & I_NEW)); inode->i_state &= ~I_NEW; smp_mb(); wake_up_bit(&inode->i_state, __I_NEW); spin_unlock(&inode->i_lock); } EXPORT_SYMBOL(d_instantiate_new); /** * d_instantiate_no_diralias - instantiate a non-aliased dentry * @entry: dentry to complete Loading
fs/ecryptfs/inode.c +2 −1 Original line number Diff line number Diff line Loading @@ -298,7 +298,8 @@ ecryptfs_create(struct inode *directory_inode, struct dentry *ecryptfs_dentry, ecryptfs_inode_to_lower(ecryptfs_inode), crypt_stat); d_instantiate_new(ecryptfs_dentry, ecryptfs_inode); unlock_new_inode(ecryptfs_inode); d_instantiate(ecryptfs_dentry, ecryptfs_inode); out: return rc; } Loading
fs/ext2/namei.c +4 −2 Original line number Diff line number Diff line Loading @@ -40,7 +40,8 @@ static inline int ext2_add_nondir(struct dentry *dentry, struct inode *inode) { int err = ext2_add_link(dentry, inode); if (!err) { d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); return 0; } inode_dec_link_count(inode); Loading Loading @@ -266,7 +267,8 @@ static int ext2_mkdir(struct inode * dir, struct dentry * dentry, umode_t mode) if (err) goto out_fail; d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); out: return err; Loading
fs/ext4/namei.c +4 −2 Original line number Diff line number Diff line Loading @@ -2426,7 +2426,8 @@ static int ext4_add_nondir(handle_t *handle, int err = ext4_add_entry(handle, dentry, inode); if (!err) { ext4_mark_inode_dirty(handle, inode); d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); return 0; } drop_nlink(inode); Loading Loading @@ -2665,7 +2666,8 @@ out_clear_inode: err = ext4_mark_inode_dirty(handle, dir); if (err) goto out_clear_inode; d_instantiate_new(dentry, inode); unlock_new_inode(inode); d_instantiate(dentry, inode); if (IS_DIRSYNC(dir)) ext4_handle_sync(handle); Loading