The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/fs/udf/udf_i.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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 
   16 struct udf_inode_info {
   17         struct timespec         i_crtime;
   18         /* Physical address of inode */
   19         struct kernel_lb_addr           i_location;
   20         __u64                   i_unique;
   21         __u32                   i_lenEAttr;
   22         __u32                   i_lenAlloc;
   23         __u64                   i_lenExtents;
   24         __u32                   i_next_alloc_block;
   25         __u32                   i_next_alloc_goal;
   26         __u32                   i_checkpoint;
   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;
   35                 __u8            *i_data;
   36         } i_ext;
   37         struct rw_semaphore     i_data_sem;
   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) */

Cache object: 69459c2b5475166ebee2e445dff188fe


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.