diff options
Diffstat (limited to 'fs/xfs/xfs_dir2.c')
| -rw-r--r-- | fs/xfs/xfs_dir2.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c index 80e0dc51361c..1afb12278b8d 100644 --- a/fs/xfs/xfs_dir2.c +++ b/fs/xfs/xfs_dir2.c | |||
| @@ -525,11 +525,13 @@ xfs_dir2_grow_inode( | |||
| 525 | xfs_mount_t *mp; | 525 | xfs_mount_t *mp; |
| 526 | int nmap; /* number of bmap entries */ | 526 | int nmap; /* number of bmap entries */ |
| 527 | xfs_trans_t *tp; | 527 | xfs_trans_t *tp; |
| 528 | xfs_drfsbno_t nblks; | ||
| 528 | 529 | ||
| 529 | xfs_dir2_trace_args_s("grow_inode", args, space); | 530 | xfs_dir2_trace_args_s("grow_inode", args, space); |
| 530 | dp = args->dp; | 531 | dp = args->dp; |
| 531 | tp = args->trans; | 532 | tp = args->trans; |
| 532 | mp = dp->i_mount; | 533 | mp = dp->i_mount; |
| 534 | nblks = dp->i_d.di_nblocks; | ||
| 533 | /* | 535 | /* |
| 534 | * Set lowest possible block in the space requested. | 536 | * Set lowest possible block in the space requested. |
| 535 | */ | 537 | */ |
| @@ -622,7 +624,11 @@ xfs_dir2_grow_inode( | |||
| 622 | */ | 624 | */ |
| 623 | if (mapp != &map) | 625 | if (mapp != &map) |
| 624 | kmem_free(mapp); | 626 | kmem_free(mapp); |
| 627 | |||
| 628 | /* account for newly allocated blocks in reserved blocks total */ | ||
| 629 | args->total -= dp->i_d.di_nblocks - nblks; | ||
| 625 | *dbp = xfs_dir2_da_to_db(mp, (xfs_dablk_t)bno); | 630 | *dbp = xfs_dir2_da_to_db(mp, (xfs_dablk_t)bno); |
| 631 | |||
| 626 | /* | 632 | /* |
| 627 | * Update file's size if this is the data space and it grew. | 633 | * Update file's size if this is the data space and it grew. |
| 628 | */ | 634 | */ |
