diff options
Diffstat (limited to 'fs/configfs/symlink.c')
-rw-r--r-- | fs/configfs/symlink.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/configfs/symlink.c b/fs/configfs/symlink.c index ec5c8325b503..b91c01ebb688 100644 --- a/fs/configfs/symlink.c +++ b/fs/configfs/symlink.c | |||
@@ -279,11 +279,16 @@ static int configfs_getlink(struct dentry *dentry, char * path) | |||
279 | 279 | ||
280 | } | 280 | } |
281 | 281 | ||
282 | static const char *configfs_follow_link(struct dentry *dentry, void **cookie) | 282 | static const char *configfs_get_link(struct dentry *dentry, |
283 | struct inode *inode, void **cookie) | ||
283 | { | 284 | { |
284 | unsigned long page = get_zeroed_page(GFP_KERNEL); | 285 | unsigned long page; |
285 | int error; | 286 | int error; |
286 | 287 | ||
288 | if (!dentry) | ||
289 | return ERR_PTR(-ECHILD); | ||
290 | |||
291 | page = get_zeroed_page(GFP_KERNEL); | ||
287 | if (!page) | 292 | if (!page) |
288 | return ERR_PTR(-ENOMEM); | 293 | return ERR_PTR(-ENOMEM); |
289 | 294 | ||
@@ -297,7 +302,7 @@ static const char *configfs_follow_link(struct dentry *dentry, void **cookie) | |||
297 | } | 302 | } |
298 | 303 | ||
299 | const struct inode_operations configfs_symlink_inode_operations = { | 304 | const struct inode_operations configfs_symlink_inode_operations = { |
300 | .follow_link = configfs_follow_link, | 305 | .get_link = configfs_get_link, |
301 | .readlink = generic_readlink, | 306 | .readlink = generic_readlink, |
302 | .put_link = free_page_put_link, | 307 | .put_link = free_page_put_link, |
303 | .setattr = configfs_setattr, | 308 | .setattr = configfs_setattr, |