Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 1
#ifndef UMSDOS_FS_I_H
2
#define UMSDOS_FS_I_H
3
 
4
#ifndef _LINUX_TYPES_H
5
#include <linux/types.h>
6
#endif
7
 
8
#include <linux/msdos_fs_i.h>
9
#include <linux/pipe_fs_i.h>
10
 
11
/* #Specification: strategy / in memory inode
12
 * Here is the information specific to the inode of the UMSDOS file
13
 * system. This information is added to the end of the standard struct
14
 * inode. Each file system has its own extension to struct inode,
15
 * so do the umsdos file system.
16
 *
17
 * The strategy is to have the umsdos_inode_info as a superset of
18
 * the msdos_inode_info, since most of the time the job is done
19
 * by the msdos fs code.
20
 *
21
 * So we duplicate the msdos_inode_info, and add our own info at the
22
 * end.
23
 *
24
 * The offset in this EMD file of the entry: pos
25
 *
26
 * For directory, we have dir_locking_info to help synchronise
27
 * file creation and file lookup. See also msdos_fs_i.h for more
28
 * information about msdos_inode_info.
29
 *
30
 * Special file and fifo do have an inode which correspond to an
31
 * empty MSDOS file.
32
 *
33
 * symlink are processed mostly like regular file. The content is the
34
 * link.
35
 *
36
 * The UMSDOS specific extension is placed after the union.
37
 */
38
 
39
struct dir_locking_info {
40
        wait_queue_head_t p;
41
        short int looking;      /* How many process doing a lookup */
42
        short int creating;     /* Is there any creation going on here
43
                                 *  Only one at a time, although one
44
                                 *  may recursively lock, so it is a counter
45
                                 */
46
        long pid;               /* pid of the process owning the creation
47
                                 * lock */
48
};
49
 
50
struct umsdos_inode_info {
51
        struct msdos_inode_info msdos_info;
52
        struct dir_locking_info dir_info;
53
        int i_patched;          /* Inode has been patched */
54
        int i_is_hlink;         /* Resolved hardlink inode? */
55
        off_t pos;              /* Entry offset in the emd_owner file */
56
};
57
 
58
#endif