虚拟文件系统知识 generic_fillattr

void generic_fillattr(struct inode *inode, struct kstat *stat)
{
  stat->dev = inode->i_sb->s_dev;
  stat->ino = inode->i_ino;
  stat->mode = inode->i_mode;
  stat->nlink = inode->i_nlink;
  stat->uid = inode->i_uid;
  stat->gid = inode->i_gid;
  stat->rdev = inode->i_rdev;
  stat->size = i_size_read(inode);
  stat->atime = inode->i_atime;
  stat->mtime = inode->i_mtime;
  stat->ctime = inode->i_ctime;
  stat->blksize = (1 << inode->i_blkbits);
  stat->blocks = inode->i_blocks;
}

 

struct kstat {
  u64   ino;
  dev_t   dev;
  umode_t   mode;
  unsigned int  nlink;
  kuid_t    uid;
  kgid_t    gid;
  dev_t   rdev;
  loff_t    size;
  struct timespec  atime;
  struct timespec mtime;
  struct timespec ctime;
  unsigned long blksize;
  unsigned long long  blocks;
};

 

posted @ 2018-07-12 10:57  bspp1314  阅读(201)  评论(0编辑  收藏  举报