ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate
[safe/jmp/linux-2.6] / fs / ext4 / extents.c
index ee611da..8a8f9f0 100644 (file)
@@ -3708,6 +3708,11 @@ long ext4_fallocate(struct inode *inode, int mode, loff_t offset, loff_t len)
         */
        credits = ext4_chunk_trans_blocks(inode, max_blocks);
        mutex_lock(&inode->i_mutex);
+       ret = inode_newsize_ok(inode, (len + offset));
+       if (ret) {
+               mutex_unlock(&inode->i_mutex);
+               return ret;
+       }
 retry:
        while (ret >= 0 && ret < max_blocks) {
                block = block + ret;