diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 13:26:37 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 13:26:37 -0400 |
commit | e4ce30f3779c2ddaa7dfaa4042209e5dbacbada5 (patch) | |
tree | cc64c1dcd16b5dbf71ebc8338b339e6fb04abaee /fs/ext4/ioctl.c | |
parent | b899ebeb05da4287ce845976727e3e83dadd25d5 (diff) | |
parent | 14ece1028b3ed53ffec1b1213ffc6acaf79ad77c (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)
ext4: Make fsync sync new parent directories in no-journal mode
ext4: Drop whitespace at end of lines
ext4: Fix compat EXT4_IOC_ADD_GROUP
ext4: Conditionally define compat ioctl numbers
tracing: Convert more ext4 events to DEFINE_EVENT
ext4: Add new tracepoints to track mballoc's buddy bitmap loads
ext4: Add a missing trace hook
ext4: restart ext4_ext_remove_space() after transaction restart
ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted
ext4: Avoid crashing on NULL ptr dereference on a filesystem error
ext4: Use bitops to read/modify i_flags in struct ext4_inode_info
ext4: Convert calls of ext4_error() to EXT4_ERROR_INODE()
ext4: Convert callers of ext4_get_blocks() to use ext4_map_blocks()
ext4: Add new abstraction ext4_map_blocks() underneath ext4_get_blocks()
ext4: Use our own write_cache_pages()
ext4: Show journal_checksum option
ext4: Fix for ext4_mb_collect_stats()
ext4: check for a good block group before loading buddy pages
ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate
ext4: Remove extraneous newlines in ext4_msg() calls
...
Fixed up trivial conflict in fs/ext4/fsync.c
Diffstat (limited to 'fs/ext4/ioctl.c')
-rw-r--r-- | fs/ext4/ioctl.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 016d0249294f..bf5ae883b1bd 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c | |||
@@ -258,7 +258,7 @@ setversion_out: | |||
258 | if (me.moved_len > 0) | 258 | if (me.moved_len > 0) |
259 | file_remove_suid(donor_filp); | 259 | file_remove_suid(donor_filp); |
260 | 260 | ||
261 | if (copy_to_user((struct move_extent __user *)arg, | 261 | if (copy_to_user((struct move_extent __user *)arg, |
262 | &me, sizeof(me))) | 262 | &me, sizeof(me))) |
263 | err = -EFAULT; | 263 | err = -EFAULT; |
264 | mext_out: | 264 | mext_out: |
@@ -373,7 +373,30 @@ long ext4_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
373 | case EXT4_IOC32_SETRSVSZ: | 373 | case EXT4_IOC32_SETRSVSZ: |
374 | cmd = EXT4_IOC_SETRSVSZ; | 374 | cmd = EXT4_IOC_SETRSVSZ; |
375 | break; | 375 | break; |
376 | case EXT4_IOC_GROUP_ADD: | 376 | case EXT4_IOC32_GROUP_ADD: { |
377 | struct compat_ext4_new_group_input __user *uinput; | ||
378 | struct ext4_new_group_input input; | ||
379 | mm_segment_t old_fs; | ||
380 | int err; | ||
381 | |||
382 | uinput = compat_ptr(arg); | ||
383 | err = get_user(input.group, &uinput->group); | ||
384 | err |= get_user(input.block_bitmap, &uinput->block_bitmap); | ||
385 | err |= get_user(input.inode_bitmap, &uinput->inode_bitmap); | ||
386 | err |= get_user(input.inode_table, &uinput->inode_table); | ||
387 | err |= get_user(input.blocks_count, &uinput->blocks_count); | ||
388 | err |= get_user(input.reserved_blocks, | ||
389 | &uinput->reserved_blocks); | ||
390 | if (err) | ||
391 | return -EFAULT; | ||
392 | old_fs = get_fs(); | ||
393 | set_fs(KERNEL_DS); | ||
394 | err = ext4_ioctl(file, EXT4_IOC_GROUP_ADD, | ||
395 | (unsigned long) &input); | ||
396 | set_fs(old_fs); | ||
397 | return err; | ||
398 | } | ||
399 | case EXT4_IOC_MOVE_EXT: | ||
377 | break; | 400 | break; |
378 | default: | 401 | default: |
379 | return -ENOIOCTLCMD; | 402 | return -ENOIOCTLCMD; |