diff options
Diffstat (limited to 'fs/xfs/xfs_inode.c')
-rw-r--r-- | fs/xfs/xfs_inode.c | 68 |
1 files changed, 34 insertions, 34 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index a6115fe1ac94..fea3c92fb3f0 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c | |||
@@ -583,7 +583,7 @@ xfs_lookup( | |||
583 | trace_xfs_lookup(dp, name); | 583 | trace_xfs_lookup(dp, name); |
584 | 584 | ||
585 | if (XFS_FORCED_SHUTDOWN(dp->i_mount)) | 585 | if (XFS_FORCED_SHUTDOWN(dp->i_mount)) |
586 | return XFS_ERROR(EIO); | 586 | return -EIO; |
587 | 587 | ||
588 | lock_mode = xfs_ilock_data_map_shared(dp); | 588 | lock_mode = xfs_ilock_data_map_shared(dp); |
589 | error = xfs_dir_lookup(NULL, dp, name, &inum, ci_name); | 589 | error = xfs_dir_lookup(NULL, dp, name, &inum, ci_name); |
@@ -893,7 +893,7 @@ xfs_dir_ialloc( | |||
893 | } | 893 | } |
894 | if (!ialloc_context && !ip) { | 894 | if (!ialloc_context && !ip) { |
895 | *ipp = NULL; | 895 | *ipp = NULL; |
896 | return XFS_ERROR(ENOSPC); | 896 | return -ENOSPC; |
897 | } | 897 | } |
898 | 898 | ||
899 | /* | 899 | /* |
@@ -1088,7 +1088,7 @@ xfs_create( | |||
1088 | trace_xfs_create(dp, name); | 1088 | trace_xfs_create(dp, name); |
1089 | 1089 | ||
1090 | if (XFS_FORCED_SHUTDOWN(mp)) | 1090 | if (XFS_FORCED_SHUTDOWN(mp)) |
1091 | return XFS_ERROR(EIO); | 1091 | return -EIO; |
1092 | 1092 | ||
1093 | prid = xfs_get_initial_prid(dp); | 1093 | prid = xfs_get_initial_prid(dp); |
1094 | 1094 | ||
@@ -1125,12 +1125,12 @@ xfs_create( | |||
1125 | */ | 1125 | */ |
1126 | tres.tr_logflags = XFS_TRANS_PERM_LOG_RES; | 1126 | tres.tr_logflags = XFS_TRANS_PERM_LOG_RES; |
1127 | error = xfs_trans_reserve(tp, &tres, resblks, 0); | 1127 | error = xfs_trans_reserve(tp, &tres, resblks, 0); |
1128 | if (error == ENOSPC) { | 1128 | if (error == -ENOSPC) { |
1129 | /* flush outstanding delalloc blocks and retry */ | 1129 | /* flush outstanding delalloc blocks and retry */ |
1130 | xfs_flush_inodes(mp); | 1130 | xfs_flush_inodes(mp); |
1131 | error = xfs_trans_reserve(tp, &tres, resblks, 0); | 1131 | error = xfs_trans_reserve(tp, &tres, resblks, 0); |
1132 | } | 1132 | } |
1133 | if (error == ENOSPC) { | 1133 | if (error == -ENOSPC) { |
1134 | /* No space at all so try a "no-allocation" reservation */ | 1134 | /* No space at all so try a "no-allocation" reservation */ |
1135 | resblks = 0; | 1135 | resblks = 0; |
1136 | error = xfs_trans_reserve(tp, &tres, 0, 0); | 1136 | error = xfs_trans_reserve(tp, &tres, 0, 0); |
@@ -1165,7 +1165,7 @@ xfs_create( | |||
1165 | error = xfs_dir_ialloc(&tp, dp, mode, is_dir ? 2 : 1, rdev, | 1165 | error = xfs_dir_ialloc(&tp, dp, mode, is_dir ? 2 : 1, rdev, |
1166 | prid, resblks > 0, &ip, &committed); | 1166 | prid, resblks > 0, &ip, &committed); |
1167 | if (error) { | 1167 | if (error) { |
1168 | if (error == ENOSPC) | 1168 | if (error == -ENOSPC) |
1169 | goto out_trans_cancel; | 1169 | goto out_trans_cancel; |
1170 | goto out_trans_abort; | 1170 | goto out_trans_abort; |
1171 | } | 1171 | } |
@@ -1184,7 +1184,7 @@ xfs_create( | |||
1184 | &first_block, &free_list, resblks ? | 1184 | &first_block, &free_list, resblks ? |
1185 | resblks - XFS_IALLOC_SPACE_RES(mp) : 0); | 1185 | resblks - XFS_IALLOC_SPACE_RES(mp) : 0); |
1186 | if (error) { | 1186 | if (error) { |
1187 | ASSERT(error != ENOSPC); | 1187 | ASSERT(error != -ENOSPC); |
1188 | goto out_trans_abort; | 1188 | goto out_trans_abort; |
1189 | } | 1189 | } |
1190 | xfs_trans_ichgtime(tp, dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); | 1190 | xfs_trans_ichgtime(tp, dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); |
@@ -1274,7 +1274,7 @@ xfs_create_tmpfile( | |||
1274 | uint resblks; | 1274 | uint resblks; |
1275 | 1275 | ||
1276 | if (XFS_FORCED_SHUTDOWN(mp)) | 1276 | if (XFS_FORCED_SHUTDOWN(mp)) |
1277 | return XFS_ERROR(EIO); | 1277 | return -EIO; |
1278 | 1278 | ||
1279 | prid = xfs_get_initial_prid(dp); | 1279 | prid = xfs_get_initial_prid(dp); |
1280 | 1280 | ||
@@ -1293,7 +1293,7 @@ xfs_create_tmpfile( | |||
1293 | 1293 | ||
1294 | tres = &M_RES(mp)->tr_create_tmpfile; | 1294 | tres = &M_RES(mp)->tr_create_tmpfile; |
1295 | error = xfs_trans_reserve(tp, tres, resblks, 0); | 1295 | error = xfs_trans_reserve(tp, tres, resblks, 0); |
1296 | if (error == ENOSPC) { | 1296 | if (error == -ENOSPC) { |
1297 | /* No space at all so try a "no-allocation" reservation */ | 1297 | /* No space at all so try a "no-allocation" reservation */ |
1298 | resblks = 0; | 1298 | resblks = 0; |
1299 | error = xfs_trans_reserve(tp, tres, 0, 0); | 1299 | error = xfs_trans_reserve(tp, tres, 0, 0); |
@@ -1311,7 +1311,7 @@ xfs_create_tmpfile( | |||
1311 | error = xfs_dir_ialloc(&tp, dp, mode, 1, 0, | 1311 | error = xfs_dir_ialloc(&tp, dp, mode, 1, 0, |
1312 | prid, resblks > 0, &ip, NULL); | 1312 | prid, resblks > 0, &ip, NULL); |
1313 | if (error) { | 1313 | if (error) { |
1314 | if (error == ENOSPC) | 1314 | if (error == -ENOSPC) |
1315 | goto out_trans_cancel; | 1315 | goto out_trans_cancel; |
1316 | goto out_trans_abort; | 1316 | goto out_trans_abort; |
1317 | } | 1317 | } |
@@ -1382,7 +1382,7 @@ xfs_link( | |||
1382 | ASSERT(!S_ISDIR(sip->i_d.di_mode)); | 1382 | ASSERT(!S_ISDIR(sip->i_d.di_mode)); |
1383 | 1383 | ||
1384 | if (XFS_FORCED_SHUTDOWN(mp)) | 1384 | if (XFS_FORCED_SHUTDOWN(mp)) |
1385 | return XFS_ERROR(EIO); | 1385 | return -EIO; |
1386 | 1386 | ||
1387 | error = xfs_qm_dqattach(sip, 0); | 1387 | error = xfs_qm_dqattach(sip, 0); |
1388 | if (error) | 1388 | if (error) |
@@ -1396,7 +1396,7 @@ xfs_link( | |||
1396 | cancel_flags = XFS_TRANS_RELEASE_LOG_RES; | 1396 | cancel_flags = XFS_TRANS_RELEASE_LOG_RES; |
1397 | resblks = XFS_LINK_SPACE_RES(mp, target_name->len); | 1397 | resblks = XFS_LINK_SPACE_RES(mp, target_name->len); |
1398 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_link, resblks, 0); | 1398 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_link, resblks, 0); |
1399 | if (error == ENOSPC) { | 1399 | if (error == -ENOSPC) { |
1400 | resblks = 0; | 1400 | resblks = 0; |
1401 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_link, 0, 0); | 1401 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_link, 0, 0); |
1402 | } | 1402 | } |
@@ -1417,7 +1417,7 @@ xfs_link( | |||
1417 | */ | 1417 | */ |
1418 | if (unlikely((tdp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) && | 1418 | if (unlikely((tdp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) && |
1419 | (xfs_get_projid(tdp) != xfs_get_projid(sip)))) { | 1419 | (xfs_get_projid(tdp) != xfs_get_projid(sip)))) { |
1420 | error = XFS_ERROR(EXDEV); | 1420 | error = -EXDEV; |
1421 | goto error_return; | 1421 | goto error_return; |
1422 | } | 1422 | } |
1423 | 1423 | ||
@@ -1635,8 +1635,8 @@ xfs_release( | |||
1635 | truncated = xfs_iflags_test_and_clear(ip, XFS_ITRUNCATED); | 1635 | truncated = xfs_iflags_test_and_clear(ip, XFS_ITRUNCATED); |
1636 | if (truncated) { | 1636 | if (truncated) { |
1637 | xfs_iflags_clear(ip, XFS_IDIRTY_RELEASE); | 1637 | xfs_iflags_clear(ip, XFS_IDIRTY_RELEASE); |
1638 | if (VN_DIRTY(VFS_I(ip)) && ip->i_delayed_blks > 0) { | 1638 | if (ip->i_delayed_blks > 0) { |
1639 | error = -filemap_flush(VFS_I(ip)->i_mapping); | 1639 | error = filemap_flush(VFS_I(ip)->i_mapping); |
1640 | if (error) | 1640 | if (error) |
1641 | return error; | 1641 | return error; |
1642 | } | 1642 | } |
@@ -1673,7 +1673,7 @@ xfs_release( | |||
1673 | return 0; | 1673 | return 0; |
1674 | 1674 | ||
1675 | error = xfs_free_eofblocks(mp, ip, true); | 1675 | error = xfs_free_eofblocks(mp, ip, true); |
1676 | if (error && error != EAGAIN) | 1676 | if (error && error != -EAGAIN) |
1677 | return error; | 1677 | return error; |
1678 | 1678 | ||
1679 | /* delalloc blocks after truncation means it really is dirty */ | 1679 | /* delalloc blocks after truncation means it really is dirty */ |
@@ -1772,7 +1772,7 @@ xfs_inactive_ifree( | |||
1772 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ifree, | 1772 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ifree, |
1773 | XFS_IFREE_SPACE_RES(mp), 0); | 1773 | XFS_IFREE_SPACE_RES(mp), 0); |
1774 | if (error) { | 1774 | if (error) { |
1775 | if (error == ENOSPC) { | 1775 | if (error == -ENOSPC) { |
1776 | xfs_warn_ratelimited(mp, | 1776 | xfs_warn_ratelimited(mp, |
1777 | "Failed to remove inode(s) from unlinked list. " | 1777 | "Failed to remove inode(s) from unlinked list. " |
1778 | "Please free space, unmount and run xfs_repair."); | 1778 | "Please free space, unmount and run xfs_repair."); |
@@ -2219,7 +2219,7 @@ xfs_ifree_cluster( | |||
2219 | XBF_UNMAPPED); | 2219 | XBF_UNMAPPED); |
2220 | 2220 | ||
2221 | if (!bp) | 2221 | if (!bp) |
2222 | return ENOMEM; | 2222 | return -ENOMEM; |
2223 | 2223 | ||
2224 | /* | 2224 | /* |
2225 | * This buffer may not have been correctly initialised as we | 2225 | * This buffer may not have been correctly initialised as we |
@@ -2491,7 +2491,7 @@ xfs_remove( | |||
2491 | trace_xfs_remove(dp, name); | 2491 | trace_xfs_remove(dp, name); |
2492 | 2492 | ||
2493 | if (XFS_FORCED_SHUTDOWN(mp)) | 2493 | if (XFS_FORCED_SHUTDOWN(mp)) |
2494 | return XFS_ERROR(EIO); | 2494 | return -EIO; |
2495 | 2495 | ||
2496 | error = xfs_qm_dqattach(dp, 0); | 2496 | error = xfs_qm_dqattach(dp, 0); |
2497 | if (error) | 2497 | if (error) |
@@ -2521,12 +2521,12 @@ xfs_remove( | |||
2521 | */ | 2521 | */ |
2522 | resblks = XFS_REMOVE_SPACE_RES(mp); | 2522 | resblks = XFS_REMOVE_SPACE_RES(mp); |
2523 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_remove, resblks, 0); | 2523 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_remove, resblks, 0); |
2524 | if (error == ENOSPC) { | 2524 | if (error == -ENOSPC) { |
2525 | resblks = 0; | 2525 | resblks = 0; |
2526 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_remove, 0, 0); | 2526 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_remove, 0, 0); |
2527 | } | 2527 | } |
2528 | if (error) { | 2528 | if (error) { |
2529 | ASSERT(error != ENOSPC); | 2529 | ASSERT(error != -ENOSPC); |
2530 | cancel_flags = 0; | 2530 | cancel_flags = 0; |
2531 | goto out_trans_cancel; | 2531 | goto out_trans_cancel; |
2532 | } | 2532 | } |
@@ -2543,11 +2543,11 @@ xfs_remove( | |||
2543 | if (is_dir) { | 2543 | if (is_dir) { |
2544 | ASSERT(ip->i_d.di_nlink >= 2); | 2544 | ASSERT(ip->i_d.di_nlink >= 2); |
2545 | if (ip->i_d.di_nlink != 2) { | 2545 | if (ip->i_d.di_nlink != 2) { |
2546 | error = XFS_ERROR(ENOTEMPTY); | 2546 | error = -ENOTEMPTY; |
2547 | goto out_trans_cancel; | 2547 | goto out_trans_cancel; |
2548 | } | 2548 | } |
2549 | if (!xfs_dir_isempty(ip)) { | 2549 | if (!xfs_dir_isempty(ip)) { |
2550 | error = XFS_ERROR(ENOTEMPTY); | 2550 | error = -ENOTEMPTY; |
2551 | goto out_trans_cancel; | 2551 | goto out_trans_cancel; |
2552 | } | 2552 | } |
2553 | 2553 | ||
@@ -2582,7 +2582,7 @@ xfs_remove( | |||
2582 | error = xfs_dir_removename(tp, dp, name, ip->i_ino, | 2582 | error = xfs_dir_removename(tp, dp, name, ip->i_ino, |
2583 | &first_block, &free_list, resblks); | 2583 | &first_block, &free_list, resblks); |
2584 | if (error) { | 2584 | if (error) { |
2585 | ASSERT(error != ENOENT); | 2585 | ASSERT(error != -ENOENT); |
2586 | goto out_bmap_cancel; | 2586 | goto out_bmap_cancel; |
2587 | } | 2587 | } |
2588 | 2588 | ||
@@ -2702,7 +2702,7 @@ xfs_rename( | |||
2702 | cancel_flags = XFS_TRANS_RELEASE_LOG_RES; | 2702 | cancel_flags = XFS_TRANS_RELEASE_LOG_RES; |
2703 | spaceres = XFS_RENAME_SPACE_RES(mp, target_name->len); | 2703 | spaceres = XFS_RENAME_SPACE_RES(mp, target_name->len); |
2704 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_rename, spaceres, 0); | 2704 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_rename, spaceres, 0); |
2705 | if (error == ENOSPC) { | 2705 | if (error == -ENOSPC) { |
2706 | spaceres = 0; | 2706 | spaceres = 0; |
2707 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_rename, 0, 0); | 2707 | error = xfs_trans_reserve(tp, &M_RES(mp)->tr_rename, 0, 0); |
2708 | } | 2708 | } |
@@ -2747,7 +2747,7 @@ xfs_rename( | |||
2747 | */ | 2747 | */ |
2748 | if (unlikely((target_dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) && | 2748 | if (unlikely((target_dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) && |
2749 | (xfs_get_projid(target_dp) != xfs_get_projid(src_ip)))) { | 2749 | (xfs_get_projid(target_dp) != xfs_get_projid(src_ip)))) { |
2750 | error = XFS_ERROR(EXDEV); | 2750 | error = -EXDEV; |
2751 | goto error_return; | 2751 | goto error_return; |
2752 | } | 2752 | } |
2753 | 2753 | ||
@@ -2770,7 +2770,7 @@ xfs_rename( | |||
2770 | error = xfs_dir_createname(tp, target_dp, target_name, | 2770 | error = xfs_dir_createname(tp, target_dp, target_name, |
2771 | src_ip->i_ino, &first_block, | 2771 | src_ip->i_ino, &first_block, |
2772 | &free_list, spaceres); | 2772 | &free_list, spaceres); |
2773 | if (error == ENOSPC) | 2773 | if (error == -ENOSPC) |
2774 | goto error_return; | 2774 | goto error_return; |
2775 | if (error) | 2775 | if (error) |
2776 | goto abort_return; | 2776 | goto abort_return; |
@@ -2795,7 +2795,7 @@ xfs_rename( | |||
2795 | */ | 2795 | */ |
2796 | if (!(xfs_dir_isempty(target_ip)) || | 2796 | if (!(xfs_dir_isempty(target_ip)) || |
2797 | (target_ip->i_d.di_nlink > 2)) { | 2797 | (target_ip->i_d.di_nlink > 2)) { |
2798 | error = XFS_ERROR(EEXIST); | 2798 | error = -EEXIST; |
2799 | goto error_return; | 2799 | goto error_return; |
2800 | } | 2800 | } |
2801 | } | 2801 | } |
@@ -2847,7 +2847,7 @@ xfs_rename( | |||
2847 | error = xfs_dir_replace(tp, src_ip, &xfs_name_dotdot, | 2847 | error = xfs_dir_replace(tp, src_ip, &xfs_name_dotdot, |
2848 | target_dp->i_ino, | 2848 | target_dp->i_ino, |
2849 | &first_block, &free_list, spaceres); | 2849 | &first_block, &free_list, spaceres); |
2850 | ASSERT(error != EEXIST); | 2850 | ASSERT(error != -EEXIST); |
2851 | if (error) | 2851 | if (error) |
2852 | goto abort_return; | 2852 | goto abort_return; |
2853 | } | 2853 | } |
@@ -3055,7 +3055,7 @@ cluster_corrupt_out: | |||
3055 | if (bp->b_iodone) { | 3055 | if (bp->b_iodone) { |
3056 | XFS_BUF_UNDONE(bp); | 3056 | XFS_BUF_UNDONE(bp); |
3057 | xfs_buf_stale(bp); | 3057 | xfs_buf_stale(bp); |
3058 | xfs_buf_ioerror(bp, EIO); | 3058 | xfs_buf_ioerror(bp, -EIO); |
3059 | xfs_buf_ioend(bp, 0); | 3059 | xfs_buf_ioend(bp, 0); |
3060 | } else { | 3060 | } else { |
3061 | xfs_buf_stale(bp); | 3061 | xfs_buf_stale(bp); |
@@ -3069,7 +3069,7 @@ cluster_corrupt_out: | |||
3069 | xfs_iflush_abort(iq, false); | 3069 | xfs_iflush_abort(iq, false); |
3070 | kmem_free(ilist); | 3070 | kmem_free(ilist); |
3071 | xfs_perag_put(pag); | 3071 | xfs_perag_put(pag); |
3072 | return XFS_ERROR(EFSCORRUPTED); | 3072 | return -EFSCORRUPTED; |
3073 | } | 3073 | } |
3074 | 3074 | ||
3075 | /* | 3075 | /* |
@@ -3124,7 +3124,7 @@ xfs_iflush( | |||
3124 | * as we wait for an empty AIL as part of the unmount process. | 3124 | * as we wait for an empty AIL as part of the unmount process. |
3125 | */ | 3125 | */ |
3126 | if (XFS_FORCED_SHUTDOWN(mp)) { | 3126 | if (XFS_FORCED_SHUTDOWN(mp)) { |
3127 | error = XFS_ERROR(EIO); | 3127 | error = -EIO; |
3128 | goto abort_out; | 3128 | goto abort_out; |
3129 | } | 3129 | } |
3130 | 3130 | ||
@@ -3167,7 +3167,7 @@ corrupt_out: | |||
3167 | xfs_buf_relse(bp); | 3167 | xfs_buf_relse(bp); |
3168 | xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE); | 3168 | xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE); |
3169 | cluster_corrupt_out: | 3169 | cluster_corrupt_out: |
3170 | error = XFS_ERROR(EFSCORRUPTED); | 3170 | error = -EFSCORRUPTED; |
3171 | abort_out: | 3171 | abort_out: |
3172 | /* | 3172 | /* |
3173 | * Unlocks the flush lock | 3173 | * Unlocks the flush lock |
@@ -3331,5 +3331,5 @@ xfs_iflush_int( | |||
3331 | return 0; | 3331 | return 0; |
3332 | 3332 | ||
3333 | corrupt_out: | 3333 | corrupt_out: |
3334 | return XFS_ERROR(EFSCORRUPTED); | 3334 | return -EFSCORRUPTED; |
3335 | } | 3335 | } |