diff options
Diffstat (limited to 'fs/jfs/resize.c')
| -rw-r--r-- | fs/jfs/resize.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/jfs/resize.c b/fs/jfs/resize.c index 7f24a0bb08ca..1aba0039f1c9 100644 --- a/fs/jfs/resize.c +++ b/fs/jfs/resize.c | |||
| @@ -81,6 +81,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize) | |||
| 81 | struct inode *iplist[1]; | 81 | struct inode *iplist[1]; |
| 82 | struct jfs_superblock *j_sb, *j_sb2; | 82 | struct jfs_superblock *j_sb, *j_sb2; |
| 83 | uint old_agsize; | 83 | uint old_agsize; |
| 84 | int agsizechanged = 0; | ||
| 84 | struct buffer_head *bh, *bh2; | 85 | struct buffer_head *bh, *bh2; |
| 85 | 86 | ||
| 86 | /* If the volume hasn't grown, get out now */ | 87 | /* If the volume hasn't grown, get out now */ |
| @@ -333,6 +334,9 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize) | |||
| 333 | */ | 334 | */ |
| 334 | if ((rc = dbExtendFS(ipbmap, XAddress, nblocks))) | 335 | if ((rc = dbExtendFS(ipbmap, XAddress, nblocks))) |
| 335 | goto error_out; | 336 | goto error_out; |
| 337 | |||
| 338 | agsizechanged |= (bmp->db_agsize != old_agsize); | ||
| 339 | |||
| 336 | /* | 340 | /* |
| 337 | * the map now has extended to cover additional nblocks: | 341 | * the map now has extended to cover additional nblocks: |
| 338 | * dn_mapsize = oldMapsize + nblocks; | 342 | * dn_mapsize = oldMapsize + nblocks; |
| @@ -432,7 +436,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize) | |||
| 432 | * will correctly identify the new ag); | 436 | * will correctly identify the new ag); |
| 433 | */ | 437 | */ |
| 434 | /* if new AG size the same as old AG size, done! */ | 438 | /* if new AG size the same as old AG size, done! */ |
| 435 | if (bmp->db_agsize != old_agsize) { | 439 | if (agsizechanged) { |
| 436 | if ((rc = diExtendFS(ipimap, ipbmap))) | 440 | if ((rc = diExtendFS(ipimap, ipbmap))) |
| 437 | goto error_out; | 441 | goto error_out; |
| 438 | 442 | ||
