git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
drivers
/
isdn
/
capi
/
capifs.c
diff --git
a/drivers/isdn/capi/capifs.c
b/drivers/isdn/capi/capifs.c
index
6b4bb00
..
0a37ade
100644
(file)
--- a/
drivers/isdn/capi/capifs.c
+++ b/
drivers/isdn/capi/capifs.c
@@
-15,6
+15,9
@@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/ctype.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/ctype.h>
+#include <linux/sched.h> /* current */
+
+#include "capifs.h"
MODULE_DESCRIPTION("CAPI4Linux: /dev/capi/ filesystem");
MODULE_AUTHOR("Carsten Paeth");
MODULE_DESCRIPTION("CAPI4Linux: /dev/capi/ filesystem");
MODULE_AUTHOR("Carsten Paeth");
@@
-93,6
+96,7
@@
capifs_fill_super(struct super_block *s, void *data, int silent)
s->s_blocksize_bits = 10;
s->s_magic = CAPIFS_SUPER_MAGIC;
s->s_op = &capifs_sops;
s->s_blocksize_bits = 10;
s->s_magic = CAPIFS_SUPER_MAGIC;
s->s_op = &capifs_sops;
+ s->s_time_gran = 1;
inode = new_inode(s);
if (!inode)
inode = new_inode(s);
if (!inode)
@@
-134,7
+138,7
@@
static struct dentry *get_node(int num)
{
char s[10];
struct dentry *root = capifs_root;
{
char s[10];
struct dentry *root = capifs_root;
-
down(&root->d_inode->i_sem
);
+
mutex_lock(&root->d_inode->i_mutex
);
return lookup_one_len(s, root, sprintf(s, "%d", num));
}
return lookup_one_len(s, root, sprintf(s, "%d", num));
}
@@
-155,7
+159,7
@@
void capifs_new_ncci(unsigned int number, dev_t device)
dentry = get_node(number);
if (!IS_ERR(dentry) && !dentry->d_inode)
d_instantiate(dentry, inode);
dentry = get_node(number);
if (!IS_ERR(dentry) && !dentry->d_inode)
d_instantiate(dentry, inode);
-
up(&capifs_root->d_inode->i_sem
);
+
mutex_unlock(&capifs_root->d_inode->i_mutex
);
}
void capifs_free_ncci(unsigned int number)
}
void capifs_free_ncci(unsigned int number)
@@
-171,7
+175,7
@@
void capifs_free_ncci(unsigned int number)
}
dput(dentry);
}
}
dput(dentry);
}
-
up(&capifs_root->d_inode->i_sem
);
+
mutex_unlock(&capifs_root->d_inode->i_mutex
);
}
static int __init capifs_init(void)
}
static int __init capifs_init(void)
@@
-190,8
+194,10
@@
static int __init capifs_init(void)
err = register_filesystem(&capifs_fs_type);
if (!err) {
capifs_mnt = kern_mount(&capifs_fs_type);
err = register_filesystem(&capifs_fs_type);
if (!err) {
capifs_mnt = kern_mount(&capifs_fs_type);
- if (IS_ERR(capifs_mnt))
+ if (IS_ERR(capifs_mnt))
{
err = PTR_ERR(capifs_mnt);
err = PTR_ERR(capifs_mnt);
+ unregister_filesystem(&capifs_fs_type);
+ }
}
if (!err)
printk(KERN_NOTICE "capifs: Rev %s\n", rev);
}
if (!err)
printk(KERN_NOTICE "capifs: Rev %s\n", rev);