summaryrefslogtreecommitdiffstats
path: root/fs/ext4/inode.c
diff options
context:
space:
mode:
authorAl Viro2015-04-27 23:51:30 +0200
committerAl Viro2015-05-11 04:18:20 +0200
commita7a67e8a089e25ef48ab01dd34ce82678ef70f11 (patch)
tree13ab26f2255e09f322da5af528c47fd8c547db90 /fs/ext4/inode.c
parentovl: rearrange ovl_follow_link to it doesn't need to call ->put_link (diff)
downloadkernel-qcow2-linux-a7a67e8a089e25ef48ab01dd34ce82678ef70f11.tar.gz
kernel-qcow2-linux-a7a67e8a089e25ef48ab01dd34ce82678ef70f11.tar.xz
kernel-qcow2-linux-a7a67e8a089e25ef48ab01dd34ce82678ef70f11.zip
ext4: split inode_operations for encrypted symlinks off the rest
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ext4/inode.c')
-rw-r--r--fs/ext4/inode.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 55b187c3bac1..9f3baa25ec54 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4213,8 +4213,10 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
inode->i_op = &ext4_dir_inode_operations;
inode->i_fop = &ext4_dir_operations;
} else if (S_ISLNK(inode->i_mode)) {
- if (ext4_inode_is_fast_symlink(inode) &&
- !ext4_encrypted_inode(inode)) {
+ if (ext4_encrypted_inode(inode)) {
+ inode->i_op = &ext4_encrypted_symlink_inode_operations;
+ ext4_set_aops(inode);
+ } else if (ext4_inode_is_fast_symlink(inode)) {
inode->i_op = &ext4_fast_symlink_inode_operations;
nd_terminate_link(ei->i_data, inode->i_size,
sizeof(ei->i_data) - 1);