diff options
Diffstat (limited to 'e2fsprogs/ext2fs/bmap.c')
-rw-r--r-- | e2fsprogs/ext2fs/bmap.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/e2fsprogs/ext2fs/bmap.c b/e2fsprogs/ext2fs/bmap.c index e84004476..45d49f929 100644 --- a/e2fsprogs/ext2fs/bmap.c +++ b/e2fsprogs/ext2fs/bmap.c | |||
@@ -25,14 +25,14 @@ | |||
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | extern errcode_t ext2fs_bmap(ext2_filsys fs, ext2_ino_t ino, | 27 | extern errcode_t ext2fs_bmap(ext2_filsys fs, ext2_ino_t ino, |
28 | struct ext2_inode *inode, | 28 | struct ext2_inode *inode, |
29 | char *block_buf, int bmap_flags, | 29 | char *block_buf, int bmap_flags, |
30 | blk_t block, blk_t *phys_blk); | 30 | blk_t block, blk_t *phys_blk); |
31 | 31 | ||
32 | #define inode_bmap(inode, nr) ((inode)->i_block[(nr)]) | 32 | #define inode_bmap(inode, nr) ((inode)->i_block[(nr)]) |
33 | 33 | ||
34 | static _BMAP_INLINE_ errcode_t block_ind_bmap(ext2_filsys fs, int flags, | 34 | static _BMAP_INLINE_ errcode_t block_ind_bmap(ext2_filsys fs, int flags, |
35 | blk_t ind, char *block_buf, | 35 | blk_t ind, char *block_buf, |
36 | int *blocks_alloc, | 36 | int *blocks_alloc, |
37 | blk_t nr, blk_t *ret_blk) | 37 | blk_t nr, blk_t *ret_blk) |
38 | { | 38 | { |
@@ -95,17 +95,17 @@ static _BMAP_INLINE_ errcode_t block_ind_bmap(ext2_filsys fs, int flags, | |||
95 | } | 95 | } |
96 | 96 | ||
97 | static _BMAP_INLINE_ errcode_t block_dind_bmap(ext2_filsys fs, int flags, | 97 | static _BMAP_INLINE_ errcode_t block_dind_bmap(ext2_filsys fs, int flags, |
98 | blk_t dind, char *block_buf, | 98 | blk_t dind, char *block_buf, |
99 | int *blocks_alloc, | 99 | int *blocks_alloc, |
100 | blk_t nr, blk_t *ret_blk) | 100 | blk_t nr, blk_t *ret_blk) |
101 | { | 101 | { |
102 | blk_t b; | 102 | blk_t b; |
103 | errcode_t retval; | 103 | errcode_t retval; |
104 | blk_t addr_per_block; | 104 | blk_t addr_per_block; |
105 | 105 | ||
106 | addr_per_block = (blk_t) fs->blocksize >> 2; | 106 | addr_per_block = (blk_t) fs->blocksize >> 2; |
107 | 107 | ||
108 | retval = block_ind_bmap(fs, flags & ~BMAP_SET, dind, block_buf, | 108 | retval = block_ind_bmap(fs, flags & ~BMAP_SET, dind, block_buf, |
109 | blocks_alloc, nr / addr_per_block, &b); | 109 | blocks_alloc, nr / addr_per_block, &b); |
110 | if (retval) | 110 | if (retval) |
111 | return retval; | 111 | return retval; |
@@ -115,17 +115,17 @@ static _BMAP_INLINE_ errcode_t block_dind_bmap(ext2_filsys fs, int flags, | |||
115 | } | 115 | } |
116 | 116 | ||
117 | static _BMAP_INLINE_ errcode_t block_tind_bmap(ext2_filsys fs, int flags, | 117 | static _BMAP_INLINE_ errcode_t block_tind_bmap(ext2_filsys fs, int flags, |
118 | blk_t tind, char *block_buf, | 118 | blk_t tind, char *block_buf, |
119 | int *blocks_alloc, | 119 | int *blocks_alloc, |
120 | blk_t nr, blk_t *ret_blk) | 120 | blk_t nr, blk_t *ret_blk) |
121 | { | 121 | { |
122 | blk_t b; | 122 | blk_t b; |
123 | errcode_t retval; | 123 | errcode_t retval; |
124 | blk_t addr_per_block; | 124 | blk_t addr_per_block; |
125 | 125 | ||
126 | addr_per_block = (blk_t) fs->blocksize >> 2; | 126 | addr_per_block = (blk_t) fs->blocksize >> 2; |
127 | 127 | ||
128 | retval = block_dind_bmap(fs, flags & ~BMAP_SET, tind, block_buf, | 128 | retval = block_dind_bmap(fs, flags & ~BMAP_SET, tind, block_buf, |
129 | blocks_alloc, nr / addr_per_block, &b); | 129 | blocks_alloc, nr / addr_per_block, &b); |
130 | if (retval) | 130 | if (retval) |
131 | return retval; | 131 | return retval; |
@@ -179,7 +179,7 @@ errcode_t ext2fs_bmap(ext2_filsys fs, ext2_ino_t ino, struct ext2_inode *inode, | |||
179 | 179 | ||
180 | *phys_blk = inode_bmap(inode, block); | 180 | *phys_blk = inode_bmap(inode, block); |
181 | b = block ? inode_bmap(inode, block-1) : 0; | 181 | b = block ? inode_bmap(inode, block-1) : 0; |
182 | 182 | ||
183 | if ((*phys_blk == 0) && (bmap_flags & BMAP_ALLOC)) { | 183 | if ((*phys_blk == 0) && (bmap_flags & BMAP_ALLOC)) { |
184 | retval = ext2fs_alloc_block(fs, b, block_buf, &b); | 184 | retval = ext2fs_alloc_block(fs, b, block_buf, &b); |
185 | if (retval) | 185 | if (retval) |
@@ -190,7 +190,7 @@ errcode_t ext2fs_bmap(ext2_filsys fs, ext2_ino_t ino, struct ext2_inode *inode, | |||
190 | } | 190 | } |
191 | goto done; | 191 | goto done; |
192 | } | 192 | } |
193 | 193 | ||
194 | /* Indirect block */ | 194 | /* Indirect block */ |
195 | block -= EXT2_NDIR_BLOCKS; | 195 | block -= EXT2_NDIR_BLOCKS; |
196 | if (block < addr_per_block) { | 196 | if (block < addr_per_block) { |
@@ -203,17 +203,17 @@ errcode_t ext2fs_bmap(ext2_filsys fs, ext2_ino_t ino, struct ext2_inode *inode, | |||
203 | } | 203 | } |
204 | 204 | ||
205 | b = inode_bmap(inode, EXT2_IND_BLOCK-1); | 205 | b = inode_bmap(inode, EXT2_IND_BLOCK-1); |
206 | retval = ext2fs_alloc_block(fs, b, block_buf, &b); | 206 | retval = ext2fs_alloc_block(fs, b, block_buf, &b); |
207 | if (retval) | 207 | if (retval) |
208 | goto done; | 208 | goto done; |
209 | inode_bmap(inode, EXT2_IND_BLOCK) = b; | 209 | inode_bmap(inode, EXT2_IND_BLOCK) = b; |
210 | blocks_alloc++; | 210 | blocks_alloc++; |
211 | } | 211 | } |
212 | retval = block_ind_bmap(fs, bmap_flags, b, block_buf, | 212 | retval = block_ind_bmap(fs, bmap_flags, b, block_buf, |
213 | &blocks_alloc, block, phys_blk); | 213 | &blocks_alloc, block, phys_blk); |
214 | goto done; | 214 | goto done; |
215 | } | 215 | } |
216 | 216 | ||
217 | /* Doubly indirect block */ | 217 | /* Doubly indirect block */ |
218 | block -= addr_per_block; | 218 | block -= addr_per_block; |
219 | if (block < addr_per_block * addr_per_block) { | 219 | if (block < addr_per_block * addr_per_block) { |
@@ -226,13 +226,13 @@ errcode_t ext2fs_bmap(ext2_filsys fs, ext2_ino_t ino, struct ext2_inode *inode, | |||
226 | } | 226 | } |
227 | 227 | ||
228 | b = inode_bmap(inode, EXT2_IND_BLOCK); | 228 | b = inode_bmap(inode, EXT2_IND_BLOCK); |
229 | retval = ext2fs_alloc_block(fs, b, block_buf, &b); | 229 | retval = ext2fs_alloc_block(fs, b, block_buf, &b); |
230 | if (retval) | 230 | if (retval) |
231 | goto done; | 231 | goto done; |
232 | inode_bmap(inode, EXT2_DIND_BLOCK) = b; | 232 | inode_bmap(inode, EXT2_DIND_BLOCK) = b; |
233 | blocks_alloc++; | 233 | blocks_alloc++; |
234 | } | 234 | } |
235 | retval = block_dind_bmap(fs, bmap_flags, b, block_buf, | 235 | retval = block_dind_bmap(fs, bmap_flags, b, block_buf, |
236 | &blocks_alloc, block, phys_blk); | 236 | &blocks_alloc, block, phys_blk); |
237 | goto done; | 237 | goto done; |
238 | } | 238 | } |
@@ -254,7 +254,7 @@ errcode_t ext2fs_bmap(ext2_filsys fs, ext2_ino_t ino, struct ext2_inode *inode, | |||
254 | inode_bmap(inode, EXT2_TIND_BLOCK) = b; | 254 | inode_bmap(inode, EXT2_TIND_BLOCK) = b; |
255 | blocks_alloc++; | 255 | blocks_alloc++; |
256 | } | 256 | } |
257 | retval = block_tind_bmap(fs, bmap_flags, b, block_buf, | 257 | retval = block_tind_bmap(fs, bmap_flags, b, block_buf, |
258 | &blocks_alloc, block, phys_blk); | 258 | &blocks_alloc, block, phys_blk); |
259 | done: | 259 | done: |
260 | if (buf) | 260 | if (buf) |