]> Pileus Git - ~andy/linux/blobdiff - fs/nilfs2/ioctl.c
Merge branch 'stable/for-jens-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git...
[~andy/linux] / fs / nilfs2 / ioctl.c
index 2a70fce70c65be1151783e3aba3c221e39642ba7..06658caa18bd229ab42e01b876538efaf2c48882 100644 (file)
@@ -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);