diff options
author | Theodore Ts'o <tytso@mit.edu> | 2009-02-26 01:04:07 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2009-02-26 01:04:07 -0500 |
commit | ccd2506bd43113659aa904d5bea5d1300605e2a6 (patch) | |
tree | 99a95645b3c2c092427b7c537c5628d502cd9c22 /fs/ext4/ioctl.c | |
parent | f63e6005bc63acc0a6bc3bdb8f971dcfbd827185 (diff) | |
download | op-kernel-dev-ccd2506bd43113659aa904d5bea5d1300605e2a6.zip op-kernel-dev-ccd2506bd43113659aa904d5bea5d1300605e2a6.tar.gz |
ext4: add EXT4_IOC_ALLOC_DA_BLKS ioctl
Add an ioctl which forces all of the delay allocated blocks to be
allocated. This also provides a function ext4_alloc_da_blocks() which
will be used by the following commits to force files to be fully
allocated to preserve application-expected ext3 behaviour.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/ioctl.c')
-rw-r--r-- | fs/ext4/ioctl.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 22dd29f..91e75f7 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c @@ -262,6 +262,20 @@ setversion_out: return err; } + case EXT4_IOC_ALLOC_DA_BLKS: + { + int err; + if (!is_owner_or_cap(inode)) + return -EACCES; + + err = mnt_want_write(filp->f_path.mnt); + if (err) + return err; + err = ext4_alloc_da_blocks(inode); + mnt_drop_write(filp->f_path.mnt); + return err; + } + default: return -ENOTTY; } |