diff options
Diffstat (limited to 'fs/xfs/xfs_inode.c')
-rw-r--r-- | fs/xfs/xfs_inode.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index a2c723baff06..34bdf5909687 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c | |||
@@ -1202,26 +1202,32 @@ xfs_ialloc( | |||
1202 | case S_IFREG: | 1202 | case S_IFREG: |
1203 | case S_IFDIR: | 1203 | case S_IFDIR: |
1204 | if (unlikely(pip->i_d.di_flags & XFS_DIFLAG_ANY)) { | 1204 | if (unlikely(pip->i_d.di_flags & XFS_DIFLAG_ANY)) { |
1205 | if (pip->i_d.di_flags & XFS_DIFLAG_RTINHERIT) { | 1205 | uint di_flags = 0; |
1206 | if ((mode & S_IFMT) == S_IFDIR) { | 1206 | |
1207 | ip->i_d.di_flags |= XFS_DIFLAG_RTINHERIT; | 1207 | if ((mode & S_IFMT) == S_IFDIR) { |
1208 | } else { | 1208 | if (pip->i_d.di_flags & XFS_DIFLAG_RTINHERIT) |
1209 | ip->i_d.di_flags |= XFS_DIFLAG_REALTIME; | 1209 | di_flags |= XFS_DIFLAG_RTINHERIT; |
1210 | } else { | ||
1211 | if (pip->i_d.di_flags & XFS_DIFLAG_RTINHERIT) { | ||
1212 | di_flags |= XFS_DIFLAG_REALTIME; | ||
1210 | ip->i_iocore.io_flags |= XFS_IOCORE_RT; | 1213 | ip->i_iocore.io_flags |= XFS_IOCORE_RT; |
1211 | } | 1214 | } |
1212 | } | 1215 | } |
1213 | if ((pip->i_d.di_flags & XFS_DIFLAG_NOATIME) && | 1216 | if ((pip->i_d.di_flags & XFS_DIFLAG_NOATIME) && |
1214 | xfs_inherit_noatime) | 1217 | xfs_inherit_noatime) |
1215 | ip->i_d.di_flags |= XFS_DIFLAG_NOATIME; | 1218 | di_flags |= XFS_DIFLAG_NOATIME; |
1216 | if ((pip->i_d.di_flags & XFS_DIFLAG_NODUMP) && | 1219 | if ((pip->i_d.di_flags & XFS_DIFLAG_NODUMP) && |
1217 | xfs_inherit_nodump) | 1220 | xfs_inherit_nodump) |
1218 | ip->i_d.di_flags |= XFS_DIFLAG_NODUMP; | 1221 | di_flags |= XFS_DIFLAG_NODUMP; |
1219 | if ((pip->i_d.di_flags & XFS_DIFLAG_SYNC) && | 1222 | if ((pip->i_d.di_flags & XFS_DIFLAG_SYNC) && |
1220 | xfs_inherit_sync) | 1223 | xfs_inherit_sync) |
1221 | ip->i_d.di_flags |= XFS_DIFLAG_SYNC; | 1224 | di_flags |= XFS_DIFLAG_SYNC; |
1222 | if ((pip->i_d.di_flags & XFS_DIFLAG_NOSYMLINKS) && | 1225 | if ((pip->i_d.di_flags & XFS_DIFLAG_NOSYMLINKS) && |
1223 | xfs_inherit_nosymlinks) | 1226 | xfs_inherit_nosymlinks) |
1224 | ip->i_d.di_flags |= XFS_DIFLAG_NOSYMLINKS; | 1227 | di_flags |= XFS_DIFLAG_NOSYMLINKS; |
1228 | if (pip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) | ||
1229 | di_flags |= XFS_DIFLAG_PROJINHERIT; | ||
1230 | ip->i_d.di_flags |= di_flags; | ||
1225 | } | 1231 | } |
1226 | /* FALLTHROUGH */ | 1232 | /* FALLTHROUGH */ |
1227 | case S_IFLNK: | 1233 | case S_IFLNK: |