*参照元 [#sdd2fb02]
#backlinks

*説明 [#c0db458d]
-パス: [[linux-4.4.1/include/linux/fs.h]]

-FIXME: これは何?
--説明


**参考 [#s578b7be]


*実装 [#t2b525b4]
 /*
  * Keep mostly read-only and often accessed (especially for
  * the RCU path lookup and 'stat' data) fields at the beginning
  * of the 'struct inode'
  */
 struct inode {
         umode_t                 i_mode;
-
--[[linux-4.4.1/umode_t]]

         unsigned short          i_opflags;
         kuid_t                  i_uid;
         kgid_t                  i_gid;
-
--[[linux-4.4.1/kuid_t]]
--[[linux-4.4.1/kgid_t]]

         unsigned int            i_flags;
 
 #ifdef CONFIG_FS_POSIX_ACL
-
--[[linux-4.4.1/CONFIG_FS_POSIX_ACL]]

         struct posix_acl        *i_acl;
         struct posix_acl        *i_default_acl;
-
--[[linux-4.4.1/posix_acl]]

 #endif
 
         const struct inode_operations   *i_op;
-
--[[linux-4.4.1/inode_operations]]

         struct super_block      *i_sb;
-
--[[linux-4.4.1/super_block]]

         struct address_space    *i_mapping;
 
-
--[[linux-4.4.1/address_space]]

 #ifdef CONFIG_SECURITY
-
--[[linux-4.4.1/CONFIG_SECURITY]]

         void                    *i_security;
 #endif
 
         /* Stat data, not accessed from path walking */
         unsigned long           i_ino;
         /*
          * Filesystems may only read i_nlink directly.  They shall use the
          * following functions for modification:
          *
          *    (set|clear|inc|drop)_nlink
          *    inode_(inc|dec)_link_count
          */
         union {
                 const unsigned int i_nlink;
                 unsigned int __i_nlink;
         };
         dev_t                   i_rdev;
         loff_t                  i_size;
-
--[[linux-4.4.1/dev_t]]
--[[linux-4.4.1/loff_t]]

         struct timespec         i_atime;
         struct timespec         i_mtime;
         struct timespec         i_ctime;
-
--[[linux-4.4.1/timespec]]

         spinlock_t              i_lock; /* i_blocks, i_bytes, maybe i_size */
-
--[[linux-4.4.1/spinlock_t]]

         unsigned short          i_bytes;
         unsigned int            i_blkbits;
         blkcnt_t                i_blocks;
 
-
--[[linux-4.4.1/blkcnt_t]]

 #ifdef __NEED_I_SIZE_ORDERED
-
--[[linux-4.4.1/__NEED_I_SIZE_ORDERED]]

         seqcount_t              i_size_seqcount;
-
--[[linux-4.4.1/seqcount_t]]

 #endif
 
         /* Misc */
         unsigned long           i_state;
         struct mutex            i_mutex;
 
-
--[[linux-4.4.1/i_mutex]]

         unsigned long           dirtied_when;   /* jiffies of first dirtying */
         unsigned long           dirtied_time_when;
 
         struct hlist_node       i_hash;
         struct list_head        i_io_list;      /* backing dev IO list */
-
--[[linux-4.4.1/hlist_node]]
--[[linux-4.4.1/list_head]]

 #ifdef CONFIG_CGROUP_WRITEBACK
-
--[[linux-4.4.1/CONFIG_CGROUP_WRITEBACK]]

         struct bdi_writeback    *i_wb;          /* the associated cgroup wb */
 
-
--[[linux-4.4.1/bdi_writeback]]

         /* foreign inode detection, see wbc_detach_inode() */
         int                     i_wb_frn_winner;
         u16                     i_wb_frn_avg_time;
         u16                     i_wb_frn_history;
 #endif
         struct list_head        i_lru;          /* inode LRU list */
         struct list_head        i_sb_list;
-
--[[linux-4.4.1/list_head]]

         union {
                 struct hlist_head       i_dentry;
                 struct rcu_head         i_rcu;
         };
-
--[[linux-4.4.1/rcu_head]]

         u64                     i_version;
         atomic_t                i_count;
         atomic_t                i_dio_count;
         atomic_t                i_writecount;
-
--[[linux-4.4.1/atomic_t]]

 #ifdef CONFIG_IMA
-
--[[linux-4.4.1/CONFIG_IMA]]

         atomic_t                i_readcount; /* struct files open RO */
 #endif
         const struct file_operations    *i_fop; /* former ->i_op->default_file_ops */
-
--[[linux-4.4.1/file_operations]]

         struct file_lock_context        *i_flctx;
-
--[[linux-4.4.1/file_lock_context]]

         struct address_space    i_data;
         struct list_head        i_devices;
         union {
                 struct pipe_inode_info  *i_pipe;
-
--[[linux-4.4.1/pipe_inode_info]]

                 struct block_device     *i_bdev;
-
--[[linux-4.4.1/block_device]]

                 struct cdev             *i_cdev;
-
--[[linux-4.4.1/cdev]]

                 char                    *i_link;
         };
 
         __u32                   i_generation;
 
 #ifdef CONFIG_FSNOTIFY
-
--[[linux-4.4.1/CONFIG_FSNOTIFY]]

         __u32                   i_fsnotify_mask; /* all events this inode cares about */
         struct hlist_head       i_fsnotify_marks;
 #endif
 
         void                    *i_private; /* fs or device private pointer */
 };


*コメント [#x51e3737]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS