diff options
Diffstat (limited to 'fs/nilfs2/ioctl.c')
| -rw-r--r-- | fs/nilfs2/ioctl.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c index 2a70fce70c6..06658caa18b 100644 --- a/fs/nilfs2/ioctl.c +++ b/fs/nilfs2/ioctl.c @@ -692,8 +692,14 @@ static int nilfs_ioctl_sync(struct inode *inode, struct file *filp,  	if (ret < 0)  		return ret; +	nilfs = inode->i_sb->s_fs_info; +	if (nilfs_test_opt(nilfs, BARRIER)) { +		ret = blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL); +		if (ret == -EIO) +			return ret; +	} +  	if (argp != NULL) { -		nilfs = inode->i_sb->s_fs_info;  		down_read(&nilfs->ns_segctor_sem);  		cno = nilfs->ns_cno - 1;  		up_read(&nilfs->ns_segctor_sem);  |