- Kai Germaschewski: ISDN update (including Makefiles)
[davej-history.git] / include / linux / umsdos_fs_i.h
blob0edfb1d541a47225de43423eb4cbe6414d6f843f
1 #ifndef UMSDOS_FS_I_H
2 #define UMSDOS_FS_I_H
4 #ifndef _LINUX_TYPES_H
5 #include <linux/types.h>
6 #endif
8 #include <linux/msdos_fs_i.h>
9 #include <linux/pipe_fs_i.h>
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.
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.
21 * So we duplicate the msdos_inode_info, and add our own info at the
22 * end.
24 * The offset in this EMD file of the entry: pos
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.
30 * Special file and fifo do have an inode which correspond to an
31 * empty MSDOS file.
33 * symlink are processed mostly like regular file. The content is the
34 * link.
36 * The UMSDOS specific extension is placed after the union.
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
46 long pid; /* pid of the process owning the creation
47 * lock */
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 */
58 #endif