diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-08-24 12:25:44 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-08-24 12:25:54 +0200 | 
| commit | 5f9ece02401116b29eb04396b99ea092acb75dd8 (patch) | |
| tree | e10386e2dc63c275646b4eb0bed857da7bf86c6a /fs/exofs/file.c | |
| parent | 9f51e24ee8b5a1595b6a5ac0c2be278a16488e75 (diff) | |
| parent | 422bef879e84104fee6dc68ded0e371dbeb5f88e (diff) | |
| download | olio-linux-3.10-5f9ece02401116b29eb04396b99ea092acb75dd8.tar.xz olio-linux-3.10-5f9ece02401116b29eb04396b99ea092acb75dd8.zip  | |
Merge commit 'v2.6.31-rc7' into x86/cleanups
Merge reason: we were on -rc1 before - go up to -rc7
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'fs/exofs/file.c')
| -rw-r--r-- | fs/exofs/file.c | 21 | 
1 files changed, 13 insertions, 8 deletions
diff --git a/fs/exofs/file.c b/fs/exofs/file.c index 6ed7fe48475..839b9dc1e70 100644 --- a/fs/exofs/file.c +++ b/fs/exofs/file.c @@ -1,8 +1,6 @@  /*   * Copyright (C) 2005, 2006 - * Avishay Traeger (avishay@gmail.com) (avishay@il.ibm.com) - * Copyright (C) 2005, 2006 - * International Business Machines + * Avishay Traeger (avishay@gmail.com)   * Copyright (C) 2008, 2009   * Boaz Harrosh <bharrosh@panasas.com>   * @@ -47,16 +45,23 @@ static int exofs_file_fsync(struct file *filp, struct dentry *dentry,  {  	int ret;  	struct address_space *mapping = filp->f_mapping; +	struct inode *inode = dentry->d_inode; +	struct super_block *sb;  	ret = filemap_write_and_wait(mapping);  	if (ret)  		return ret; -	/*Note: file_fsync below also calles sync_blockdev, which is a no-op -	 *      for exofs, but other then that it does sync_inode and -	 *      sync_superblock which is what we need here. -	 */ -	return file_fsync(filp, dentry, datasync); +	/* sync the inode attributes */ +	ret = write_inode_now(inode, 1); + +	/* This is a good place to write the sb */ +	/* TODO: Sechedule an sb-sync on create */ +	sb = inode->i_sb; +	if (sb->s_dirt) +		exofs_sync_fs(sb, 1); + +	return ret;  }  static int exofs_flush(struct file *file, fl_owner_t id)  |