diff options
Diffstat (limited to 'fs/xfs/xfs_vnodeops.c')
| -rw-r--r-- | fs/xfs/xfs_vnodeops.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 0176bb21f09a..42c0ef288aeb 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
| @@ -322,18 +322,9 @@ xfs_inactive( | |||
| 322 | xfs_trans_ijoin(tp, ip, 0); | 322 | xfs_trans_ijoin(tp, ip, 0); |
| 323 | 323 | ||
| 324 | if (S_ISLNK(ip->i_d.di_mode)) { | 324 | if (S_ISLNK(ip->i_d.di_mode)) { |
| 325 | /* | 325 | error = xfs_inactive_symlink(ip, &tp); |
| 326 | * Zero length symlinks _can_ exist. | 326 | if (error) |
| 327 | */ | 327 | goto out_cancel; |
| 328 | if (ip->i_d.di_size > XFS_IFORK_DSIZE(ip)) { | ||
| 329 | error = xfs_inactive_symlink_rmt(ip, &tp); | ||
| 330 | if (error) | ||
| 331 | goto out_cancel; | ||
| 332 | } else if (ip->i_df.if_bytes > 0) { | ||
| 333 | xfs_idata_realloc(ip, -(ip->i_df.if_bytes), | ||
| 334 | XFS_DATA_FORK); | ||
| 335 | ASSERT(ip->i_df.if_bytes == 0); | ||
| 336 | } | ||
| 337 | } else if (truncate) { | 328 | } else if (truncate) { |
| 338 | ip->i_d.di_size = 0; | 329 | ip->i_d.di_size = 0; |
| 339 | xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); | 330 | xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); |
