fscrypt: Factor out a helper to configure the lookup dentry
[linux-2.6-microblaze.git] / fs / crypto / hooks.c
index 52504dd..104771c 100644 (file)
@@ -102,11 +102,8 @@ int __fscrypt_prepare_lookup(struct inode *dir, struct dentry *dentry,
        if (err && err != -ENOENT)
                return err;
 
-       if (fname->is_nokey_name) {
-               spin_lock(&dentry->d_lock);
-               dentry->d_flags |= DCACHE_NOKEY_NAME;
-               spin_unlock(&dentry->d_lock);
-       }
+       fscrypt_prepare_dentry(dentry, fname->is_nokey_name);
+
        return err;
 }
 EXPORT_SYMBOL_GPL(__fscrypt_prepare_lookup);
@@ -131,12 +128,10 @@ EXPORT_SYMBOL_GPL(__fscrypt_prepare_lookup);
 int fscrypt_prepare_lookup_partial(struct inode *dir, struct dentry *dentry)
 {
        int err = fscrypt_get_encryption_info(dir, true);
+       bool is_nokey_name = (!err && !fscrypt_has_encryption_key(dir));
+
+       fscrypt_prepare_dentry(dentry, is_nokey_name);
 
-       if (!err && !fscrypt_has_encryption_key(dir)) {
-               spin_lock(&dentry->d_lock);
-               dentry->d_flags |= DCACHE_NOKEY_NAME;
-               spin_unlock(&dentry->d_lock);
-       }
        return err;
 }
 EXPORT_SYMBOL_GPL(fscrypt_prepare_lookup_partial);