Am Samstag, 14. Dezember 2013, 21:54:55 schrieb Richard Weinberger: > In all three cases, new_inode_pseudo(), iget_locked() and iget5_locked(), > we own the new inode exclusively at this point and therefore taking > ->i_lock to protect ->i_state/->i_hash against concurrent access is > superfluous. > > Signed-off-by: Richard Weinberger <richard@xxxxxx> > --- > fs/inode.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/fs/inode.c b/fs/inode.c > index 4bcdad3..5f2a735 100644 > --- a/fs/inode.c > +++ b/fs/inode.c > @@ -869,9 +869,7 @@ struct inode *new_inode_pseudo(struct super_block *sb) > struct inode *inode = alloc_inode(sb); > > if (inode) { > - spin_lock(&inode->i_lock); > inode->i_state = 0; > - spin_unlock(&inode->i_lock); > INIT_LIST_HEAD(&inode->i_sb_list); > } > return inode; > @@ -1025,10 +1023,8 @@ struct inode *iget5_locked(struct super_block *sb, > unsigned long hashval, if (set(inode, data)) > goto set_failed; > > - spin_lock(&inode->i_lock); > inode->i_state = I_NEW; > hlist_add_head(&inode->i_hash, head); > - spin_unlock(&inode->i_lock); > inode_sb_list_add(inode); > spin_unlock(&inode_hash_lock); > > @@ -1092,10 +1088,8 @@ struct inode *iget_locked(struct super_block *sb, > unsigned long ino) old = find_inode_fast(sb, head, ino); > if (!old) { > inode->i_ino = ino; > - spin_lock(&inode->i_lock); > inode->i_state = I_NEW; > hlist_add_head(&inode->i_hash, head); > - spin_unlock(&inode->i_lock); > inode_sb_list_add(inode); > spin_unlock(&inode_hash_lock); Any comments on this? Thanks, //richard -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html