diff options
author | Joel Becker <jlbec@evilplan.org> | 2011-08-22 06:02:57 +0200 |
---|---|---|
committer | Joel Becker <jlbec@evilplan.org> | 2011-08-22 06:02:57 +0200 |
commit | 99b1bb61b225c3eb4d3b196d4f1d041695b19a7e (patch) | |
tree | 06cabdc34538f3b38a39e3b802ecc1a2ab2aae00 /fs/sync.c | |
parent | ocfs2: Avoid livelock in ocfs2_readpage() (diff) | |
parent | ocfs2: Implement llseek() (diff) | |
download | linux-99b1bb61b225c3eb4d3b196d4f1d041695b19a7e.tar.xz linux-99b1bb61b225c3eb4d3b196d4f1d041695b19a7e.zip |
Merge branch 'mw-3.1-jul25' of git://oss.oracle.com/git/smushran/linux-2.6 into ocfs2-fixes
Diffstat (limited to 'fs/sync.c')
-rw-r--r-- | fs/sync.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/fs/sync.c b/fs/sync.c index c38ec163da6c..c98a7477edfd 100644 --- a/fs/sync.c +++ b/fs/sync.c @@ -165,28 +165,9 @@ SYSCALL_DEFINE1(syncfs, int, fd) */ int vfs_fsync_range(struct file *file, loff_t start, loff_t end, int datasync) { - struct address_space *mapping = file->f_mapping; - int err, ret; - - if (!file->f_op || !file->f_op->fsync) { - ret = -EINVAL; - goto out; - } - - ret = filemap_write_and_wait_range(mapping, start, end); - - /* - * We need to protect against concurrent writers, which could cause - * livelocks in fsync_buffers_list(). - */ - mutex_lock(&mapping->host->i_mutex); - err = file->f_op->fsync(file, datasync); - if (!ret) - ret = err; - mutex_unlock(&mapping->host->i_mutex); - -out: - return ret; + if (!file->f_op || !file->f_op->fsync) + return -EINVAL; + return file->f_op->fsync(file, start, end, datasync); } EXPORT_SYMBOL(vfs_fsync_range); |