Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
udf_i.h
Go to the documentation of this file.
1 #ifndef _UDF_I_H
2 #define _UDF_I_H
3 
4 /*
5  * The i_data_sem and i_mutex serve for protection of allocation information
6  * of a regular files and symlinks. This includes all extents belonging to
7  * the file/symlink, a fact whether data are in-inode or in external data
8  * blocks, preallocation, goal block information... When extents are read,
9  * i_mutex or i_data_sem must be held (for reading is enough in case of
10  * i_data_sem). When extents are changed, i_data_sem must be held for writing
11  * and also i_mutex must be held.
12  *
13  * For directories i_mutex is used for all the necessary protection.
14  */
15 
18  /* Physical address of inode */
27  unsigned i_alloc_type : 3;
28  unsigned i_efe : 1; /* extendedFileEntry */
29  unsigned i_use : 1; /* unallocSpaceEntry */
30  unsigned i_strat4096 : 1;
31  unsigned reserved : 26;
32  union {
33  struct short_ad *i_sad;
34  struct long_ad *i_lad;
36  } i_ext;
38  struct inode vfs_inode;
39 };
40 
41 static inline struct udf_inode_info *UDF_I(struct inode *inode)
42 {
43  return list_entry(inode, struct udf_inode_info, vfs_inode);
44 }
45 
46 #endif /* _UDF_I_H) */