diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /fs/jffs2/symlink.c |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'fs/jffs2/symlink.c')
-rw-r--r-- | fs/jffs2/symlink.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/fs/jffs2/symlink.c b/fs/jffs2/symlink.c new file mode 100644 index 000000000000..7b1820d13712 --- /dev/null +++ b/fs/jffs2/symlink.c | |||
@@ -0,0 +1,45 @@ | |||
1 | /* | ||
2 | * JFFS2 -- Journalling Flash File System, Version 2. | ||
3 | * | ||
4 | * Copyright (C) 2001, 2002 Red Hat, Inc. | ||
5 | * | ||
6 | * Created by David Woodhouse <dwmw2@infradead.org> | ||
7 | * | ||
8 | * For licensing information, see the file 'LICENCE' in this directory. | ||
9 | * | ||
10 | * $Id: symlink.c,v 1.14 2004/11/16 20:36:12 dwmw2 Exp $ | ||
11 | * | ||
12 | */ | ||
13 | |||
14 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/slab.h> | ||
17 | #include <linux/fs.h> | ||
18 | #include <linux/namei.h> | ||
19 | #include "nodelist.h" | ||
20 | |||
21 | static int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd); | ||
22 | static void jffs2_put_link(struct dentry *dentry, struct nameidata *nd); | ||
23 | |||
24 | struct inode_operations jffs2_symlink_inode_operations = | ||
25 | { | ||
26 | .readlink = generic_readlink, | ||
27 | .follow_link = jffs2_follow_link, | ||
28 | .put_link = jffs2_put_link, | ||
29 | .setattr = jffs2_setattr | ||
30 | }; | ||
31 | |||
32 | static int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd) | ||
33 | { | ||
34 | unsigned char *buf; | ||
35 | buf = jffs2_getlink(JFFS2_SB_INFO(dentry->d_inode->i_sb), JFFS2_INODE_INFO(dentry->d_inode)); | ||
36 | nd_set_link(nd, buf); | ||
37 | return 0; | ||
38 | } | ||
39 | |||
40 | static void jffs2_put_link(struct dentry *dentry, struct nameidata *nd) | ||
41 | { | ||
42 | char *s = nd_get_link(nd); | ||
43 | if (!IS_ERR(s)) | ||
44 | kfree(s); | ||
45 | } | ||