From: Badari Pulavarty <pbadari@us.ibm.com>
To: tzachar@cs.bgu.ac.il
Cc: linux-fsdevel@vger.kernel.org
Subject: Re: get_blocks_t semantics
Date: Thu, 21 Jul 2005 15:40:48 -0700 [thread overview]
Message-ID: <42E02470.6070706@us.ibm.com> (raw)
In-Reply-To: <1121928397.31997.6.camel@nexus.cs.bgu.ac.il>
Nir Tzachar wrote:
> On Wed, 2005-07-20 at 20:14 -0700, Badari Pulavarty wrote:
>
>>Nir Tzachar wrote:
>>
>>
>>>hello list.
>>>
>>>can someone please explain the exact semantics the get_block_t function
>>>(which is passed to mpage_readpage(s)) should implement??
>>>i could not find any documentation, and existing code kind of baffled
>>>me...
>>>
>>>my current understanding goes like this:
>>>if the block is present, call map_bh on the bh, with the physical block
>>>number.
>>>else, if "create" is set, allocate a new block for the inode, and again
>>>update the new physical block number.
>>>
>>>is this all??
>>>
>>>thanks.
>>>
>>
>>For a given file offset, get_block() function is supposed to return the
>>physical disk block# of the block. (and size of the block). If "create"
>>is one, it needs to allocate the block (if it doesn't already exist).
>>Makes sense ?
>
>
> from fs.h:
> typedef int (get_block_t)(struct inode *inode, sector_t iblock,
> struct buffer_head *bh_result, int create);
>
> so, iblock is the block number in the file, or the offset in the file??
iblock = fileoffset in represented sectors. (for example,
file offset 4K = 8)
> furthermore, what set_buffer_mapped (used in map_bh) does?? i could not
> find it's definition anywhere??
When the filesystems map the fileoffset to a disk block, it returns the
block# in the "bh->b_blocknr" and sets the flag to indicate that the
buffer is mapped (to a disk block).
If get_block() returned sucess, but if the buffer mapped is not set,
means thats there is a hole.
>
> about create, "allocate a block" means just deciding which block should
> be allocated, update the fs control structures, and return that block #,
> right??
>
yep.
Thanks,
Badari
prev parent reply other threads:[~2005-07-21 22:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-20 14:03 get_blocks_t semantics Nir Tzachar
2005-07-21 3:14 ` Badari Pulavarty
2005-07-21 6:46 ` Nir Tzachar
2005-07-21 22:40 ` Badari Pulavarty [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=42E02470.6070706@us.ibm.com \
--to=pbadari@us.ibm.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=tzachar@cs.bgu.ac.il \
/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.