|
@@ -516,6 +516,20 @@ xfs_vn_getattr(
|
|
|
stat->blocks =
|
|
|
XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks);
|
|
|
|
|
|
+ if (ip->i_d.di_version == 3) {
|
|
|
+ if (request_mask & STATX_BTIME) {
|
|
|
+ stat->result_mask |= STATX_BTIME;
|
|
|
+ stat->btime.tv_sec = ip->i_d.di_crtime.t_sec;
|
|
|
+ stat->btime.tv_nsec = ip->i_d.di_crtime.t_nsec;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ip->i_d.di_flags & XFS_DIFLAG_IMMUTABLE)
|
|
|
+ stat->attributes |= STATX_ATTR_IMMUTABLE;
|
|
|
+ if (ip->i_d.di_flags & XFS_DIFLAG_APPEND)
|
|
|
+ stat->attributes |= STATX_ATTR_APPEND;
|
|
|
+ if (ip->i_d.di_flags & XFS_DIFLAG_NODUMP)
|
|
|
+ stat->attributes |= STATX_ATTR_NODUMP;
|
|
|
|
|
|
switch (inode->i_mode & S_IFMT) {
|
|
|
case S_IFBLK:
|