All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wang Sheng-Hui <shhuiw@gmail.com>
To: Andreas Dilger <aedilger@gmail.com>
Cc: ext4 development <linux-ext4@vger.kernel.org>
Subject: Re: One question about ext4_fallocate
Date: Fri, 20 Jul 2012 14:39:23 +0800	[thread overview]
Message-ID: <5008FD1B.9030203@gmail.com> (raw)
In-Reply-To: <A9962DF5-1C88-4385-A8DA-20227E055910@dilger.ca>

On 2012年07月19日 23:42, Andreas Dilger wrote:
> 
> On 2012-07-19, at 7:51 AM, Wang Sheng-Hui wrote:
>> I have one question about ext4_fallocate:
>> 	For its parameters, offset & len, it will preallocate
>> 	one space with length >= len, right?
>>
>> From the code:
>> 	map.m_lblk = offset >> blkbits;
>> 	/*
>> 	 * We can't just convert len to max_blocks because
>> 	 * If blocksize = 4096 offset = 3072 and len = 2048
>> 	 */
>> 	max_blocks = (EXT4_BLOCK_ALIGN(len + offset, blkbits) >> blkbits)
>> 		- map.m_lblk;
>>
>> We can see that the target space is enlarged to the (floor, ceiling) of 
>> (offset, offset+len). Right?
>>
>> If I'm wrong, please correct me.
> 
> A whole block has to be allocated for fallocate, but if KEEP_SIZE is not used, the i_size should be changed to match the actual requested size.
> 

Got it.

From the code:
	/* Return error if mode is not supported */
	if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE))
		return -EOPNOTSUPP;

	if (mode & FALLOC_FL_PUNCH_HOLE)
		return ext4_punch_hole(file, offset, len);

ext4 only supports FALLOC_FL_KEEP_SIZE & FALLOC_FL_PUNCH_HOLE currently.
For FALLOC_FL_PUNCH_HOLE, it will turn to ext4_punch_hole, so the rest
path deals with only FALLOC_FL_KEEP_SIZE and thus it will use whole blocks.

Thanks, Andreas.
> Cheers, Andreas
> 
> 
> 
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

      reply	other threads:[~2012-07-20  6:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-19 14:51 One question about ext4_fallocate Wang Sheng-Hui
2012-07-19 15:42 ` Andreas Dilger
2012-07-20  6:39   ` Wang Sheng-Hui [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5008FD1B.9030203@gmail.com \
    --to=shhuiw@gmail.com \
    --cc=aedilger@gmail.com \
    --cc=linux-ext4@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.