aboutsummaryrefslogtreecommitdiffstats
path: root/fs/kernfs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/kernfs')
-rw-r--r--fs/kernfs/symlink.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/kernfs/symlink.c b/fs/kernfs/symlink.c
index ffae8579045d..f9efdaeda7b0 100644
--- a/fs/kernfs/symlink.c
+++ b/fs/kernfs/symlink.c
@@ -116,19 +116,19 @@ static const char *kernfs_iop_get_link(struct dentry *dentry,
116 struct inode *inode, void **cookie) 116 struct inode *inode, void **cookie)
117{ 117{
118 int error = -ENOMEM; 118 int error = -ENOMEM;
119 unsigned long page; 119 char *page;
120 120
121 if (!dentry) 121 if (!dentry)
122 return ERR_PTR(-ECHILD); 122 return ERR_PTR(-ECHILD);
123 page = get_zeroed_page(GFP_KERNEL); 123 page = kzalloc(PAGE_SIZE, GFP_KERNEL);
124 if (!page) 124 if (!page)
125 return ERR_PTR(-ENOMEM); 125 return ERR_PTR(-ENOMEM);
126 error = kernfs_getlink(dentry, (char *)page); 126 error = kernfs_getlink(dentry, page);
127 if (unlikely(error < 0)) { 127 if (unlikely(error < 0)) {
128 free_page((unsigned long)page); 128 kfree(page);
129 return ERR_PTR(error); 129 return ERR_PTR(error);
130 } 130 }
131 return *cookie = (char *)page; 131 return *cookie = page;
132} 132}
133 133
134const struct inode_operations kernfs_symlink_iops = { 134const struct inode_operations kernfs_symlink_iops = {
@@ -138,7 +138,7 @@ const struct inode_operations kernfs_symlink_iops = {
138 .listxattr = kernfs_iop_listxattr, 138 .listxattr = kernfs_iop_listxattr,
139 .readlink = generic_readlink, 139 .readlink = generic_readlink,
140 .get_link = kernfs_iop_get_link, 140 .get_link = kernfs_iop_get_link,
141 .put_link = free_page_put_link, 141 .put_link = kfree_put_link,
142 .setattr = kernfs_iop_setattr, 142 .setattr = kernfs_iop_setattr,
143 .getattr = kernfs_iop_getattr, 143 .getattr = kernfs_iop_getattr,
144 .permission = kernfs_iop_permission, 144 .permission = kernfs_iop_permission,