As what we done in commit 6b2553918d8b ("replace ->follow_link()
with new method that could stay in RCU mode").

Signed-off-by: Kevin Hao <kexin....@windriver.com>
---
 fs/yaffs2/yaffs_vfs.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/fs/yaffs2/yaffs_vfs.c b/fs/yaffs2/yaffs_vfs.c
index cd387d7abfa2..b57d612808de 100644
--- a/fs/yaffs2/yaffs_vfs.c
+++ b/fs/yaffs2/yaffs_vfs.c
@@ -1059,7 +1059,8 @@ static int yaffs_readlink(struct dentry *dentry, char 
__user * buffer,
 }
 
 #if (YAFFS_NEW_FOLLOW_LINK == 1)
-static const char *yaffs_follow_link(struct dentry *dentry, void **cookie)
+static const char *yaffs_get_link(struct dentry *dentry, struct inode *inode,
+                                 void **cookie)
 {
        void *ret;
 #else
@@ -1069,8 +1070,12 @@ static int yaffs_follow_link(struct dentry *dentry, 
struct nameidata *nd)
 #endif
        unsigned char *alias;
        int ret_int = 0;
-       struct yaffs_dev *dev = yaffs_dentry_to_obj(dentry)->my_dev;
+       struct yaffs_dev *dev;
+
+       if (!dentry)
+               return ERR_PTR(-ECHILD);
 
+       dev = yaffs_dentry_to_obj(dentry)->my_dev;
        yaffs_gross_lock(dev);
 
        alias = yaffs_get_symlink_alias(yaffs_dentry_to_obj(dentry));
@@ -1121,9 +1126,11 @@ void yaffs_put_link(struct inode *inode, void *cookie)
 
 static const struct inode_operations yaffs_symlink_inode_operations = {
        .readlink = yaffs_readlink,
-       .follow_link = yaffs_follow_link,
 #if (YAFFS_NEW_FOLLOW_LINK == 1)
+       .get_link = yaffs_get_link,
        .put_link = yaffs_put_link,
+#else
+       .follow_link = yaffs_follow_link,
 #endif
        .setattr = yaffs_setattr,
        .setxattr = yaffs_setxattr,
-- 
2.9.3

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to