git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'topic/hda' into for-linus
[pandora-kernel.git]
/
fs
/
9p
/
vfs_super.c
diff --git
a/fs/9p/vfs_super.c
b/fs/9p/vfs_super.c
index
5f8ab8a
..
ab5547f
100644
(file)
--- a/
fs/9p/vfs_super.c
+++ b/
fs/9p/vfs_super.c
@@
-37,6
+37,7
@@
#include <linux/mount.h>
#include <linux/idr.h>
#include <linux/sched.h>
#include <linux/mount.h>
#include <linux/idr.h>
#include <linux/sched.h>
+#include <linux/smp_lock.h>
#include <net/9p/9p.h>
#include <net/9p/client.h>
#include <net/9p/9p.h>
#include <net/9p/client.h>
@@
-155,6
+156,7
@@
static int v9fs_get_sb(struct file_system_type *fs_type, int flags,
root = d_alloc_root(inode);
if (!root) {
root = d_alloc_root(inode);
if (!root) {
+ iput(inode);
retval = -ENOMEM;
goto release_sb;
}
retval = -ENOMEM;
goto release_sb;
}
@@
-173,10
+175,7
@@
P9_DPRINTK(P9_DEBUG_VFS, " simple set mount, return 0\n");
return 0;
release_sb:
return 0;
release_sb:
- if (sb) {
- up_write(&sb->s_umount);
- deactivate_super(sb);
- }
+ deactivate_locked_super(sb);
free_stat:
kfree(st);
free_stat:
kfree(st);
@@
-230,9
+229,12
@@
static int v9fs_show_options(struct seq_file *m, struct vfsmount *mnt)
static void
v9fs_umount_begin(struct super_block *sb)
{
static void
v9fs_umount_begin(struct super_block *sb)
{
- struct v9fs_session_info *v9ses
= sb->s_fs_info
;
+ struct v9fs_session_info *v9ses;
+ lock_kernel();
+ v9ses = sb->s_fs_info;
v9fs_session_cancel(v9ses);
v9fs_session_cancel(v9ses);
+ unlock_kernel();
}
static const struct super_operations v9fs_super_ops = {
}
static const struct super_operations v9fs_super_ops = {