- befs_data_stream *data = &befs_ino->i_data.ds;
- befs_off_t linklen = data->size;
-
- befs_debug(sb, "Read long symlink");
-
- link = kmalloc(linklen, GFP_NOFS);
- if (link == NULL)
- return -ENOMEM;
-
- if (befs_read_lsymlink(sb, data, link, linklen) != linklen) {
- kfree(link);
- befs_error(sb, "Failed to read entire long symlink");
- return -EIO;
- }
-
- res = vfs_readlink(dentry, buffer, buflen, link);
-
- kfree(link);
- } else {
- link = befs_ino->i_data.symlink;
- res = vfs_readlink(dentry, buffer, buflen, link);