patch-2.4.0-test9 linux/fs/coda/file.c
Next file: linux/fs/coda/inode.c
Previous file: linux/fs/coda/dir.c
Back to the patch index
Back to the overall index
- Lines: 33
- Date:
Tue Sep 19 15:08:59 2000
- Orig file:
v2.4.0-test8/linux/fs/coda/file.c
- Orig date:
Thu Jun 29 16:20:07 2000
diff -u --recursive --new-file v2.4.0-test8/linux/fs/coda/file.c linux/fs/coda/file.c
@@ -23,18 +23,21 @@
#include <linux/coda_linux.h>
#include <linux/coda_fs_i.h>
#include <linux/coda_psdev.h>
-#include <linux/coda_cache.h>
#include <linux/coda_proc.h>
static ssize_t
coda_file_write(struct file *file,const char *buf,size_t count,loff_t *ppos)
{
struct inode *inode = file->f_dentry->d_inode;
+ struct inode *container = (struct inode*)inode->i_mapping->host;
ssize_t n;
+ down(&container->i_sem);
+
n = generic_file_write(file, buf, count, ppos);
+ inode->i_size = container->i_size;
- inode->i_size = ((struct inode*)inode->i_mapping->host)->i_size;
+ up(&container->i_sem);
return n;
}
@@ -63,7 +66,7 @@
result = file_fsync(NULL, &cont_dentry, datasync);
up(&cont_dentry.d_inode->i_sem);
- if ( result == 0 ) {
+ if ( result == 0 && datasync == 0 ) {
lock_kernel();
result = venus_fsync(inode->i_sb, coda_i2f(inode));
unlock_kernel();
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)