diff options
Diffstat (limited to 'fs/reiserfs/super.c')
-rw-r--r-- | fs/reiserfs/super.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 0ae6486d9046..3567fb9e3fb1 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
@@ -448,13 +448,11 @@ int remove_save_link(struct inode *inode, int truncate) | |||
448 | static void reiserfs_kill_sb(struct super_block *s) | 448 | static void reiserfs_kill_sb(struct super_block *s) |
449 | { | 449 | { |
450 | if (REISERFS_SB(s)) { | 450 | if (REISERFS_SB(s)) { |
451 | #ifdef CONFIG_REISERFS_FS_XATTR | ||
452 | if (REISERFS_SB(s)->xattr_root) { | 451 | if (REISERFS_SB(s)->xattr_root) { |
453 | d_invalidate(REISERFS_SB(s)->xattr_root); | 452 | d_invalidate(REISERFS_SB(s)->xattr_root); |
454 | dput(REISERFS_SB(s)->xattr_root); | 453 | dput(REISERFS_SB(s)->xattr_root); |
455 | REISERFS_SB(s)->xattr_root = NULL; | 454 | REISERFS_SB(s)->xattr_root = NULL; |
456 | } | 455 | } |
457 | #endif | ||
458 | if (REISERFS_SB(s)->priv_root) { | 456 | if (REISERFS_SB(s)->priv_root) { |
459 | d_invalidate(REISERFS_SB(s)->priv_root); | 457 | d_invalidate(REISERFS_SB(s)->priv_root); |
460 | dput(REISERFS_SB(s)->priv_root); | 458 | dput(REISERFS_SB(s)->priv_root); |
@@ -1316,8 +1314,7 @@ static int reiserfs_remount(struct super_block *s, int *mount_flags, char *arg) | |||
1316 | } | 1314 | } |
1317 | 1315 | ||
1318 | out_ok: | 1316 | out_ok: |
1319 | kfree(s->s_options); | 1317 | replace_mount_options(s, new_opts); |
1320 | s->s_options = new_opts; | ||
1321 | return 0; | 1318 | return 0; |
1322 | 1319 | ||
1323 | out_err: | 1320 | out_err: |
@@ -1842,7 +1839,8 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent) | |||
1842 | goto error; | 1839 | goto error; |
1843 | } | 1840 | } |
1844 | 1841 | ||
1845 | if ((errval = reiserfs_xattr_init(s, s->s_flags))) { | 1842 | if ((errval = reiserfs_lookup_privroot(s)) || |
1843 | (errval = reiserfs_xattr_init(s, s->s_flags))) { | ||
1846 | dput(s->s_root); | 1844 | dput(s->s_root); |
1847 | s->s_root = NULL; | 1845 | s->s_root = NULL; |
1848 | goto error; | 1846 | goto error; |
@@ -1855,7 +1853,8 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent) | |||
1855 | reiserfs_info(s, "using 3.5.x disk format\n"); | 1853 | reiserfs_info(s, "using 3.5.x disk format\n"); |
1856 | } | 1854 | } |
1857 | 1855 | ||
1858 | if ((errval = reiserfs_xattr_init(s, s->s_flags))) { | 1856 | if ((errval = reiserfs_lookup_privroot(s)) || |
1857 | (errval = reiserfs_xattr_init(s, s->s_flags))) { | ||
1859 | dput(s->s_root); | 1858 | dput(s->s_root); |
1860 | s->s_root = NULL; | 1859 | s->s_root = NULL; |
1861 | goto error; | 1860 | goto error; |