[Yaffs] [PATCH] follow_link prototype change in 2.6.14

Andre Renaud andre at bluewatersys.com
Mon Nov 14 02:23:32 GMT 2005


follow_link in inode_operations now has the following prototype
        void * (*follow_link) (struct dentry *, struct nameidata *);

Attached is a patch to fix this up in yaffs_fs.c

-- 
Bluewater Systems Ltd - ARM Technology Solutions Centre

       Andre Renaud                             Bluewater Systems Ltd
Phone: +64 3 3779127 (Aus 1 800 148 751)        Level 17, 119 Armagh St
Fax:   +64 3 3779135                            PO Box 13889
Email: arenaud at bluewatersys.com                 Christchurch
Web:   http://www.bluewatersys.com              New Zealand
-------------- next part --------------
--- /home/andre/snapper//yaffs2/yaffs_fs.c	2005-10-28 11:24:04.000000000 +1300
+++ yaffs_fs.c	2005-11-14 14:28:42.000000000 +1300
@@ -152,7 +152,11 @@
 
 static int yaffs_readlink(struct dentry *dentry, char __user * buffer,
 			  int buflen);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+static void *yaffs_follow_link(struct dentry *dentry, struct nameidata *nd);
+#else
 static int yaffs_follow_link(struct dentry *dentry, struct nameidata *nd);
+#endif
 
 static struct address_space_operations yaffs_file_address_operations = {
 	.readpage = yaffs_readpage,
@@ -243,7 +247,11 @@
 	return ret;
 }
 
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+static void *yaffs_follow_link(struct dentry *dentry, struct nameidata *nd)
+#else
 static int yaffs_follow_link(struct dentry *dentry, struct nameidata *nd)
+#endif
 {
 	unsigned char *alias;
 	int ret;
@@ -256,11 +264,19 @@
 	yaffs_GrossUnlock(dev);
 
 	if (!alias)
-		return -ENOMEM;
+        {
+		ret = -ENOMEM;
+		goto out;
+        }
 
 	ret = vfs_follow_link(nd, alias);
 	kfree(alias);
+out:
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+	return ERR_PTR (ret);
+#else
 	return ret;
+#endif
 }
 
 struct inode *yaffs_get_inode(struct super_block *sb, int mode, int dev,


More information about the yaffs mailing list