mtd/fs/jffs2 symlink.c,1.12,1.13
David Woodhouse
dwmw2 at infradead.org
Tue Jul 13 04:59:07 EDT 2004
- Previous message: mtd/fs/jffs2 os-linux.h, 1.45, 1.46 wbuf.c, 1.69, 1.70 write.c, 1.84,
1.85 writev.c, 1.4, 1.5
- Next message: mtd/fs/jffs2 symlink-v24.c,NONE,1.13
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/mtd/fs/jffs2
In directory phoenix.infradead.org:/tmp/cvs-serv28680
Modified Files:
symlink.c
Log Message:
new 2.6 symlink support
Index: symlink.c
===================================================================
RCS file: /home/cvs/mtd/fs/jffs2/symlink.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- symlink.c 4 Oct 2003 08:33:07 -0000 1.12
+++ symlink.c 13 Jul 2004 08:59:04 -0000 1.13
@@ -15,43 +15,31 @@
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/fs.h>
+#include <linux/namei.h>
#include "nodelist.h"
-int jffs2_readlink(struct dentry *dentry, char *buffer, int buflen);
-int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd);
+static int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd);
+static void jffs2_put_link(struct dentry *dentry, struct nameidata *nd);
struct inode_operations jffs2_symlink_inode_operations =
{
- .readlink = jffs2_readlink,
+ .readlink = generic_readlink,
.follow_link = jffs2_follow_link,
+ .put_link = jffs2_put_link,
.setattr = jffs2_setattr
};
-int jffs2_readlink(struct dentry *dentry, char *buffer, int buflen)
-{
- unsigned char *kbuf;
- int ret;
-
- kbuf = jffs2_getlink(JFFS2_SB_INFO(dentry->d_inode->i_sb), JFFS2_INODE_INFO(dentry->d_inode));
- if (IS_ERR(kbuf))
- return PTR_ERR(kbuf);
-
- ret = vfs_readlink(dentry, buffer, buflen, kbuf);
- kfree(kbuf);
- return ret;
-}
-
-int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd)
+static int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd)
{
unsigned char *buf;
- int ret;
-
buf = jffs2_getlink(JFFS2_SB_INFO(dentry->d_inode->i_sb), JFFS2_INODE_INFO(dentry->d_inode));
+ nd_set_link(nd, buf);
+ return 0;
+}
- if (IS_ERR(buf))
- return PTR_ERR(buf);
-
- ret = vfs_follow_link(nd, buf);
- kfree(buf);
- return ret;
+static void jffs2_put_link(struct dentry *dentry, struct nameidata *nd)
+{
+ char *s = nd_get_link(nd);
+ if (!IS_ERR(s))
+ kfree(s);
}
- Previous message: mtd/fs/jffs2 os-linux.h, 1.45, 1.46 wbuf.c, 1.69, 1.70 write.c, 1.84,
1.85 writev.c, 1.4, 1.5
- Next message: mtd/fs/jffs2 symlink-v24.c,NONE,1.13
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the linux-mtd-cvs
mailing list