aboutsummaryrefslogtreecommitdiffstats
path: root/fs/reiserfs/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/reiserfs/super.c')
-rw-r--r--fs/reiserfs/super.c39
1 files changed, 9 insertions, 30 deletions
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
index c78e99e196fa..c89aa2338191 100644
--- a/fs/reiserfs/super.c
+++ b/fs/reiserfs/super.c
@@ -432,7 +432,6 @@ int remove_save_link(struct inode *inode, int truncate)
432 432
433static void reiserfs_put_super(struct super_block *s) 433static void reiserfs_put_super(struct super_block *s)
434{ 434{
435 int i;
436 struct reiserfs_transaction_handle th; 435 struct reiserfs_transaction_handle th;
437 th.t_trans_id = 0; 436 th.t_trans_id = 0;
438 437
@@ -462,10 +461,7 @@ static void reiserfs_put_super(struct super_block *s)
462 */ 461 */
463 journal_release(&th, s); 462 journal_release(&th, s);
464 463
465 for (i = 0; i < SB_BMAP_NR(s); i++) 464 reiserfs_free_bitmap_cache(s);
466 brelse(SB_AP_BITMAP(s)[i].bh);
467
468 vfree(SB_AP_BITMAP(s));
469 465
470 brelse(SB_BUFFER_WITH_SB(s)); 466 brelse(SB_BUFFER_WITH_SB(s));
471 467
@@ -1344,7 +1340,6 @@ static int read_super_block(struct super_block *s, int offset)
1344/* after journal replay, reread all bitmap and super blocks */ 1340/* after journal replay, reread all bitmap and super blocks */
1345static int reread_meta_blocks(struct super_block *s) 1341static int reread_meta_blocks(struct super_block *s)
1346{ 1342{
1347 int i;
1348 ll_rw_block(READ, 1, &(SB_BUFFER_WITH_SB(s))); 1343 ll_rw_block(READ, 1, &(SB_BUFFER_WITH_SB(s)));
1349 wait_on_buffer(SB_BUFFER_WITH_SB(s)); 1344 wait_on_buffer(SB_BUFFER_WITH_SB(s));
1350 if (!buffer_uptodate(SB_BUFFER_WITH_SB(s))) { 1345 if (!buffer_uptodate(SB_BUFFER_WITH_SB(s))) {
@@ -1353,20 +1348,7 @@ static int reread_meta_blocks(struct super_block *s)
1353 return 1; 1348 return 1;
1354 } 1349 }
1355 1350
1356 for (i = 0; i < SB_BMAP_NR(s); i++) {
1357 ll_rw_block(READ, 1, &(SB_AP_BITMAP(s)[i].bh));
1358 wait_on_buffer(SB_AP_BITMAP(s)[i].bh);
1359 if (!buffer_uptodate(SB_AP_BITMAP(s)[i].bh)) {
1360 reiserfs_warning(s,
1361 "reread_meta_blocks, error reading bitmap block number %d at %llu",
1362 i,
1363 (unsigned long long)SB_AP_BITMAP(s)[i].
1364 bh->b_blocknr);
1365 return 1;
1366 }
1367 }
1368 return 0; 1351 return 0;
1369
1370} 1352}
1371 1353
1372///////////////////////////////////////////////////// 1354/////////////////////////////////////////////////////
@@ -1547,7 +1529,6 @@ static int function2code(hashf_t func)
1547static int reiserfs_fill_super(struct super_block *s, void *data, int silent) 1529static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
1548{ 1530{
1549 struct inode *root_inode; 1531 struct inode *root_inode;
1550 int j;
1551 struct reiserfs_transaction_handle th; 1532 struct reiserfs_transaction_handle th;
1552 int old_format = 0; 1533 int old_format = 0;
1553 unsigned long blocks; 1534 unsigned long blocks;
@@ -1793,19 +1774,17 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
1793 if (jinit_done) { /* kill the commit thread, free journal ram */ 1774 if (jinit_done) { /* kill the commit thread, free journal ram */
1794 journal_release_error(NULL, s); 1775 journal_release_error(NULL, s);
1795 } 1776 }
1796 if (SB_DISK_SUPER_BLOCK(s)) { 1777
1797 for (j = 0; j < SB_BMAP_NR(s); j++) { 1778 reiserfs_free_bitmap_cache(s);
1798 if (SB_AP_BITMAP(s))
1799 brelse(SB_AP_BITMAP(s)[j].bh);
1800 }
1801 vfree(SB_AP_BITMAP(s));
1802 }
1803 if (SB_BUFFER_WITH_SB(s)) 1779 if (SB_BUFFER_WITH_SB(s))
1804 brelse(SB_BUFFER_WITH_SB(s)); 1780 brelse(SB_BUFFER_WITH_SB(s));
1805#ifdef CONFIG_QUOTA 1781#ifdef CONFIG_QUOTA
1806 for (j = 0; j < MAXQUOTAS; j++) { 1782 {
1807 kfree(sbi->s_qf_names[j]); 1783 int j;
1808 sbi->s_qf_names[j] = NULL; 1784 for (j = 0; j < MAXQUOTAS; j++) {
1785 kfree(sbi->s_qf_names[j]);
1786 sbi->s_qf_names[j] = NULL;
1787 }
1809 } 1788 }
1810#endif 1789#endif
1811 kfree(sbi); 1790 kfree(sbi);