diff options
Diffstat (limited to 'fs/xfs/xfs_symlink.c')
| -rw-r--r-- | fs/xfs/xfs_symlink.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/xfs/xfs_symlink.c b/fs/xfs/xfs_symlink.c index 14e58f2c96bd..52979aa90986 100644 --- a/fs/xfs/xfs_symlink.c +++ b/fs/xfs/xfs_symlink.c | |||
| @@ -80,6 +80,10 @@ xfs_readlink_bmap( | |||
| 80 | if (error) { | 80 | if (error) { |
| 81 | xfs_buf_ioerror_alert(bp, __func__); | 81 | xfs_buf_ioerror_alert(bp, __func__); |
| 82 | xfs_buf_relse(bp); | 82 | xfs_buf_relse(bp); |
| 83 | |||
| 84 | /* bad CRC means corrupted metadata */ | ||
| 85 | if (error == EFSBADCRC) | ||
| 86 | error = EFSCORRUPTED; | ||
| 83 | goto out; | 87 | goto out; |
| 84 | } | 88 | } |
| 85 | byte_cnt = XFS_SYMLINK_BUF_SPACE(mp, byte_cnt); | 89 | byte_cnt = XFS_SYMLINK_BUF_SPACE(mp, byte_cnt); |
| @@ -208,10 +212,7 @@ xfs_symlink( | |||
| 208 | return XFS_ERROR(ENAMETOOLONG); | 212 | return XFS_ERROR(ENAMETOOLONG); |
| 209 | 213 | ||
| 210 | udqp = gdqp = NULL; | 214 | udqp = gdqp = NULL; |
| 211 | if (dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) | 215 | prid = xfs_get_initial_prid(dp); |
| 212 | prid = xfs_get_projid(dp); | ||
| 213 | else | ||
| 214 | prid = XFS_PROJID_DEFAULT; | ||
| 215 | 216 | ||
| 216 | /* | 217 | /* |
| 217 | * Make sure that we have allocated dquot(s) on disk. | 218 | * Make sure that we have allocated dquot(s) on disk. |
