aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-04-02 22:48:54 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-04-02 22:48:54 -0400
commit0afa80ab6ff9aac57f118463699cee306ad6ed8a (patch)
treec5002a93cf59827fb5f8506ff91a77cb826d90ae /fs
parent5193d7a7f500cfbbfc0de221e808208199723521 (diff)
parentb7b7fa43103a9fb30dbcc60cbd5161fdfc25f904 (diff)
Merge branch 'reiserfs/kill-bkl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing
* 'reiserfs/kill-bkl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing: reiserfs: Fix locking BUG during mount failure
Diffstat (limited to 'fs')
-rw-r--r--fs/reiserfs/super.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
index 04bf5d791bda..ab190511bc18 100644
--- a/fs/reiserfs/super.c
+++ b/fs/reiserfs/super.c
@@ -1618,10 +1618,8 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
1618 save_mount_options(s, data); 1618 save_mount_options(s, data);
1619 1619
1620 sbi = kzalloc(sizeof(struct reiserfs_sb_info), GFP_KERNEL); 1620 sbi = kzalloc(sizeof(struct reiserfs_sb_info), GFP_KERNEL);
1621 if (!sbi) { 1621 if (!sbi)
1622 errval = -ENOMEM; 1622 return -ENOMEM;
1623 goto error_alloc;
1624 }
1625 s->s_fs_info = sbi; 1623 s->s_fs_info = sbi;
1626 /* Set default values for options: non-aggressive tails, RO on errors */ 1624 /* Set default values for options: non-aggressive tails, RO on errors */
1627 REISERFS_SB(s)->s_mount_opt |= (1 << REISERFS_SMALLTAIL); 1625 REISERFS_SB(s)->s_mount_opt |= (1 << REISERFS_SMALLTAIL);
@@ -1878,12 +1876,12 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
1878 return (0); 1876 return (0);
1879 1877
1880error: 1878error:
1881 reiserfs_write_unlock(s);
1882error_alloc:
1883 if (jinit_done) { /* kill the commit thread, free journal ram */ 1879 if (jinit_done) { /* kill the commit thread, free journal ram */
1884 journal_release_error(NULL, s); 1880 journal_release_error(NULL, s);
1885 } 1881 }
1886 1882
1883 reiserfs_write_unlock(s);
1884
1887 reiserfs_free_bitmap_cache(s); 1885 reiserfs_free_bitmap_cache(s);
1888 if (SB_BUFFER_WITH_SB(s)) 1886 if (SB_BUFFER_WITH_SB(s))
1889 brelse(SB_BUFFER_WITH_SB(s)); 1887 brelse(SB_BUFFER_WITH_SB(s));