Merge branch 'work.xattr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[cascardo/linux.git] / fs / ext4 / symlink.c
index 4d83d9e..557b3b0 100644 (file)
@@ -30,7 +30,6 @@ static const char *ext4_encrypted_get_link(struct dentry *dentry,
        char *caddr, *paddr = NULL;
        struct fscrypt_str cstr, pstr;
        struct fscrypt_symlink_data *sd;
-       loff_t size = min_t(loff_t, i_size_read(inode), PAGE_SIZE - 1);
        int res;
        u32 max_size = inode->i_sb->s_blocksize;
 
@@ -49,7 +48,6 @@ static const char *ext4_encrypted_get_link(struct dentry *dentry,
                if (IS_ERR(cpage))
                        return ERR_CAST(cpage);
                caddr = page_address(cpage);
-               caddr[size] = 0;
        }
 
        /* Symlink is encrypted */
@@ -65,16 +63,14 @@ static const char *ext4_encrypted_get_link(struct dentry *dentry,
        res = fscrypt_fname_alloc_buffer(inode, cstr.len, &pstr);
        if (res)
                goto errout;
+       paddr = pstr.name;
 
        res = fscrypt_fname_disk_to_usr(inode, 0, 0, &cstr, &pstr);
-       if (res < 0)
+       if (res)
                goto errout;
 
-       paddr = pstr.name;
-
        /* Null-terminate the name */
-       if (res <= pstr.len)
-               paddr[res] = '\0';
+       paddr[pstr.len] = '\0';
        if (cpage)
                put_page(cpage);
        set_delayed_call(done, kfree_link, paddr);
@@ -90,28 +86,19 @@ const struct inode_operations ext4_encrypted_symlink_inode_operations = {
        .readlink       = generic_readlink,
        .get_link       = ext4_encrypted_get_link,
        .setattr        = ext4_setattr,
-       .setxattr       = generic_setxattr,
-       .getxattr       = generic_getxattr,
        .listxattr      = ext4_listxattr,
-       .removexattr    = generic_removexattr,
 };
 
 const struct inode_operations ext4_symlink_inode_operations = {
        .readlink       = generic_readlink,
        .get_link       = page_get_link,
        .setattr        = ext4_setattr,
-       .setxattr       = generic_setxattr,
-       .getxattr       = generic_getxattr,
        .listxattr      = ext4_listxattr,
-       .removexattr    = generic_removexattr,
 };
 
 const struct inode_operations ext4_fast_symlink_inode_operations = {
        .readlink       = generic_readlink,
        .get_link       = simple_get_link,
        .setattr        = ext4_setattr,
-       .setxattr       = generic_setxattr,
-       .getxattr       = generic_getxattr,
        .listxattr      = ext4_listxattr,
-       .removexattr    = generic_removexattr,
 };