diff options
Diffstat (limited to 'fs/xfs/xfs_vnodeops.c')
-rw-r--r-- | fs/xfs/xfs_vnodeops.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 6e49bd362460..e17be3b647be 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
@@ -133,7 +133,7 @@ xfs_getattr( | |||
133 | if (!(flags & ATTR_LAZY)) | 133 | if (!(flags & ATTR_LAZY)) |
134 | xfs_ilock(ip, XFS_ILOCK_SHARED); | 134 | xfs_ilock(ip, XFS_ILOCK_SHARED); |
135 | 135 | ||
136 | vap->va_size = ip->i_d.di_size; | 136 | vap->va_size = XFS_ISIZE(ip); |
137 | if (vap->va_mask == XFS_AT_SIZE) | 137 | if (vap->va_mask == XFS_AT_SIZE) |
138 | goto all_done; | 138 | goto all_done; |
139 | 139 | ||
@@ -496,7 +496,7 @@ xfs_setattr( | |||
496 | if (mask & XFS_AT_SIZE) { | 496 | if (mask & XFS_AT_SIZE) { |
497 | /* Short circuit the truncate case for zero length files */ | 497 | /* Short circuit the truncate case for zero length files */ |
498 | if ((vap->va_size == 0) && | 498 | if ((vap->va_size == 0) && |
499 | (ip->i_d.di_size == 0) && (ip->i_d.di_nextents == 0)) { | 499 | (ip->i_size == 0) && (ip->i_d.di_nextents == 0)) { |
500 | xfs_iunlock(ip, XFS_ILOCK_EXCL); | 500 | xfs_iunlock(ip, XFS_ILOCK_EXCL); |
501 | lock_flags &= ~XFS_ILOCK_EXCL; | 501 | lock_flags &= ~XFS_ILOCK_EXCL; |
502 | if (mask & XFS_AT_CTIME) | 502 | if (mask & XFS_AT_CTIME) |
@@ -614,7 +614,7 @@ xfs_setattr( | |||
614 | */ | 614 | */ |
615 | if (mask & XFS_AT_SIZE) { | 615 | if (mask & XFS_AT_SIZE) { |
616 | code = 0; | 616 | code = 0; |
617 | if ((vap->va_size > ip->i_d.di_size) && | 617 | if ((vap->va_size > ip->i_size) && |
618 | (flags & ATTR_NOSIZETOK) == 0) { | 618 | (flags & ATTR_NOSIZETOK) == 0) { |
619 | code = xfs_igrow_start(ip, vap->va_size, credp); | 619 | code = xfs_igrow_start(ip, vap->va_size, credp); |
620 | } | 620 | } |
@@ -654,10 +654,10 @@ xfs_setattr( | |||
654 | * Truncate file. Must have write permission and not be a directory. | 654 | * Truncate file. Must have write permission and not be a directory. |
655 | */ | 655 | */ |
656 | if (mask & XFS_AT_SIZE) { | 656 | if (mask & XFS_AT_SIZE) { |
657 | if (vap->va_size > ip->i_d.di_size) { | 657 | if (vap->va_size > ip->i_size) { |
658 | xfs_igrow_finish(tp, ip, vap->va_size, | 658 | xfs_igrow_finish(tp, ip, vap->va_size, |
659 | !(flags & ATTR_DMI)); | 659 | !(flags & ATTR_DMI)); |
660 | } else if ((vap->va_size <= ip->i_d.di_size) || | 660 | } else if ((vap->va_size <= ip->i_size) || |
661 | ((vap->va_size == 0) && ip->i_d.di_nextents)) { | 661 | ((vap->va_size == 0) && ip->i_d.di_nextents)) { |
662 | /* | 662 | /* |
663 | * signal a sync transaction unless | 663 | * signal a sync transaction unless |
@@ -1221,7 +1221,7 @@ xfs_inactive_free_eofblocks( | |||
1221 | * Figure out if there are any blocks beyond the end | 1221 | * Figure out if there are any blocks beyond the end |
1222 | * of the file. If not, then there is nothing to do. | 1222 | * of the file. If not, then there is nothing to do. |
1223 | */ | 1223 | */ |
1224 | end_fsb = XFS_B_TO_FSB(mp, ((xfs_ufsize_t)ip->i_d.di_size)); | 1224 | end_fsb = XFS_B_TO_FSB(mp, ((xfs_ufsize_t)ip->i_size)); |
1225 | last_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); | 1225 | last_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); |
1226 | map_len = last_fsb - end_fsb; | 1226 | map_len = last_fsb - end_fsb; |
1227 | if (map_len <= 0) | 1227 | if (map_len <= 0) |
@@ -1258,7 +1258,7 @@ xfs_inactive_free_eofblocks( | |||
1258 | */ | 1258 | */ |
1259 | xfs_ilock(ip, XFS_IOLOCK_EXCL); | 1259 | xfs_ilock(ip, XFS_IOLOCK_EXCL); |
1260 | error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, | 1260 | error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, |
1261 | ip->i_d.di_size); | 1261 | ip->i_size); |
1262 | if (error) { | 1262 | if (error) { |
1263 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); | 1263 | xfs_iunlock(ip, XFS_IOLOCK_EXCL); |
1264 | return error; | 1264 | return error; |
@@ -1282,7 +1282,7 @@ xfs_inactive_free_eofblocks( | |||
1282 | xfs_trans_ihold(tp, ip); | 1282 | xfs_trans_ihold(tp, ip); |
1283 | 1283 | ||
1284 | error = xfs_itruncate_finish(&tp, ip, | 1284 | error = xfs_itruncate_finish(&tp, ip, |
1285 | ip->i_d.di_size, | 1285 | ip->i_size, |
1286 | XFS_DATA_FORK, | 1286 | XFS_DATA_FORK, |
1287 | 0); | 1287 | 0); |
1288 | /* | 1288 | /* |
@@ -1568,7 +1568,7 @@ xfs_release( | |||
1568 | 1568 | ||
1569 | if (ip->i_d.di_nlink != 0) { | 1569 | if (ip->i_d.di_nlink != 0) { |
1570 | if ((((ip->i_d.di_mode & S_IFMT) == S_IFREG) && | 1570 | if ((((ip->i_d.di_mode & S_IFMT) == S_IFREG) && |
1571 | ((ip->i_d.di_size > 0) || (VN_CACHED(vp) > 0 || | 1571 | ((ip->i_size > 0) || (VN_CACHED(vp) > 0 || |
1572 | ip->i_delayed_blks > 0)) && | 1572 | ip->i_delayed_blks > 0)) && |
1573 | (ip->i_df.if_flags & XFS_IFEXTENTS)) && | 1573 | (ip->i_df.if_flags & XFS_IFEXTENTS)) && |
1574 | (!(ip->i_d.di_flags & | 1574 | (!(ip->i_d.di_flags & |
@@ -1629,8 +1629,8 @@ xfs_inactive( | |||
1629 | * only one with a reference to the inode. | 1629 | * only one with a reference to the inode. |
1630 | */ | 1630 | */ |
1631 | truncate = ((ip->i_d.di_nlink == 0) && | 1631 | truncate = ((ip->i_d.di_nlink == 0) && |
1632 | ((ip->i_d.di_size != 0) || (ip->i_d.di_nextents > 0) || | 1632 | ((ip->i_d.di_size != 0) || (ip->i_size != 0) || |
1633 | (ip->i_delayed_blks > 0)) && | 1633 | (ip->i_d.di_nextents > 0) || (ip->i_delayed_blks > 0)) && |
1634 | ((ip->i_d.di_mode & S_IFMT) == S_IFREG)); | 1634 | ((ip->i_d.di_mode & S_IFMT) == S_IFREG)); |
1635 | 1635 | ||
1636 | mp = ip->i_mount; | 1636 | mp = ip->i_mount; |
@@ -1648,7 +1648,7 @@ xfs_inactive( | |||
1648 | 1648 | ||
1649 | if (ip->i_d.di_nlink != 0) { | 1649 | if (ip->i_d.di_nlink != 0) { |
1650 | if ((((ip->i_d.di_mode & S_IFMT) == S_IFREG) && | 1650 | if ((((ip->i_d.di_mode & S_IFMT) == S_IFREG) && |
1651 | ((ip->i_d.di_size > 0) || (VN_CACHED(vp) > 0 || | 1651 | ((ip->i_size > 0) || (VN_CACHED(vp) > 0 || |
1652 | ip->i_delayed_blks > 0)) && | 1652 | ip->i_delayed_blks > 0)) && |
1653 | (ip->i_df.if_flags & XFS_IFEXTENTS) && | 1653 | (ip->i_df.if_flags & XFS_IFEXTENTS) && |
1654 | (!(ip->i_d.di_flags & | 1654 | (!(ip->i_d.di_flags & |
@@ -4055,14 +4055,14 @@ xfs_alloc_file_space( | |||
4055 | allocatesize_fsb = XFS_B_TO_FSB(mp, count); | 4055 | allocatesize_fsb = XFS_B_TO_FSB(mp, count); |
4056 | 4056 | ||
4057 | /* Generate a DMAPI event if needed. */ | 4057 | /* Generate a DMAPI event if needed. */ |
4058 | if (alloc_type != 0 && offset < ip->i_d.di_size && | 4058 | if (alloc_type != 0 && offset < ip->i_size && |
4059 | (attr_flags&ATTR_DMI) == 0 && | 4059 | (attr_flags&ATTR_DMI) == 0 && |
4060 | DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_WRITE)) { | 4060 | DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_WRITE)) { |
4061 | xfs_off_t end_dmi_offset; | 4061 | xfs_off_t end_dmi_offset; |
4062 | 4062 | ||
4063 | end_dmi_offset = offset+len; | 4063 | end_dmi_offset = offset+len; |
4064 | if (end_dmi_offset > ip->i_d.di_size) | 4064 | if (end_dmi_offset > ip->i_size) |
4065 | end_dmi_offset = ip->i_d.di_size; | 4065 | end_dmi_offset = ip->i_size; |
4066 | error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, XFS_ITOV(ip), | 4066 | error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, XFS_ITOV(ip), |
4067 | offset, end_dmi_offset - offset, | 4067 | offset, end_dmi_offset - offset, |
4068 | 0, NULL); | 4068 | 0, NULL); |
@@ -4318,11 +4318,11 @@ xfs_free_file_space( | |||
4318 | end_dmi_offset = offset + len; | 4318 | end_dmi_offset = offset + len; |
4319 | endoffset_fsb = XFS_B_TO_FSBT(mp, end_dmi_offset); | 4319 | endoffset_fsb = XFS_B_TO_FSBT(mp, end_dmi_offset); |
4320 | 4320 | ||
4321 | if (offset < ip->i_d.di_size && | 4321 | if (offset < ip->i_size && |
4322 | (attr_flags & ATTR_DMI) == 0 && | 4322 | (attr_flags & ATTR_DMI) == 0 && |
4323 | DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_WRITE)) { | 4323 | DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_WRITE)) { |
4324 | if (end_dmi_offset > ip->i_d.di_size) | 4324 | if (end_dmi_offset > ip->i_size) |
4325 | end_dmi_offset = ip->i_d.di_size; | 4325 | end_dmi_offset = ip->i_size; |
4326 | error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, vp, | 4326 | error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, vp, |
4327 | offset, end_dmi_offset - offset, | 4327 | offset, end_dmi_offset - offset, |
4328 | AT_DELAY_FLAG(attr_flags), NULL); | 4328 | AT_DELAY_FLAG(attr_flags), NULL); |
@@ -4541,7 +4541,7 @@ xfs_change_file_space( | |||
4541 | bf->l_start += offset; | 4541 | bf->l_start += offset; |
4542 | break; | 4542 | break; |
4543 | case 2: /*SEEK_END*/ | 4543 | case 2: /*SEEK_END*/ |
4544 | bf->l_start += ip->i_d.di_size; | 4544 | bf->l_start += ip->i_size; |
4545 | break; | 4545 | break; |
4546 | default: | 4546 | default: |
4547 | return XFS_ERROR(EINVAL); | 4547 | return XFS_ERROR(EINVAL); |
@@ -4558,7 +4558,7 @@ xfs_change_file_space( | |||
4558 | bf->l_whence = 0; | 4558 | bf->l_whence = 0; |
4559 | 4559 | ||
4560 | startoffset = bf->l_start; | 4560 | startoffset = bf->l_start; |
4561 | fsize = ip->i_d.di_size; | 4561 | fsize = ip->i_size; |
4562 | 4562 | ||
4563 | /* | 4563 | /* |
4564 | * XFS_IOC_RESVSP and XFS_IOC_UNRESVSP will reserve or unreserve | 4564 | * XFS_IOC_RESVSP and XFS_IOC_UNRESVSP will reserve or unreserve |