+
+
+
+static int yaffs_readlink(struct dentry *dentry, char *buffer, int buflen)
+{
+ unsigned char *alias;
+ int ret;
+
+ alias = yaffs_GetSymlinkAlias(yaffs_DentryToObject(dentry));
+
+ if(!alias)
+ return -ENOMEM;
+
+ ret = vfs_readlink(dentry, buffer, buflen, alias);
+ kfree(alias);
+ return ret;
+}
+
+static int yaffs_follow_link(struct dentry *dentry, struct nameidata *nd)
+{
+ unsigned char *alias;
+ int ret;
+ alias = yaffs_GetSymlinkAlias(yaffs_DentryToObject(dentry));
+
+ if(!alias)
+ return -ENOMEM;
+
+ ret = vfs_follow_link(nd,alias);
+ kfree(alias);
+ return ret;
+}
+
+