ubifs: switch to fscrypt_get_symlink()
authorEric Biggers <ebiggers@google.com>
Fri, 12 Jan 2018 04:27:00 +0000 (23:27 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 12 Jan 2018 04:27:00 +0000 (23:27 -0500)
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ubifs/file.c

index dfe85069586ebe001eb9bba841405bb4a43e94bf..3cfc578c42eade80cef2e3669808e61f153325c3 100644 (file)
@@ -1662,49 +1662,17 @@ static const char *ubifs_get_link(struct dentry *dentry,
                                            struct inode *inode,
                                            struct delayed_call *done)
 {
-       int err;
-       struct fscrypt_symlink_data *sd;
        struct ubifs_inode *ui = ubifs_inode(inode);
-       struct fscrypt_str cstr;
-       struct fscrypt_str pstr;
 
-       if (!ubifs_crypt_is_encrypted(inode))
+       if (!IS_ENCRYPTED(inode))
                return ui->data;
 
        if (!dentry)
                return ERR_PTR(-ECHILD);
 
-       err = fscrypt_get_encryption_info(inode);
-       if (err)
-               return ERR_PTR(err);
-
-       sd = (struct fscrypt_symlink_data *)ui->data;
-       cstr.name = sd->encrypted_path;
-       cstr.len = le16_to_cpu(sd->len);
-
-       if (cstr.len == 0)
-               return ERR_PTR(-ENOENT);
-
-       if ((cstr.len + sizeof(struct fscrypt_symlink_data) - 1) > ui->data_len)
-               return ERR_PTR(-EIO);
-
-       err = fscrypt_fname_alloc_buffer(inode, cstr.len, &pstr);
-       if (err)
-               return ERR_PTR(err);
-
-       err = fscrypt_fname_disk_to_usr(inode, 0, 0, &cstr, &pstr);
-       if (err) {
-               fscrypt_fname_free_buffer(&pstr);
-               return ERR_PTR(err);
-       }
-
-       pstr.name[pstr.len] = '\0';
-
-       set_delayed_call(done, kfree_link, pstr.name);
-       return pstr.name;
+       return fscrypt_get_symlink(inode, ui->data, ui->data_len, done);
 }
 
-
 const struct address_space_operations ubifs_file_address_operations = {
        .readpage       = ubifs_readpage,
        .writepage      = ubifs_writepage,