diff options
author | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2010-12-26 02:28:28 -0500 |
---|---|---|
committer | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2011-01-10 00:05:45 -0500 |
commit | 27e6c7a3ce29ae5fa5bec4ed5917f8508bfac120 (patch) | |
tree | 958d82757bf23e426c7bc1035f76d986f09be535 /fs/nilfs2/inode.c | |
parent | e828949e5b42bfd234ee537cdb7c5e3a577958a3 (diff) |
nilfs2: mark buffer heads as delayed until the data is written to disk
Nilfs does not allocate new blocks on disk until they are actually
written to. To implement fiemap, we need to deal with such blocks.
To allow successive fiemap patch to distinguish mapped but unallocated
regions, this marks buffer heads of those new blocks as delayed and
clears the flag after the blocks are written to disk.
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Diffstat (limited to 'fs/nilfs2/inode.c')
-rw-r--r-- | fs/nilfs2/inode.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index 550b1788981e..1a546a86d7a7 100644 --- a/fs/nilfs2/inode.c +++ b/fs/nilfs2/inode.c | |||
@@ -104,6 +104,7 @@ int nilfs_get_block(struct inode *inode, sector_t blkoff, | |||
104 | nilfs_transaction_commit(inode->i_sb); /* never fails */ | 104 | nilfs_transaction_commit(inode->i_sb); /* never fails */ |
105 | /* Error handling should be detailed */ | 105 | /* Error handling should be detailed */ |
106 | set_buffer_new(bh_result); | 106 | set_buffer_new(bh_result); |
107 | set_buffer_delay(bh_result); | ||
107 | map_bh(bh_result, inode->i_sb, 0); /* dbn must be changed | 108 | map_bh(bh_result, inode->i_sb, 0); /* dbn must be changed |
108 | to proper value */ | 109 | to proper value */ |
109 | } else if (ret == -ENOENT) { | 110 | } else if (ret == -ENOENT) { |