.. | .. |
---|
106 | 106 | flags = flags & mask; |
---|
107 | 107 | flags |= oldflags & ~mask; |
---|
108 | 108 | |
---|
109 | | - /* |
---|
110 | | - * The IMMUTABLE and APPEND_ONLY flags can only be changed by |
---|
111 | | - * the relevant capability. |
---|
112 | | - */ |
---|
113 | | - status = -EPERM; |
---|
114 | | - if ((oldflags & OCFS2_IMMUTABLE_FL) || ((flags ^ oldflags) & |
---|
115 | | - (OCFS2_APPEND_FL | OCFS2_IMMUTABLE_FL))) { |
---|
116 | | - if (!capable(CAP_LINUX_IMMUTABLE)) |
---|
117 | | - goto bail_unlock; |
---|
118 | | - } |
---|
| 109 | + status = vfs_ioc_setflags_prepare(inode, oldflags, flags); |
---|
| 110 | + if (status) |
---|
| 111 | + goto bail_unlock; |
---|
119 | 112 | |
---|
120 | 113 | handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS); |
---|
121 | 114 | if (IS_ERR(handle)) { |
---|
.. | .. |
---|
992 | 985 | return -EFAULT; |
---|
993 | 986 | |
---|
994 | 987 | return ocfs2_info_handle(inode, &info, 1); |
---|
| 988 | + case FITRIM: |
---|
995 | 989 | case OCFS2_IOC_MOVE_EXT: |
---|
996 | 990 | break; |
---|
997 | 991 | default: |
---|