diff options
Diffstat (limited to 'fs/ecryptfs/file.c')
| -rw-r--r-- | fs/ecryptfs/file.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c index eb3dc4c7ac06..713834371229 100644 --- a/fs/ecryptfs/file.c +++ b/fs/ecryptfs/file.c | |||
| @@ -275,18 +275,9 @@ static int ecryptfs_release(struct inode *inode, struct file *file) | |||
| 275 | static int | 275 | static int |
| 276 | ecryptfs_fsync(struct file *file, struct dentry *dentry, int datasync) | 276 | ecryptfs_fsync(struct file *file, struct dentry *dentry, int datasync) |
| 277 | { | 277 | { |
| 278 | struct file *lower_file = ecryptfs_file_to_lower(file); | 278 | return vfs_fsync(ecryptfs_file_to_lower(file), |
| 279 | struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); | 279 | ecryptfs_dentry_to_lower(dentry), |
| 280 | struct inode *lower_inode = lower_dentry->d_inode; | 280 | datasync); |
| 281 | int rc = -EINVAL; | ||
| 282 | |||
| 283 | if (lower_inode->i_fop->fsync) { | ||
| 284 | mutex_lock(&lower_inode->i_mutex); | ||
| 285 | rc = lower_inode->i_fop->fsync(lower_file, lower_dentry, | ||
| 286 | datasync); | ||
| 287 | mutex_unlock(&lower_inode->i_mutex); | ||
| 288 | } | ||
| 289 | return rc; | ||
| 290 | } | 281 | } |
| 291 | 282 | ||
| 292 | static int ecryptfs_fasync(int fd, struct file *file, int flag) | 283 | static int ecryptfs_fasync(int fd, struct file *file, int flag) |
