diff options
Diffstat (limited to 'fs/coda')
-rw-r--r-- | fs/coda/Kconfig | 21 | ||||
-rw-r--r-- | fs/coda/file.c | 12 | ||||
-rw-r--r-- | fs/coda/sysctl.c | 5 |
3 files changed, 27 insertions, 11 deletions
diff --git a/fs/coda/Kconfig b/fs/coda/Kconfig new file mode 100644 index 000000000000..c0e5a7fad06d --- /dev/null +++ b/fs/coda/Kconfig | |||
@@ -0,0 +1,21 @@ | |||
1 | config CODA_FS | ||
2 | tristate "Coda file system support (advanced network fs)" | ||
3 | depends on INET | ||
4 | help | ||
5 | Coda is an advanced network file system, similar to NFS in that it | ||
6 | enables you to mount file systems of a remote server and access them | ||
7 | with regular Unix commands as if they were sitting on your hard | ||
8 | disk. Coda has several advantages over NFS: support for | ||
9 | disconnected operation (e.g. for laptops), read/write server | ||
10 | replication, security model for authentication and encryption, | ||
11 | persistent client caches and write back caching. | ||
12 | |||
13 | If you say Y here, your Linux box will be able to act as a Coda | ||
14 | *client*. You will need user level code as well, both for the | ||
15 | client and server. Servers are currently user level, i.e. they need | ||
16 | no kernel support. Please read | ||
17 | <file:Documentation/filesystems/coda.txt> and check out the Coda | ||
18 | home page <http://www.coda.cs.cmu.edu/>. | ||
19 | |||
20 | To compile the coda client support as a module, choose M here: the | ||
21 | module will be called coda. | ||
diff --git a/fs/coda/file.c b/fs/coda/file.c index 466303db2df6..6a347fbc998a 100644 --- a/fs/coda/file.c +++ b/fs/coda/file.c | |||
@@ -201,8 +201,7 @@ int coda_release(struct inode *coda_inode, struct file *coda_file) | |||
201 | int coda_fsync(struct file *coda_file, struct dentry *coda_dentry, int datasync) | 201 | int coda_fsync(struct file *coda_file, struct dentry *coda_dentry, int datasync) |
202 | { | 202 | { |
203 | struct file *host_file; | 203 | struct file *host_file; |
204 | struct dentry *host_dentry; | 204 | struct inode *coda_inode = coda_dentry->d_inode; |
205 | struct inode *host_inode, *coda_inode = coda_dentry->d_inode; | ||
206 | struct coda_file_info *cfi; | 205 | struct coda_file_info *cfi; |
207 | int err = 0; | 206 | int err = 0; |
208 | 207 | ||
@@ -214,14 +213,7 @@ int coda_fsync(struct file *coda_file, struct dentry *coda_dentry, int datasync) | |||
214 | BUG_ON(!cfi || cfi->cfi_magic != CODA_MAGIC); | 213 | BUG_ON(!cfi || cfi->cfi_magic != CODA_MAGIC); |
215 | host_file = cfi->cfi_container; | 214 | host_file = cfi->cfi_container; |
216 | 215 | ||
217 | if (host_file->f_op && host_file->f_op->fsync) { | 216 | err = vfs_fsync(host_file, host_file->f_path.dentry, datasync); |
218 | host_dentry = host_file->f_path.dentry; | ||
219 | host_inode = host_dentry->d_inode; | ||
220 | mutex_lock(&host_inode->i_mutex); | ||
221 | err = host_file->f_op->fsync(host_file, host_dentry, datasync); | ||
222 | mutex_unlock(&host_inode->i_mutex); | ||
223 | } | ||
224 | |||
225 | if ( !err && !datasync ) { | 217 | if ( !err && !datasync ) { |
226 | lock_kernel(); | 218 | lock_kernel(); |
227 | err = venus_fsync(coda_inode->i_sb, coda_i2f(coda_inode)); | 219 | err = venus_fsync(coda_inode->i_sb, coda_i2f(coda_inode)); |
diff --git a/fs/coda/sysctl.c b/fs/coda/sysctl.c index 81b7771c6465..43c96ce29614 100644 --- a/fs/coda/sysctl.c +++ b/fs/coda/sysctl.c | |||
@@ -11,7 +11,9 @@ | |||
11 | 11 | ||
12 | #include "coda_int.h" | 12 | #include "coda_int.h" |
13 | 13 | ||
14 | #ifdef CONFIG_SYSCTL | ||
14 | static struct ctl_table_header *fs_table_header; | 15 | static struct ctl_table_header *fs_table_header; |
16 | #endif | ||
15 | 17 | ||
16 | static ctl_table coda_table[] = { | 18 | static ctl_table coda_table[] = { |
17 | { | 19 | { |
@@ -41,6 +43,7 @@ static ctl_table coda_table[] = { | |||
41 | {} | 43 | {} |
42 | }; | 44 | }; |
43 | 45 | ||
46 | #ifdef CONFIG_SYSCTL | ||
44 | static ctl_table fs_table[] = { | 47 | static ctl_table fs_table[] = { |
45 | { | 48 | { |
46 | .ctl_name = CTL_UNNUMBERED, | 49 | .ctl_name = CTL_UNNUMBERED, |
@@ -50,7 +53,7 @@ static ctl_table fs_table[] = { | |||
50 | }, | 53 | }, |
51 | {} | 54 | {} |
52 | }; | 55 | }; |
53 | 56 | #endif | |
54 | 57 | ||
55 | void coda_sysctl_init(void) | 58 | void coda_sysctl_init(void) |
56 | { | 59 | { |