diff options
author | Joel Becker <jlbec@evilplan.org> | 2011-08-21 21:02:57 -0700 |
---|---|---|
committer | Joel Becker <jlbec@evilplan.org> | 2011-08-21 21:02:57 -0700 |
commit | 99b1bb61b225c3eb4d3b196d4f1d041695b19a7e (patch) | |
tree | 06cabdc34538f3b38a39e3b802ecc1a2ab2aae00 /fs/affs | |
parent | c7e25e6e0b0486492c5faaf6312b37413642c48e (diff) | |
parent | 93862d5e1ab875664c6cc95254fc365028a48bb1 (diff) | |
download | op-kernel-dev-99b1bb61b225c3eb4d3b196d4f1d041695b19a7e.zip op-kernel-dev-99b1bb61b225c3eb4d3b196d4f1d041695b19a7e.tar.gz |
Merge branch 'mw-3.1-jul25' of git://oss.oracle.com/git/smushran/linux-2.6 into ocfs2-fixes
Diffstat (limited to 'fs/affs')
-rw-r--r-- | fs/affs/affs.h | 2 | ||||
-rw-r--r-- | fs/affs/file.c | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/fs/affs/affs.h b/fs/affs/affs.h index 0e95f73..c2b9c79 100644 --- a/fs/affs/affs.h +++ b/fs/affs/affs.h @@ -182,7 +182,7 @@ extern int affs_add_entry(struct inode *dir, struct inode *inode, struct dent void affs_free_prealloc(struct inode *inode); extern void affs_truncate(struct inode *); -int affs_file_fsync(struct file *, int); +int affs_file_fsync(struct file *, loff_t, loff_t, int); /* dir.c */ diff --git a/fs/affs/file.c b/fs/affs/file.c index acf321b..2f4c935 100644 --- a/fs/affs/file.c +++ b/fs/affs/file.c @@ -923,14 +923,20 @@ affs_truncate(struct inode *inode) affs_free_prealloc(inode); } -int affs_file_fsync(struct file *filp, int datasync) +int affs_file_fsync(struct file *filp, loff_t start, loff_t end, int datasync) { struct inode *inode = filp->f_mapping->host; int ret, err; + err = filemap_write_and_wait_range(inode->i_mapping, start, end); + if (err) + return err; + + mutex_lock(&inode->i_mutex); ret = write_inode_now(inode, 0); err = sync_blockdev(inode->i_sb->s_bdev); if (!ret) ret = err; + mutex_unlock(&inode->i_mutex); return ret; } |