diff options
author | Artem B. Bityuckiy <dedekind@infradead.org> | 2005-03-01 05:50:52 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-05-23 06:48:15 -0400 |
commit | 32f1a95d505b99b1f01b6aeea36ec3f97245b357 (patch) | |
tree | 5da0e8b01362cf6b0cc79f11e5e9b3fd4ad169d6 /fs/jffs2/read.c | |
parent | 20a6c211903dce92a0db7f19c221cfa3f2cb4c32 (diff) |
[JFFS2] Add symlink caching support.
Signed-off-by: Artem B. Bityuckiy <dedekind@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'fs/jffs2/read.c')
-rw-r--r-- | fs/jffs2/read.c | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/fs/jffs2/read.c b/fs/jffs2/read.c index eb493dc06db7..c7f9068907cf 100644 --- a/fs/jffs2/read.c +++ b/fs/jffs2/read.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * | 7 | * |
8 | * For licensing information, see the file 'LICENCE' in this directory. | 8 | * For licensing information, see the file 'LICENCE' in this directory. |
9 | * | 9 | * |
10 | * $Id: read.c,v 1.38 2004/11/16 20:36:12 dwmw2 Exp $ | 10 | * $Id: read.c,v 1.39 2005/03/01 10:34:03 dedekind Exp $ |
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
@@ -214,33 +214,3 @@ int jffs2_read_inode_range(struct jffs2_sb_info *c, struct jffs2_inode_info *f, | |||
214 | return 0; | 214 | return 0; |
215 | } | 215 | } |
216 | 216 | ||
217 | /* Core function to read symlink target. */ | ||
218 | char *jffs2_getlink(struct jffs2_sb_info *c, struct jffs2_inode_info *f) | ||
219 | { | ||
220 | char *buf; | ||
221 | int ret; | ||
222 | |||
223 | down(&f->sem); | ||
224 | |||
225 | if (!f->metadata) { | ||
226 | printk(KERN_NOTICE "No metadata for symlink inode #%u\n", f->inocache->ino); | ||
227 | up(&f->sem); | ||
228 | return ERR_PTR(-EINVAL); | ||
229 | } | ||
230 | buf = kmalloc(f->metadata->size+1, GFP_USER); | ||
231 | if (!buf) { | ||
232 | up(&f->sem); | ||
233 | return ERR_PTR(-ENOMEM); | ||
234 | } | ||
235 | buf[f->metadata->size]=0; | ||
236 | |||
237 | ret = jffs2_read_dnode(c, f, f->metadata, buf, 0, f->metadata->size); | ||
238 | |||
239 | up(&f->sem); | ||
240 | |||
241 | if (ret) { | ||
242 | kfree(buf); | ||
243 | return ERR_PTR(ret); | ||
244 | } | ||
245 | return buf; | ||
246 | } | ||