diff options
author | Oliver Schinagl <oliver@schinagl.nl> | 2011-02-26 14:57:47 (GMT) |
---|---|---|
committer | Oliver Schinagl <oliver@schinagl.nl> | 2011-02-26 14:57:47 (GMT) |
commit | faadb245e8e1d5c4245dbdacc201e85b47c0c1fb (patch) | |
tree | 725f1ac685590a82aa182776c0af40e6243cb8e6 /linux-2.4.x/fs/jffs2/symlink-v24.c | |
parent | edb45850f53478c7779484105c30f8df0a3a3782 (diff) | |
download | openipcam-faadb245e8e1d5c4245dbdacc201e85b47c0c1fb.zip openipcam-faadb245e8e1d5c4245dbdacc201e85b47c0c1fb.tar.gz openipcam-faadb245e8e1d5c4245dbdacc201e85b47c0c1fb.tar.bz2 |
Applied mtd patches and updated lib/Config.lib to 2.6.24 +mtd
Diffstat (limited to 'linux-2.4.x/fs/jffs2/symlink-v24.c')
-rw-r--r-- | linux-2.4.x/fs/jffs2/symlink-v24.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/linux-2.4.x/fs/jffs2/symlink-v24.c b/linux-2.4.x/fs/jffs2/symlink-v24.c new file mode 100644 index 0000000..0643f10 --- /dev/null +++ b/linux-2.4.x/fs/jffs2/symlink-v24.c @@ -0,0 +1,52 @@ +/* + * JFFS2 -- Journalling Flash File System, Version 2. + * + * Copyright (C) 2001, 2002 Red Hat, Inc. + * + * Created by David Woodhouse <dwmw2@infradead.org> + * + * For licensing information, see the file 'LICENCE' in this directory. + * + * $Id: symlink-v24.c,v 1.19 2005/11/07 11:14:42 gleixner Exp $ + * + */ + + +#include <linux/kernel.h> +#include <linux/slab.h> +#include <linux/fs.h> +#include "nodelist.h" + +int jffs2_readlink(struct dentry *dentry, char *buffer, int buflen); +int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd); + +struct inode_operations jffs2_symlink_inode_operations = +{ + .readlink = jffs2_readlink, + .follow_link = jffs2_follow_link, + .setattr = jffs2_setattr +}; + +int jffs2_readlink(struct dentry *dentry, char *buffer, int buflen) +{ + struct jffs2_inode_info *f = JFFS2_INODE_INFO(dentry->d_inode); + + if (!f->target) { + printk(KERN_ERR "jffs2_readlink(): can't find symlink taerget\n"); + return -EIO; + } + + return vfs_readlink(dentry, buffer, buflen, (char *)f->target); +} + +int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd) +{ + struct jffs2_inode_info *f = JFFS2_INODE_INFO(dentry->d_inode); + + if (!f->target) { + printk(KERN_ERR "jffs2_follow_link(): can't find symlink taerget\n"); + return -EIO; + } + + return vfs_follow_link(nd, (char *)f->target); +} |