diff options
-rw-r--r-- | fs/xfs/libxfs/xfs_inode_fork.c | 19 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_inode_fork.h | 1 | ||||
-rw-r--r-- | fs/xfs/xfs_inode.c | 3 | ||||
-rw-r--r-- | fs/xfs/xfs_inode_item.c | 4 |
4 files changed, 5 insertions, 22 deletions
diff --git a/fs/xfs/libxfs/xfs_inode_fork.c b/fs/xfs/libxfs/xfs_inode_fork.c index 183ec0cb8921..dee85b0f8846 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.c +++ b/fs/xfs/libxfs/xfs_inode_fork.c | |||
@@ -158,7 +158,6 @@ xfs_init_local_fork( | |||
158 | } | 158 | } |
159 | 159 | ||
160 | ifp->if_bytes = size; | 160 | ifp->if_bytes = size; |
161 | ifp->if_real_bytes = real_size; | ||
162 | ifp->if_flags &= ~(XFS_IFEXTENTS | XFS_IFBROOT); | 161 | ifp->if_flags &= ~(XFS_IFEXTENTS | XFS_IFBROOT); |
163 | ifp->if_flags |= XFS_IFINLINE; | 162 | ifp->if_flags |= XFS_IFINLINE; |
164 | } | 163 | } |
@@ -226,7 +225,6 @@ xfs_iformat_extents( | |||
226 | return -EFSCORRUPTED; | 225 | return -EFSCORRUPTED; |
227 | } | 226 | } |
228 | 227 | ||
229 | ifp->if_real_bytes = 0; | ||
230 | ifp->if_bytes = 0; | 228 | ifp->if_bytes = 0; |
231 | ifp->if_u1.if_root = NULL; | 229 | ifp->if_u1.if_root = NULL; |
232 | ifp->if_height = 0; | 230 | ifp->if_height = 0; |
@@ -317,7 +315,6 @@ xfs_iformat_btree( | |||
317 | ifp->if_flags &= ~XFS_IFEXTENTS; | 315 | ifp->if_flags &= ~XFS_IFEXTENTS; |
318 | ifp->if_flags |= XFS_IFBROOT; | 316 | ifp->if_flags |= XFS_IFBROOT; |
319 | 317 | ||
320 | ifp->if_real_bytes = 0; | ||
321 | ifp->if_bytes = 0; | 318 | ifp->if_bytes = 0; |
322 | ifp->if_u1.if_root = NULL; | 319 | ifp->if_u1.if_root = NULL; |
323 | ifp->if_height = 0; | 320 | ifp->if_height = 0; |
@@ -501,7 +498,6 @@ xfs_idata_realloc( | |||
501 | */ | 498 | */ |
502 | real_size = roundup(new_size, 4); | 499 | real_size = roundup(new_size, 4); |
503 | if (ifp->if_u1.if_data == NULL) { | 500 | if (ifp->if_u1.if_data == NULL) { |
504 | ASSERT(ifp->if_real_bytes == 0); | ||
505 | ifp->if_u1.if_data = kmem_alloc(real_size, | 501 | ifp->if_u1.if_data = kmem_alloc(real_size, |
506 | KM_SLEEP | KM_NOFS); | 502 | KM_SLEEP | KM_NOFS); |
507 | } else { | 503 | } else { |
@@ -509,15 +505,12 @@ xfs_idata_realloc( | |||
509 | * Only do the realloc if the underlying size | 505 | * Only do the realloc if the underlying size |
510 | * is really changing. | 506 | * is really changing. |
511 | */ | 507 | */ |
512 | if (ifp->if_real_bytes != real_size) { | 508 | ifp->if_u1.if_data = |
513 | ifp->if_u1.if_data = | 509 | kmem_realloc(ifp->if_u1.if_data, |
514 | kmem_realloc(ifp->if_u1.if_data, | 510 | real_size, |
515 | real_size, | 511 | KM_SLEEP | KM_NOFS); |
516 | KM_SLEEP | KM_NOFS); | ||
517 | } | ||
518 | } | 512 | } |
519 | } | 513 | } |
520 | ifp->if_real_bytes = real_size; | ||
521 | ifp->if_bytes = new_size; | 514 | ifp->if_bytes = new_size; |
522 | ASSERT(ifp->if_bytes <= XFS_IFORK_SIZE(ip, whichfork)); | 515 | ASSERT(ifp->if_bytes <= XFS_IFORK_SIZE(ip, whichfork)); |
523 | } | 516 | } |
@@ -543,17 +536,13 @@ xfs_idestroy_fork( | |||
543 | */ | 536 | */ |
544 | if (XFS_IFORK_FORMAT(ip, whichfork) == XFS_DINODE_FMT_LOCAL) { | 537 | if (XFS_IFORK_FORMAT(ip, whichfork) == XFS_DINODE_FMT_LOCAL) { |
545 | if (ifp->if_u1.if_data != NULL) { | 538 | if (ifp->if_u1.if_data != NULL) { |
546 | ASSERT(ifp->if_real_bytes != 0); | ||
547 | kmem_free(ifp->if_u1.if_data); | 539 | kmem_free(ifp->if_u1.if_data); |
548 | ifp->if_u1.if_data = NULL; | 540 | ifp->if_u1.if_data = NULL; |
549 | ifp->if_real_bytes = 0; | ||
550 | } | 541 | } |
551 | } else if ((ifp->if_flags & XFS_IFEXTENTS) && ifp->if_height) { | 542 | } else if ((ifp->if_flags & XFS_IFEXTENTS) && ifp->if_height) { |
552 | xfs_iext_destroy(ifp); | 543 | xfs_iext_destroy(ifp); |
553 | } | 544 | } |
554 | 545 | ||
555 | ASSERT(ifp->if_real_bytes == 0); | ||
556 | |||
557 | if (whichfork == XFS_ATTR_FORK) { | 546 | if (whichfork == XFS_ATTR_FORK) { |
558 | kmem_zone_free(xfs_ifork_zone, ip->i_afp); | 547 | kmem_zone_free(xfs_ifork_zone, ip->i_afp); |
559 | ip->i_afp = NULL; | 548 | ip->i_afp = NULL; |
diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h index 781b1603df5e..46242052aad0 100644 --- a/fs/xfs/libxfs/xfs_inode_fork.h +++ b/fs/xfs/libxfs/xfs_inode_fork.h | |||
@@ -14,7 +14,6 @@ struct xfs_dinode; | |||
14 | */ | 14 | */ |
15 | typedef struct xfs_ifork { | 15 | typedef struct xfs_ifork { |
16 | int if_bytes; /* bytes in if_u1 */ | 16 | int if_bytes; /* bytes in if_u1 */ |
17 | int if_real_bytes; /* bytes allocated in if_u1 */ | ||
18 | struct xfs_btree_block *if_broot; /* file's incore btree root */ | 17 | struct xfs_btree_block *if_broot; /* file's incore btree root */ |
19 | short if_broot_bytes; /* bytes allocated for root */ | 18 | short if_broot_bytes; /* bytes allocated for root */ |
20 | unsigned char if_flags; /* per-fork flags */ | 19 | unsigned char if_flags; /* per-fork flags */ |
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 64c694d2b2a5..54fcfdfc748c 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c | |||
@@ -927,7 +927,7 @@ xfs_ialloc( | |||
927 | case S_IFLNK: | 927 | case S_IFLNK: |
928 | ip->i_d.di_format = XFS_DINODE_FMT_EXTENTS; | 928 | ip->i_d.di_format = XFS_DINODE_FMT_EXTENTS; |
929 | ip->i_df.if_flags = XFS_IFEXTENTS; | 929 | ip->i_df.if_flags = XFS_IFEXTENTS; |
930 | ip->i_df.if_bytes = ip->i_df.if_real_bytes = 0; | 930 | ip->i_df.if_bytes = 0; |
931 | ip->i_df.if_u1.if_root = NULL; | 931 | ip->i_df.if_u1.if_root = NULL; |
932 | break; | 932 | break; |
933 | default: | 933 | default: |
@@ -1841,7 +1841,6 @@ xfs_inactive( | |||
1841 | * to clean up here. | 1841 | * to clean up here. |
1842 | */ | 1842 | */ |
1843 | if (VFS_I(ip)->i_mode == 0) { | 1843 | if (VFS_I(ip)->i_mode == 0) { |
1844 | ASSERT(ip->i_df.if_real_bytes == 0); | ||
1845 | ASSERT(ip->i_df.if_broot_bytes == 0); | 1844 | ASSERT(ip->i_df.if_broot_bytes == 0); |
1846 | return; | 1845 | return; |
1847 | } | 1846 | } |
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 2389c34c172d..fa1c4fe2ffbf 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c | |||
@@ -194,8 +194,6 @@ xfs_inode_item_format_data_fork( | |||
194 | * to be there by xfs_idata_realloc(). | 194 | * to be there by xfs_idata_realloc(). |
195 | */ | 195 | */ |
196 | data_bytes = roundup(ip->i_df.if_bytes, 4); | 196 | data_bytes = roundup(ip->i_df.if_bytes, 4); |
197 | ASSERT(ip->i_df.if_real_bytes == 0 || | ||
198 | ip->i_df.if_real_bytes >= data_bytes); | ||
199 | ASSERT(ip->i_df.if_u1.if_data != NULL); | 197 | ASSERT(ip->i_df.if_u1.if_data != NULL); |
200 | ASSERT(ip->i_d.di_size > 0); | 198 | ASSERT(ip->i_d.di_size > 0); |
201 | xlog_copy_iovec(lv, vecp, XLOG_REG_TYPE_ILOCAL, | 199 | xlog_copy_iovec(lv, vecp, XLOG_REG_TYPE_ILOCAL, |
@@ -280,8 +278,6 @@ xfs_inode_item_format_attr_fork( | |||
280 | * to be there by xfs_idata_realloc(). | 278 | * to be there by xfs_idata_realloc(). |
281 | */ | 279 | */ |
282 | data_bytes = roundup(ip->i_afp->if_bytes, 4); | 280 | data_bytes = roundup(ip->i_afp->if_bytes, 4); |
283 | ASSERT(ip->i_afp->if_real_bytes == 0 || | ||
284 | ip->i_afp->if_real_bytes >= data_bytes); | ||
285 | ASSERT(ip->i_afp->if_u1.if_data != NULL); | 281 | ASSERT(ip->i_afp->if_u1.if_data != NULL); |
286 | xlog_copy_iovec(lv, vecp, XLOG_REG_TYPE_IATTR_LOCAL, | 282 | xlog_copy_iovec(lv, vecp, XLOG_REG_TYPE_IATTR_LOCAL, |
287 | ip->i_afp->if_u1.if_data, | 283 | ip->i_afp->if_u1.if_data, |