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); |