#ifndef _MSDOS_FS_I
|
#ifndef _MSDOS_FS_I
|
#define _MSDOS_FS_I
|
#define _MSDOS_FS_I
|
|
|
#ifndef _LINUX_PIPE_FS_I_H
|
#ifndef _LINUX_PIPE_FS_I_H
|
#include <linux/pipe_fs_i.h>
|
#include <linux/pipe_fs_i.h>
|
#endif
|
#endif
|
|
|
/*
|
/*
|
* MS-DOS file system inode data in memory
|
* MS-DOS file system inode data in memory
|
*/
|
*/
|
|
|
struct msdos_inode_info {
|
struct msdos_inode_info {
|
/*
|
/*
|
UMSDOS manage special file and fifo as normal empty
|
UMSDOS manage special file and fifo as normal empty
|
msdos file. fifo inode processing conflict with msdos
|
msdos file. fifo inode processing conflict with msdos
|
processing. So I insert the pipe_inode_info so the
|
processing. So I insert the pipe_inode_info so the
|
information does not overlap. This increases the size of
|
information does not overlap. This increases the size of
|
the msdos_inode_info, but the clear winner here is
|
the msdos_inode_info, but the clear winner here is
|
the ext2_inode_info. So it does not change anything to
|
the ext2_inode_info. So it does not change anything to
|
the total size of a struct inode.
|
the total size of a struct inode.
|
|
|
I have not put it conditional. With the advent of loadable
|
I have not put it conditional. With the advent of loadable
|
file system drivers, it would be very easy to compile
|
file system drivers, it would be very easy to compile
|
a MsDOS FS driver unaware of UMSDOS and then later to
|
a MsDOS FS driver unaware of UMSDOS and then later to
|
load a (then incompatible) UMSDOS FS driver.
|
load a (then incompatible) UMSDOS FS driver.
|
*/
|
*/
|
struct pipe_inode_info reserved;
|
struct pipe_inode_info reserved;
|
int i_start; /* first cluster or 0 */
|
int i_start; /* first cluster or 0 */
|
int i_logstart; /* logical first cluster */
|
int i_logstart; /* logical first cluster */
|
int i_attrs; /* unused attribute bits */
|
int i_attrs; /* unused attribute bits */
|
int i_busy; /* file is either deleted but still open, or
|
int i_busy; /* file is either deleted but still open, or
|
inconsistent (mkdir) */
|
inconsistent (mkdir) */
|
struct inode *i_depend; /* pointer to inode that depends on the
|
struct inode *i_depend; /* pointer to inode that depends on the
|
current inode */
|
current inode */
|
struct inode *i_old; /* pointer to the old inode this inode
|
struct inode *i_old; /* pointer to the old inode this inode
|
depends on */
|
depends on */
|
struct inode *i_linked; /* pointer to inode linked to the current one,
|
struct inode *i_linked; /* pointer to inode linked to the current one,
|
happens when an open file is moved */
|
happens when an open file is moved */
|
struct inode *i_oldlink;/* pointer to open inode that references
|
struct inode *i_oldlink;/* pointer to open inode that references
|
the same file */
|
the same file */
|
int i_binary; /* file contains non-text data */
|
int i_binary; /* file contains non-text data */
|
};
|
};
|
|
|
#endif
|
#endif
|
|
|