fuse: Protect fi->nlookup with fi->lock

This continues previous patch and introduces the same protection for
nlookup field.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
Kirill Tkhai 2018-11-09 13:33:27 +03:00 коммит произвёл Miklos Szeredi
Родитель f15ecfef05
Коммит c9d8f5f069
3 изменённых файлов: 6 добавлений и 6 удалений

Просмотреть файл

@ -207,9 +207,9 @@ static int fuse_dentry_revalidate(struct dentry *entry, unsigned int flags)
fuse_queue_forget(fc, forget, outarg.nodeid, 1);
goto invalid;
}
spin_lock(&fc->lock);
spin_lock(&fi->lock);
fi->nlookup++;
spin_unlock(&fc->lock);
spin_unlock(&fi->lock);
}
kfree(forget);
if (ret == -ENOMEM)

Просмотреть файл

@ -325,9 +325,9 @@ struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
}
fi = get_fuse_inode(inode);
spin_lock(&fc->lock);
spin_lock(&fi->lock);
fi->nlookup++;
spin_unlock(&fc->lock);
spin_unlock(&fi->lock);
fuse_change_attributes(inode, attr, attr_valid, attr_version);
return inode;

Просмотреть файл

@ -213,9 +213,9 @@ retry:
}
fi = get_fuse_inode(inode);
spin_lock(&fc->lock);
spin_lock(&fi->lock);
fi->nlookup++;
spin_unlock(&fc->lock);
spin_unlock(&fi->lock);
forget_all_cached_acls(inode);
fuse_change_attributes(inode, &o->attr,