diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/nilfs2/ioctl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c index 8e5cad020c30..313d0a21da48 100644 --- a/fs/nilfs2/ioctl.c +++ b/fs/nilfs2/ioctl.c | |||
| @@ -601,13 +601,17 @@ static int nilfs_ioctl_sync(struct inode *inode, struct file *filp, | |||
| 601 | { | 601 | { |
| 602 | __u64 cno; | 602 | __u64 cno; |
| 603 | int ret; | 603 | int ret; |
| 604 | struct the_nilfs *nilfs; | ||
| 604 | 605 | ||
| 605 | ret = nilfs_construct_segment(inode->i_sb); | 606 | ret = nilfs_construct_segment(inode->i_sb); |
| 606 | if (ret < 0) | 607 | if (ret < 0) |
| 607 | return ret; | 608 | return ret; |
| 608 | 609 | ||
| 609 | if (argp != NULL) { | 610 | if (argp != NULL) { |
| 610 | cno = NILFS_SB(inode->i_sb)->s_nilfs->ns_cno - 1; | 611 | nilfs = NILFS_SB(inode->i_sb)->s_nilfs; |
| 612 | down_read(&nilfs->ns_segctor_sem); | ||
| 613 | cno = nilfs->ns_cno - 1; | ||
| 614 | up_read(&nilfs->ns_segctor_sem); | ||
| 611 | if (copy_to_user(argp, &cno, sizeof(cno))) | 615 | if (copy_to_user(argp, &cno, sizeof(cno))) |
| 612 | return -EFAULT; | 616 | return -EFAULT; |
| 613 | } | 617 | } |
