aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2016-01-04 00:44:15 -0500
committerDave Chinner <david@fromorbit.com>2016-01-04 00:44:15 -0500
commite7b89481017b2111d188afd70bbd0da9e9b94cc9 (patch)
tree453a3b6c8e825eb7f340833c2711535fa5ddff30 /fs/xfs
parent334e580a6f97e2e84d1c19a8679603956acaa622 (diff)
xfs: use FS_XFLAG definitions directly
Now that the ioctls have been hoisted up to the VFS level, use the VFs definitions directly and remove the XFS specific definitions completely. Userspace is going to have to handle the change of this interface separately, so removing the definitions from xfs_fs.h is not an issue here at all. Signed-off-by: Dave Chinner <dchinner@redhat.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/libxfs/xfs_format.h2
-rw-r--r--fs/xfs/libxfs/xfs_fs.h19
-rw-r--r--fs/xfs/xfs_inode.c32
-rw-r--r--fs/xfs/xfs_ioctl.c74
4 files changed, 53 insertions, 74 deletions
diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
index 8774498ce0ff..f28eeabb9454 100644
--- a/fs/xfs/libxfs/xfs_format.h
+++ b/fs/xfs/libxfs/xfs_format.h
@@ -984,8 +984,6 @@ static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev)
984 984
985/* 985/*
986 * Values for di_flags 986 * Values for di_flags
987 * There should be a one-to-one correspondence between these flags and the
988 * XFS_XFLAG_s.
989 */ 987 */
990#define XFS_DIFLAG_REALTIME_BIT 0 /* file's blocks come from rt area */ 988#define XFS_DIFLAG_REALTIME_BIT 0 /* file's blocks come from rt area */
991#define XFS_DIFLAG_PREALLOC_BIT 1 /* file space has been preallocated */ 989#define XFS_DIFLAG_PREALLOC_BIT 1 /* file space has been preallocated */
diff --git a/fs/xfs/libxfs/xfs_fs.h b/fs/xfs/libxfs/xfs_fs.h
index dd29d0a670bd..fffe3d01bd9f 100644
--- a/fs/xfs/libxfs/xfs_fs.h
+++ b/fs/xfs/libxfs/xfs_fs.h
@@ -36,25 +36,6 @@ struct dioattr {
36#endif 36#endif
37 37
38/* 38/*
39 * Flags for the bs_xflags/fsx_xflags field in FS_IOC_FS[GS]ETXATTR[A]
40 */
41#define XFS_XFLAG_REALTIME FS_XFLAG_REALTIME
42#define XFS_XFLAG_PREALLOC FS_XFLAG_PREALLOC
43#define XFS_XFLAG_IMMUTABLE FS_XFLAG_IMMUTABLE
44#define XFS_XFLAG_APPEND FS_XFLAG_APPEND
45#define XFS_XFLAG_SYNC FS_XFLAG_SYNC
46#define XFS_XFLAG_NOATIME FS_XFLAG_NOATIME
47#define XFS_XFLAG_NODUMP FS_XFLAG_NODUMP
48#define XFS_XFLAG_RTINHERIT FS_XFLAG_RTINHERIT
49#define XFS_XFLAG_PROJINHERIT FS_XFLAG_PROJINHERIT
50#define XFS_XFLAG_NOSYMLINKS FS_XFLAG_NOSYMLINKS
51#define XFS_XFLAG_EXTSIZE FS_XFLAG_EXTSIZE
52#define XFS_XFLAG_EXTSZINHERIT FS_XFLAG_EXTSZINHERIT
53#define XFS_XFLAG_NODEFRAG FS_XFLAG_NODEFRAG
54#define XFS_XFLAG_FILESTREAM FS_XFLAG_FILESTREAM
55#define XFS_XFLAG_HASATTR FS_XFLAG_HASATTR
56
57/*
58 * Structure for XFS_IOC_GETBMAP. 39 * Structure for XFS_IOC_GETBMAP.
59 * On input, fill in bmv_offset and bmv_length of the first structure 40 * On input, fill in bmv_offset and bmv_length of the first structure
60 * to indicate the area of interest in the file, and bmv_entries with 41 * to indicate the area of interest in the file, and bmv_entries with
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 8ee393996b7d..ca9ca5a3c535 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -616,33 +616,33 @@ _xfs_dic2xflags(
616 616
617 if (di_flags & XFS_DIFLAG_ANY) { 617 if (di_flags & XFS_DIFLAG_ANY) {
618 if (di_flags & XFS_DIFLAG_REALTIME) 618 if (di_flags & XFS_DIFLAG_REALTIME)
619 flags |= XFS_XFLAG_REALTIME; 619 flags |= FS_XFLAG_REALTIME;
620 if (di_flags & XFS_DIFLAG_PREALLOC) 620 if (di_flags & XFS_DIFLAG_PREALLOC)
621 flags |= XFS_XFLAG_PREALLOC; 621 flags |= FS_XFLAG_PREALLOC;
622 if (di_flags & XFS_DIFLAG_IMMUTABLE) 622 if (di_flags & XFS_DIFLAG_IMMUTABLE)
623 flags |= XFS_XFLAG_IMMUTABLE; 623 flags |= FS_XFLAG_IMMUTABLE;
624 if (di_flags & XFS_DIFLAG_APPEND) 624 if (di_flags & XFS_DIFLAG_APPEND)
625 flags |= XFS_XFLAG_APPEND; 625 flags |= FS_XFLAG_APPEND;
626 if (di_flags & XFS_DIFLAG_SYNC) 626 if (di_flags & XFS_DIFLAG_SYNC)
627 flags |= XFS_XFLAG_SYNC; 627 flags |= FS_XFLAG_SYNC;
628 if (di_flags & XFS_DIFLAG_NOATIME) 628 if (di_flags & XFS_DIFLAG_NOATIME)
629 flags |= XFS_XFLAG_NOATIME; 629 flags |= FS_XFLAG_NOATIME;
630 if (di_flags & XFS_DIFLAG_NODUMP) 630 if (di_flags & XFS_DIFLAG_NODUMP)
631 flags |= XFS_XFLAG_NODUMP; 631 flags |= FS_XFLAG_NODUMP;
632 if (di_flags & XFS_DIFLAG_RTINHERIT) 632 if (di_flags & XFS_DIFLAG_RTINHERIT)
633 flags |= XFS_XFLAG_RTINHERIT; 633 flags |= FS_XFLAG_RTINHERIT;
634 if (di_flags & XFS_DIFLAG_PROJINHERIT) 634 if (di_flags & XFS_DIFLAG_PROJINHERIT)
635 flags |= XFS_XFLAG_PROJINHERIT; 635 flags |= FS_XFLAG_PROJINHERIT;
636 if (di_flags & XFS_DIFLAG_NOSYMLINKS) 636 if (di_flags & XFS_DIFLAG_NOSYMLINKS)
637 flags |= XFS_XFLAG_NOSYMLINKS; 637 flags |= FS_XFLAG_NOSYMLINKS;
638 if (di_flags & XFS_DIFLAG_EXTSIZE) 638 if (di_flags & XFS_DIFLAG_EXTSIZE)
639 flags |= XFS_XFLAG_EXTSIZE; 639 flags |= FS_XFLAG_EXTSIZE;
640 if (di_flags & XFS_DIFLAG_EXTSZINHERIT) 640 if (di_flags & XFS_DIFLAG_EXTSZINHERIT)
641 flags |= XFS_XFLAG_EXTSZINHERIT; 641 flags |= FS_XFLAG_EXTSZINHERIT;
642 if (di_flags & XFS_DIFLAG_NODEFRAG) 642 if (di_flags & XFS_DIFLAG_NODEFRAG)
643 flags |= XFS_XFLAG_NODEFRAG; 643 flags |= FS_XFLAG_NODEFRAG;
644 if (di_flags & XFS_DIFLAG_FILESTREAM) 644 if (di_flags & XFS_DIFLAG_FILESTREAM)
645 flags |= XFS_XFLAG_FILESTREAM; 645 flags |= FS_XFLAG_FILESTREAM;
646 } 646 }
647 647
648 return flags; 648 return flags;
@@ -655,7 +655,7 @@ xfs_ip2xflags(
655 xfs_icdinode_t *dic = &ip->i_d; 655 xfs_icdinode_t *dic = &ip->i_d;
656 656
657 return _xfs_dic2xflags(dic->di_flags) | 657 return _xfs_dic2xflags(dic->di_flags) |
658 (XFS_IFORK_Q(ip) ? XFS_XFLAG_HASATTR : 0); 658 (XFS_IFORK_Q(ip) ? FS_XFLAG_HASATTR : 0);
659} 659}
660 660
661uint 661uint
@@ -663,7 +663,7 @@ xfs_dic2xflags(
663 xfs_dinode_t *dip) 663 xfs_dinode_t *dip)
664{ 664{
665 return _xfs_dic2xflags(be16_to_cpu(dip->di_flags)) | 665 return _xfs_dic2xflags(be16_to_cpu(dip->di_flags)) |
666 (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0); 666 (XFS_DFORK_Q(dip) ? FS_XFLAG_HASATTR : 0);
667} 667}
668 668
669/* 669/*
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
index d42738deec6d..94b35eb32cb6 100644
--- a/fs/xfs/xfs_ioctl.c
+++ b/fs/xfs/xfs_ioctl.c
@@ -859,25 +859,25 @@ xfs_merge_ioc_xflags(
859 unsigned int xflags = start; 859 unsigned int xflags = start;
860 860
861 if (flags & FS_IMMUTABLE_FL) 861 if (flags & FS_IMMUTABLE_FL)
862 xflags |= XFS_XFLAG_IMMUTABLE; 862 xflags |= FS_XFLAG_IMMUTABLE;
863 else 863 else
864 xflags &= ~XFS_XFLAG_IMMUTABLE; 864 xflags &= ~FS_XFLAG_IMMUTABLE;
865 if (flags & FS_APPEND_FL) 865 if (flags & FS_APPEND_FL)
866 xflags |= XFS_XFLAG_APPEND; 866 xflags |= FS_XFLAG_APPEND;
867 else 867 else
868 xflags &= ~XFS_XFLAG_APPEND; 868 xflags &= ~FS_XFLAG_APPEND;
869 if (flags & FS_SYNC_FL) 869 if (flags & FS_SYNC_FL)
870 xflags |= XFS_XFLAG_SYNC; 870 xflags |= FS_XFLAG_SYNC;
871 else 871 else
872 xflags &= ~XFS_XFLAG_SYNC; 872 xflags &= ~FS_XFLAG_SYNC;
873 if (flags & FS_NOATIME_FL) 873 if (flags & FS_NOATIME_FL)
874 xflags |= XFS_XFLAG_NOATIME; 874 xflags |= FS_XFLAG_NOATIME;
875 else 875 else
876 xflags &= ~XFS_XFLAG_NOATIME; 876 xflags &= ~FS_XFLAG_NOATIME;
877 if (flags & FS_NODUMP_FL) 877 if (flags & FS_NODUMP_FL)
878 xflags |= XFS_XFLAG_NODUMP; 878 xflags |= FS_XFLAG_NODUMP;
879 else 879 else
880 xflags &= ~XFS_XFLAG_NODUMP; 880 xflags &= ~FS_XFLAG_NODUMP;
881 881
882 return xflags; 882 return xflags;
883} 883}
@@ -948,33 +948,33 @@ xfs_set_diflags(
948 948
949 /* can't set PREALLOC this way, just preserve it */ 949 /* can't set PREALLOC this way, just preserve it */
950 di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC); 950 di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC);
951 if (xflags & XFS_XFLAG_IMMUTABLE) 951 if (xflags & FS_XFLAG_IMMUTABLE)
952 di_flags |= XFS_DIFLAG_IMMUTABLE; 952 di_flags |= XFS_DIFLAG_IMMUTABLE;
953 if (xflags & XFS_XFLAG_APPEND) 953 if (xflags & FS_XFLAG_APPEND)
954 di_flags |= XFS_DIFLAG_APPEND; 954 di_flags |= XFS_DIFLAG_APPEND;
955 if (xflags & XFS_XFLAG_SYNC) 955 if (xflags & FS_XFLAG_SYNC)
956 di_flags |= XFS_DIFLAG_SYNC; 956 di_flags |= XFS_DIFLAG_SYNC;
957 if (xflags & XFS_XFLAG_NOATIME) 957 if (xflags & FS_XFLAG_NOATIME)
958 di_flags |= XFS_DIFLAG_NOATIME; 958 di_flags |= XFS_DIFLAG_NOATIME;
959 if (xflags & XFS_XFLAG_NODUMP) 959 if (xflags & FS_XFLAG_NODUMP)
960 di_flags |= XFS_DIFLAG_NODUMP; 960 di_flags |= XFS_DIFLAG_NODUMP;
961 if (xflags & XFS_XFLAG_NODEFRAG) 961 if (xflags & FS_XFLAG_NODEFRAG)
962 di_flags |= XFS_DIFLAG_NODEFRAG; 962 di_flags |= XFS_DIFLAG_NODEFRAG;
963 if (xflags & XFS_XFLAG_FILESTREAM) 963 if (xflags & FS_XFLAG_FILESTREAM)
964 di_flags |= XFS_DIFLAG_FILESTREAM; 964 di_flags |= XFS_DIFLAG_FILESTREAM;
965 if (S_ISDIR(ip->i_d.di_mode)) { 965 if (S_ISDIR(ip->i_d.di_mode)) {
966 if (xflags & XFS_XFLAG_RTINHERIT) 966 if (xflags & FS_XFLAG_RTINHERIT)
967 di_flags |= XFS_DIFLAG_RTINHERIT; 967 di_flags |= XFS_DIFLAG_RTINHERIT;
968 if (xflags & XFS_XFLAG_NOSYMLINKS) 968 if (xflags & FS_XFLAG_NOSYMLINKS)
969 di_flags |= XFS_DIFLAG_NOSYMLINKS; 969 di_flags |= XFS_DIFLAG_NOSYMLINKS;
970 if (xflags & XFS_XFLAG_EXTSZINHERIT) 970 if (xflags & FS_XFLAG_EXTSZINHERIT)
971 di_flags |= XFS_DIFLAG_EXTSZINHERIT; 971 di_flags |= XFS_DIFLAG_EXTSZINHERIT;
972 if (xflags & XFS_XFLAG_PROJINHERIT) 972 if (xflags & FS_XFLAG_PROJINHERIT)
973 di_flags |= XFS_DIFLAG_PROJINHERIT; 973 di_flags |= XFS_DIFLAG_PROJINHERIT;
974 } else if (S_ISREG(ip->i_d.di_mode)) { 974 } else if (S_ISREG(ip->i_d.di_mode)) {
975 if (xflags & XFS_XFLAG_REALTIME) 975 if (xflags & FS_XFLAG_REALTIME)
976 di_flags |= XFS_DIFLAG_REALTIME; 976 di_flags |= XFS_DIFLAG_REALTIME;
977 if (xflags & XFS_XFLAG_EXTSIZE) 977 if (xflags & FS_XFLAG_EXTSIZE)
978 di_flags |= XFS_DIFLAG_EXTSIZE; 978 di_flags |= XFS_DIFLAG_EXTSIZE;
979 } 979 }
980 980
@@ -988,19 +988,19 @@ xfs_diflags_to_linux(
988 struct inode *inode = VFS_I(ip); 988 struct inode *inode = VFS_I(ip);
989 unsigned int xflags = xfs_ip2xflags(ip); 989 unsigned int xflags = xfs_ip2xflags(ip);
990 990
991 if (xflags & XFS_XFLAG_IMMUTABLE) 991 if (xflags & FS_XFLAG_IMMUTABLE)
992 inode->i_flags |= S_IMMUTABLE; 992 inode->i_flags |= S_IMMUTABLE;
993 else 993 else
994 inode->i_flags &= ~S_IMMUTABLE; 994 inode->i_flags &= ~S_IMMUTABLE;
995 if (xflags & XFS_XFLAG_APPEND) 995 if (xflags & FS_XFLAG_APPEND)
996 inode->i_flags |= S_APPEND; 996 inode->i_flags |= S_APPEND;
997 else 997 else
998 inode->i_flags &= ~S_APPEND; 998 inode->i_flags &= ~S_APPEND;
999 if (xflags & XFS_XFLAG_SYNC) 999 if (xflags & FS_XFLAG_SYNC)
1000 inode->i_flags |= S_SYNC; 1000 inode->i_flags |= S_SYNC;
1001 else 1001 else
1002 inode->i_flags &= ~S_SYNC; 1002 inode->i_flags &= ~S_SYNC;
1003 if (xflags & XFS_XFLAG_NOATIME) 1003 if (xflags & FS_XFLAG_NOATIME)
1004 inode->i_flags |= S_NOATIME; 1004 inode->i_flags |= S_NOATIME;
1005 else 1005 else
1006 inode->i_flags &= ~S_NOATIME; 1006 inode->i_flags &= ~S_NOATIME;
@@ -1016,11 +1016,11 @@ xfs_ioctl_setattr_xflags(
1016 1016
1017 /* Can't change realtime flag if any extents are allocated. */ 1017 /* Can't change realtime flag if any extents are allocated. */
1018 if ((ip->i_d.di_nextents || ip->i_delayed_blks) && 1018 if ((ip->i_d.di_nextents || ip->i_delayed_blks) &&
1019 XFS_IS_REALTIME_INODE(ip) != (fa->fsx_xflags & XFS_XFLAG_REALTIME)) 1019 XFS_IS_REALTIME_INODE(ip) != (fa->fsx_xflags & FS_XFLAG_REALTIME))
1020 return -EINVAL; 1020 return -EINVAL;
1021 1021
1022 /* If realtime flag is set then must have realtime device */ 1022 /* If realtime flag is set then must have realtime device */
1023 if (fa->fsx_xflags & XFS_XFLAG_REALTIME) { 1023 if (fa->fsx_xflags & FS_XFLAG_REALTIME) {
1024 if (mp->m_sb.sb_rblocks == 0 || mp->m_sb.sb_rextsize == 0 || 1024 if (mp->m_sb.sb_rblocks == 0 || mp->m_sb.sb_rextsize == 0 ||
1025 (ip->i_d.di_extsize % mp->m_sb.sb_rextsize)) 1025 (ip->i_d.di_extsize % mp->m_sb.sb_rextsize))
1026 return -EINVAL; 1026 return -EINVAL;
@@ -1031,7 +1031,7 @@ xfs_ioctl_setattr_xflags(
1031 * we have appropriate permission. 1031 * we have appropriate permission.
1032 */ 1032 */
1033 if (((ip->i_d.di_flags & (XFS_DIFLAG_IMMUTABLE | XFS_DIFLAG_APPEND)) || 1033 if (((ip->i_d.di_flags & (XFS_DIFLAG_IMMUTABLE | XFS_DIFLAG_APPEND)) ||
1034 (fa->fsx_xflags & (XFS_XFLAG_IMMUTABLE | XFS_XFLAG_APPEND))) && 1034 (fa->fsx_xflags & (FS_XFLAG_IMMUTABLE | FS_XFLAG_APPEND))) &&
1035 !capable(CAP_LINUX_IMMUTABLE)) 1035 !capable(CAP_LINUX_IMMUTABLE))
1036 return -EPERM; 1036 return -EPERM;
1037 1037
@@ -1095,8 +1095,8 @@ out_cancel:
1095 * extent size hint validation is somewhat cumbersome. Rules are: 1095 * extent size hint validation is somewhat cumbersome. Rules are:
1096 * 1096 *
1097 * 1. extent size hint is only valid for directories and regular files 1097 * 1. extent size hint is only valid for directories and regular files
1098 * 2. XFS_XFLAG_EXTSIZE is only valid for regular files 1098 * 2. FS_XFLAG_EXTSIZE is only valid for regular files
1099 * 3. XFS_XFLAG_EXTSZINHERIT is only valid for directories. 1099 * 3. FS_XFLAG_EXTSZINHERIT is only valid for directories.
1100 * 4. can only be changed on regular files if no extents are allocated 1100 * 4. can only be changed on regular files if no extents are allocated
1101 * 5. can be changed on directories at any time 1101 * 5. can be changed on directories at any time
1102 * 6. extsize hint of 0 turns off hints, clears inode flags. 1102 * 6. extsize hint of 0 turns off hints, clears inode flags.
@@ -1112,10 +1112,10 @@ xfs_ioctl_setattr_check_extsize(
1112{ 1112{
1113 struct xfs_mount *mp = ip->i_mount; 1113 struct xfs_mount *mp = ip->i_mount;
1114 1114
1115 if ((fa->fsx_xflags & XFS_XFLAG_EXTSIZE) && !S_ISREG(ip->i_d.di_mode)) 1115 if ((fa->fsx_xflags & FS_XFLAG_EXTSIZE) && !S_ISREG(ip->i_d.di_mode))
1116 return -EINVAL; 1116 return -EINVAL;
1117 1117
1118 if ((fa->fsx_xflags & XFS_XFLAG_EXTSZINHERIT) && 1118 if ((fa->fsx_xflags & FS_XFLAG_EXTSZINHERIT) &&
1119 !S_ISDIR(ip->i_d.di_mode)) 1119 !S_ISDIR(ip->i_d.di_mode))
1120 return -EINVAL; 1120 return -EINVAL;
1121 1121
@@ -1132,7 +1132,7 @@ xfs_ioctl_setattr_check_extsize(
1132 return -EINVAL; 1132 return -EINVAL;
1133 1133
1134 if (XFS_IS_REALTIME_INODE(ip) || 1134 if (XFS_IS_REALTIME_INODE(ip) ||
1135 (fa->fsx_xflags & XFS_XFLAG_REALTIME)) { 1135 (fa->fsx_xflags & FS_XFLAG_REALTIME)) {
1136 size = mp->m_sb.sb_rextsize << mp->m_sb.sb_blocklog; 1136 size = mp->m_sb.sb_rextsize << mp->m_sb.sb_blocklog;
1137 } else { 1137 } else {
1138 size = mp->m_sb.sb_blocksize; 1138 size = mp->m_sb.sb_blocksize;
@@ -1143,7 +1143,7 @@ xfs_ioctl_setattr_check_extsize(
1143 if (fa->fsx_extsize % size) 1143 if (fa->fsx_extsize % size)
1144 return -EINVAL; 1144 return -EINVAL;
1145 } else 1145 } else
1146 fa->fsx_xflags &= ~(XFS_XFLAG_EXTSIZE | XFS_XFLAG_EXTSZINHERIT); 1146 fa->fsx_xflags &= ~(FS_XFLAG_EXTSIZE | FS_XFLAG_EXTSZINHERIT);
1147 1147
1148 return 0; 1148 return 0;
1149} 1149}
@@ -1168,7 +1168,7 @@ xfs_ioctl_setattr_check_projid(
1168 1168
1169 if (xfs_get_projid(ip) != fa->fsx_projid) 1169 if (xfs_get_projid(ip) != fa->fsx_projid)
1170 return -EINVAL; 1170 return -EINVAL;
1171 if ((fa->fsx_xflags & XFS_XFLAG_PROJINHERIT) != 1171 if ((fa->fsx_xflags & FS_XFLAG_PROJINHERIT) !=
1172 (ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT)) 1172 (ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT))
1173 return -EINVAL; 1173 return -EINVAL;
1174 1174