OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [fs/] [coda/] [symlink.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 * Symlink inode operations for Coda filesystem
3
 * Original version: (C) 1996 P. Braam and M. Callahan
4
 * Rewritten for Linux 2.1. (C) 1997 Carnegie Mellon University
5
 *
6
 * Carnegie Mellon encourages users to contribute improvements to
7
 * the Coda project. Contact Peter Braam (coda@cs.cmu.edu).
8
 */
9
 
10
#include <linux/types.h>
11
#include <linux/kernel.h>
12
#include <linux/sched.h>
13
#include <linux/fs.h>
14
#include <linux/stat.h>
15
#include <linux/errno.h>
16
#include <linux/locks.h>
17
#include <linux/smp_lock.h>
18
 
19
#include <linux/coda.h>
20
#include <linux/coda_linux.h>
21
#include <linux/coda_psdev.h>
22
#include <linux/coda_fs_i.h>
23
#include <linux/coda_proc.h>
24
 
25
static int coda_symlink_filler(struct file *file, struct page *page)
26
{
27
        struct inode *inode = page->mapping->host;
28
        int error;
29
        struct coda_inode_info *cii;
30
        unsigned int len = PAGE_SIZE;
31
        char *p = kmap(page);
32
 
33
        lock_kernel();
34
        cii = ITOC(inode);
35
        coda_vfs_stat.follow_link++;
36
 
37
        error = venus_readlink(inode->i_sb, &cii->c_fid, p, &len);
38
        unlock_kernel();
39
        if (error)
40
                goto fail;
41
        SetPageUptodate(page);
42
        kunmap(page);
43
        UnlockPage(page);
44
        return 0;
45
 
46
fail:
47
        SetPageError(page);
48
        kunmap(page);
49
        UnlockPage(page);
50
        return error;
51
}
52
 
53
struct address_space_operations coda_symlink_aops = {
54
        readpage:       coda_symlink_filler
55
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.