虚拟文件系统知识 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;
};
原文地址:https://www.cnblogs.com/bspp1314/p/9298384.html