common/rc: Add extra check for xfs_io -c "chattr" on XFS
authorXiao Yang <yangx.jy@cn.fujitsu.com>
Mon, 14 Sep 2020 05:14:00 +0000 (13:14 +0800)
committerEryu Guan <guaneryu@gmail.com>
Sun, 20 Sep 2020 15:56:21 +0000 (23:56 +0800)
commit4b183391fd5cc7f1aa4c9f9178844f05e32ede67
treed56354d1560c2b5c0a373e164fa958eed0e80458
parent2ea9f4d477f4b6b4591b5a7a7624c4ecf6c37068
common/rc: Add extra check for xfs_io -c "chattr" on XFS

On XFS, ioctl(FSSETXATTR)(called by xfs_io -c "chattr") maskes off unsupported
or invalid flags silently.  For example,
1) With kernel v4.4 which doesn't support dax flag, try to set dax flag on a
file by the lastest xfs_io -c "chattr" command:
--------------------------------------------
0
----------------X testfile
--------------------------------------------
2) Realtime inheritance flag is only valid for a directory and try to set
realtime inheritance flag on a file:
--------------------------------------------
0
----------------X testfile
--------------------------------------------

In this case, we need to check these flags by extra ioctl(FSGETXATTR)(called
by xfs_io -c "lsattr").

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/rc