diff options
Diffstat (limited to 'fs/xfs/xfs_inode.c')
| -rw-r--r-- | fs/xfs/xfs_inode.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 1f22d65fed0..da428b3fe0f 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -343,6 +343,16 @@ xfs_iformat(  		return XFS_ERROR(EFSCORRUPTED);  	} +	if (unlikely((ip->i_d.di_flags & XFS_DIFLAG_REALTIME) && +		     !ip->i_mount->m_rtdev_targp)) { +		xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, +			"corrupt dinode %Lu, has realtime flag set.", +			ip->i_ino); +		XFS_CORRUPTION_ERROR("xfs_iformat(realtime)", +				     XFS_ERRLEVEL_LOW, ip->i_mount, dip); +		return XFS_ERROR(EFSCORRUPTED); +	} +  	switch (ip->i_d.di_mode & S_IFMT) {  	case S_IFIFO:  	case S_IFCHR:  |