git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sh: convert /proc/cpu/aligmnent, /proc/cpu/kernel_alignment to seq_file
[safe/jmp/linux-2.6]
/
fs
/
afs
/
super.c
diff --git
a/fs/afs/super.c
b/fs/afs/super.c
index
250d8c4
..
e1ea1c2
100644
(file)
--- a/
fs/afs/super.c
+++ b/
fs/afs/super.c
@@
-18,6
+18,7
@@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
+#include <linux/smp_lock.h>
#include <linux/fs.h>
#include <linux/pagemap.h>
#include <linux/parser.h>
#include <linux/fs.h>
#include <linux/pagemap.h>
#include <linux/parser.h>
@@
-64,7
+65,7
@@
enum {
afs_opt_vol,
};
afs_opt_vol,
};
-static match_table_t afs_options_list = {
+static
const
match_table_t afs_options_list = {
{ afs_opt_cell, "cell=%s" },
{ afs_opt_rwpath, "rwpath" },
{ afs_opt_vol, "vol=%s" },
{ afs_opt_cell, "cell=%s" },
{ afs_opt_rwpath, "rwpath" },
{ afs_opt_vol, "vol=%s" },
@@
-405,21
+406,20
@@
static int afs_get_sb(struct file_system_type *fs_type,
sb->s_flags = flags;
ret = afs_fill_super(sb, ¶ms);
if (ret < 0) {
sb->s_flags = flags;
ret = afs_fill_super(sb, ¶ms);
if (ret < 0) {
- up_write(&sb->s_umount);
- deactivate_super(sb);
+ deactivate_locked_super(sb);
goto error;
}
goto error;
}
- s
b->s_options = new_opts
;
+ s
ave_mount_options(sb, new_opts)
;
sb->s_flags |= MS_ACTIVE;
} else {
_debug("reuse");
sb->s_flags |= MS_ACTIVE;
} else {
_debug("reuse");
- kfree(new_opts);
ASSERTCMP(sb->s_flags, &, MS_ACTIVE);
}
simple_set_mnt(mnt, sb);
afs_put_volume(params.volume);
afs_put_cell(params.cell);
ASSERTCMP(sb->s_flags, &, MS_ACTIVE);
}
simple_set_mnt(mnt, sb);
afs_put_volume(params.volume);
afs_put_cell(params.cell);
+ kfree(new_opts);
_leave(" = 0 [%p]", sb);
return 0;
_leave(" = 0 [%p]", sb);
return 0;
@@
-441,8
+441,12
@@
static void afs_put_super(struct super_block *sb)
_enter("");
_enter("");
+ lock_kernel();
+
afs_put_volume(as->volume);
afs_put_volume(as->volume);
+ unlock_kernel();
+
_leave("");
}
_leave("");
}