On Tue, Apr 12, 2016 at 10:27:20AM -0700, Jaegeuk Kim wrote:
> This patch updates fscrypto along with the below ext4 crypto change.
> 
> Fixes: 3d43bcfef5f0 ("ext4 crypto: use dget_parent() in ext4_d_revalidate()")

>  static int fscrypt_d_revalidate(struct dentry *dentry, unsigned int flags)
>  {
> -     struct inode *dir = d_inode(dentry->d_parent);
> -     struct fscrypt_info *ci = dir->i_crypt_info;
> +     struct dentry *dir;
> +     struct fscrypt_info *ci;
>       int dir_has_key, cached_with_key;
>  
> -     if (!dir->i_sb->s_cop->is_encrypted(dir))
> +     dir = dget_parent(dentry);
> +     if (!d_inode(dir)->i_sb->s_cop->is_encrypted(d_inode(dir))) {
> +             dput(dir);

... and as soon as you call it from RCU mode, you are screwed.

Reply via email to