ext4: Add statx support
authorDavid Howells <dhowells@redhat.com>
Fri, 31 Mar 2017 17:31:56 +0000 (18:31 +0100)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 3 Apr 2017 05:05:58 +0000 (01:05 -0400)
commit99652ea56a4186bc5bf8a3721c5353f41b35ebcb
treee03bdcba50a201bb822821364dd9bd1cd7405600
parent64bd72048a2ac07efed70debe606a1c6e5e03554
ext4: Add statx support

Return enhanced file attributes from the Ext4 filesystem.  This includes
the following:

 (1) The inode creation time (i_crtime) as stx_btime, setting STATX_BTIME.

 (2) Certain FS_xxx_FL flags are mapped to stx_attribute flags.

This requires that all ext4 inodes have a getattr call, not just some of
them, so to this end, split the ext4_getattr() function and only call part
of it where appropriate.

Example output:

[root@andromeda ~]# touch foo
[root@andromeda ~]# chattr +ai foo
[root@andromeda ~]# /tmp/test-statx foo
statx(foo) = 0
results=fff
  Size: 0               Blocks: 0          IO Block: 4096    regular file
Device: 08:12           Inode: 2101950     Links: 1
Access: (0644/-rw-r--r--)  Uid:     0   Gid:     0
Access: 2016-02-11 17:08:29.031795451+0000
Modify: 2016-02-11 17:08:29.031795451+0000
Change: 2016-02-11 17:11:11.987790114+0000
 Birth: 2016-02-11 17:08:29.031795451+0000
Attributes: 0000000000000030 (-------- -------- -------- -------- -------- -------- -------- --ai----)

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/ext4/ext4.h
fs/ext4/file.c
fs/ext4/inode.c
fs/ext4/namei.c
fs/ext4/symlink.c