diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2017-03-31 13:32:03 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2017-04-03 01:05:59 -0400 |
commit | 5f955f26f3d42d04aba65590a32eb70eedb7f37d (patch) | |
tree | 5be9e8ecead5908ad014ab59cf1be5c462de6f84 | |
parent | 99652ea56a4186bc5bf8a3721c5353f41b35ebcb (diff) |
xfs: report crtime and attribute flags to statx
statx has the ability to report inode creation times and inode flags, so
hook up di_crtime and di_flags to that functionality.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | fs/xfs/xfs_iops.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index 229cc6a6d8ef..ebfc13350f9a 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c | |||
@@ -516,6 +516,20 @@ xfs_vn_getattr( | |||
516 | stat->blocks = | 516 | stat->blocks = |
517 | XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks); | 517 | XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks); |
518 | 518 | ||
519 | if (ip->i_d.di_version == 3) { | ||
520 | if (request_mask & STATX_BTIME) { | ||
521 | stat->result_mask |= STATX_BTIME; | ||
522 | stat->btime.tv_sec = ip->i_d.di_crtime.t_sec; | ||
523 | stat->btime.tv_nsec = ip->i_d.di_crtime.t_nsec; | ||
524 | } | ||
525 | } | ||
526 | |||
527 | if (ip->i_d.di_flags & XFS_DIFLAG_IMMUTABLE) | ||
528 | stat->attributes |= STATX_ATTR_IMMUTABLE; | ||
529 | if (ip->i_d.di_flags & XFS_DIFLAG_APPEND) | ||
530 | stat->attributes |= STATX_ATTR_APPEND; | ||
531 | if (ip->i_d.di_flags & XFS_DIFLAG_NODUMP) | ||
532 | stat->attributes |= STATX_ATTR_NODUMP; | ||
519 | 533 | ||
520 | switch (inode->i_mode & S_IFMT) { | 534 | switch (inode->i_mode & S_IFMT) { |
521 | case S_IFBLK: | 535 | case S_IFBLK: |