bitmaps.c revision 8f82ef9860339039b54a324be137fbc09b762358
1c3aae25116e66c177579b0b79182b09340b19753Chris Lattner/*
2ea61c358720aa6c7a159d51658b34276316aa841Misha Brukman * bitmaps.c --- routines to read, write, and manipulate the inode and
36fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell * block bitmaps.
46fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell *
57ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
67ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner *
7ea61c358720aa6c7a159d51658b34276316aa841Misha Brukman * %Begin-Header%
86fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell * This file may be redistributed under the terms of the GNU Public
9ea61c358720aa6c7a159d51658b34276316aa841Misha Brukman * License.
10c3aae25116e66c177579b0b79182b09340b19753Chris Lattner * %End-Header%
11c3aae25116e66c177579b0b79182b09340b19753Chris Lattner */
12ea61c358720aa6c7a159d51658b34276316aa841Misha Brukman
13cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#include <stdio.h>
14cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#include <string.h>
15cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#if HAVE_UNISTD_H
16cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#include <unistd.h>
17cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#endif
18fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman#include <fcntl.h>
19c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene#include <time.h>
20583bd47f777fe3eb8305872fa0eadab31e833dffJim Laskey#if HAVE_SYS_STAT_H
214b84086e89d86fb16f562166d9fea8df37db6be7Dan Gohman#include <sys/stat.h>
22583bd47f777fe3eb8305872fa0eadab31e833dffJim Laskey#endif
23b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattner#if HAVE_SYS_TYPES_H
24acaf09dbe4a6781163857db1321bbd5795e7d410Dan Gohman#include <sys/types.h>
255892d47a625638a90afeb31dd4f6f80a2f9bacdeChris Lattner#endif
26322812e603705e1c2037313633e72f689524b163Evan Cheng
27eb19e40efbd3cae80c908a30cdf4d33450733c45Chris Lattner#include "ext2_fs.h"
28d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke#include "ext2fs.h"
29d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke#include "ext2fsP.h"
30fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman
31fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohmanvoid ext2fs_free_inode_bitmap(ext2fs_inode_bitmap bitmap)
32fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{
33fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman	ext2fs_free_generic_bmap(bitmap);
34fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman}
356e7a1617ac4a34792d9097b8d3644b72f57a45f7Devang Patel
36fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohmanvoid ext2fs_free_block_bitmap(ext2fs_block_bitmap bitmap)
37fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{
38fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman	ext2fs_free_generic_bmap(bitmap);
39fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman}
408e4018e2de52c534405d7155c7009d0b35afb861Cedric Venet
418e4018e2de52c534405d7155c7009d0b35afb861Cedric Veneterrcode_t ext2fs_copy_bitmap(ext2fs_generic_bitmap src,
42c7f6b8c5d40e17bf43fd3a1549d7d89c9da735e1Gabor Greif			     ext2fs_generic_bitmap *dest)
43fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{
44fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman	return (ext2fs_copy_generic_bmap(src, dest));
45c7f6b8c5d40e17bf43fd3a1549d7d89c9da735e1Gabor Greif}
46fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohmanvoid ext2fs_set_bitmap_padding(ext2fs_generic_bitmap map)
47fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{
48fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman	ext2fs_set_generic_bmap_padding(map);
49c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif}
50c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif
51c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greiferrcode_t ext2fs_allocate_inode_bitmap(ext2_filsys fs,
52fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman				       const char *descr,
53fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman				       ext2fs_inode_bitmap *ret)
54fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{
55fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman	__u64		start, end, real_end;
56fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman
57fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman	EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
58c3aae25116e66c177579b0b79182b09340b19753Chris Lattner
5925cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands	fs->write_bitmaps = ext2fs_write_bitmaps;
6025cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands
6125cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands	start = 1;
6225cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands	end = fs->super->s_inodes_count;
6325cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands	real_end = (EXT2_INODES_PER_GROUP(fs->super) * fs->group_desc_count);
6425cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands
65c3aae25116e66c177579b0b79182b09340b19753Chris Lattner	/* Are we permitted to use new-style bitmaps? */
66c3aae25116e66c177579b0b79182b09340b19753Chris Lattner	if (fs->flags & EXT2_FLAG_64BITS)
67c3aae25116e66c177579b0b79182b09340b19753Chris Lattner		return (ext2fs_alloc_generic_bmap(fs,
68c3aae25116e66c177579b0b79182b09340b19753Chris Lattner				  EXT2_ET_MAGIC_INODE_BITMAP64,
69c3aae25116e66c177579b0b79182b09340b19753Chris Lattner				  EXT2FS_BMAP64_BITARRAY,
70c3aae25116e66c177579b0b79182b09340b19753Chris Lattner				  start, end, real_end, descr, ret));
71c3aae25116e66c177579b0b79182b09340b19753Chris Lattner
72c3aae25116e66c177579b0b79182b09340b19753Chris Lattner	/* Otherwise, check to see if the file system is small enough
73c3aae25116e66c177579b0b79182b09340b19753Chris Lattner	 * to use old-style 32-bit bitmaps */
74c3aae25116e66c177579b0b79182b09340b19753Chris Lattner	if ((end > ~0U) || (real_end > ~0U))
75cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner		return EXT2_ET_CANT_USE_LEGACY_BITMAPS;
76cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner
77063287a76b5d1486f498fcf674a26d1155471a3fChris Lattner	return (ext2fs_make_generic_bitmap(EXT2_ET_MAGIC_INODE_BITMAP, fs,
787c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman					 start, end, real_end,
79ead0d88ad7659dabd66cc3149af97d98256fca84Chris Lattner					 descr, 0,
8044c3b9fdd416c79f4b67cde1aecfced5921efd81Jim Laskey					 (ext2fs_generic_bitmap *) ret));
816e7a1617ac4a34792d9097b8d3644b72f57a45f7Devang Patel}
82cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner
83f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohmanerrcode_t ext2fs_allocate_block_bitmap(ext2_filsys fs,
84f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman				       const char *descr,
85f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman				       ext2fs_block_bitmap *ret)
86f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman{
87f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman	__u64		start, end, real_end;
88cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner
89213a16c637926bfc38ba373d3aba6778e181e3ecChris Lattner	EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
90fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman
91fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman	fs->write_bitmaps = ext2fs_write_bitmaps;
92f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman
93f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman	start = fs->super->s_first_data_block;
94f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman	end = ext2fs_blocks_count(fs->super)-1;
95f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman	real_end = (EXT2_BLOCKS_PER_GROUP(fs->super)
96f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman		    * fs->group_desc_count)-1 + start;
97f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman
98f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman	if (fs->flags & EXT2_FLAG_64BITS)
99f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman		return (ext2fs_alloc_generic_bmap(fs,
100691ef2ba066dda14ae4ac0ad645054fbc967785aAndrew Lenharth				  EXT2_ET_MAGIC_BLOCK_BITMAP64,
101213a16c637926bfc38ba373d3aba6778e181e3ecChris Lattner				  EXT2FS_BMAP64_BITARRAY,
102213a16c637926bfc38ba373d3aba6778e181e3ecChris Lattner				  start, end, real_end, descr, ret));
103583bd47f777fe3eb8305872fa0eadab31e833dffJim Laskey
104213a16c637926bfc38ba373d3aba6778e181e3ecChris Lattner	if ((end > ~0U) || (real_end > ~0U))
105f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman		return EXT2_ET_CANT_USE_LEGACY_BITMAPS;
106f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman
107f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman	return (ext2fs_make_generic_bitmap(EXT2_ET_MAGIC_BLOCK_BITMAP, fs,
108e8be6c63915e0389f1eef6b53c64300d13b2ce99Dan Gohman					   start, end, real_end,
109e8be6c63915e0389f1eef6b53c64300d13b2ce99Dan Gohman					   descr, 0,
110e8be6c63915e0389f1eef6b53c64300d13b2ce99Dan Gohman					   (ext2fs_generic_bitmap *) ret));
111e8be6c63915e0389f1eef6b53c64300d13b2ce99Dan Gohman}
112d038e04188047eca4749d025ef1f05f7ae660bcaDuncan Sands
113d038e04188047eca4749d025ef1f05f7ae660bcaDuncan Sandserrcode_t ext2fs_fudge_inode_bitmap_end(ext2fs_inode_bitmap bitmap,
114d038e04188047eca4749d025ef1f05f7ae660bcaDuncan Sands					ext2_ino_t end, ext2_ino_t *oend)
115c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene{
116c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene	__u64 tmp_oend;
117c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene	int retval;
118c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif
119c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif	retval = ext2fs_fudge_generic_bmap_end((ext2fs_generic_bitmap) bitmap,
120c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene					       EXT2_ET_FUDGE_INODE_BITMAP_END,
121c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene					       end, &tmp_oend);
122cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner	if (oend)
1237c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman		*oend = tmp_oend;
124cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner	return retval;
125cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner}
1267c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman
1277c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohmanerrcode_t ext2fs_fudge_block_bitmap_end(ext2fs_block_bitmap bitmap,
1287c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman					blk_t end, blk_t *oend)
1296e7a1617ac4a34792d9097b8d3644b72f57a45f7Devang Patel{
1307c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman	return (ext2fs_fudge_generic_bitmap_end(bitmap,
1317c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman						EXT2_ET_MAGIC_BLOCK_BITMAP,
132f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman						EXT2_ET_FUDGE_BLOCK_BITMAP_END,
133f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman						end, oend));
1347c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman}
135f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman
1367c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohmanerrcode_t ext2fs_fudge_block_bitmap_end2(ext2fs_block_bitmap bitmap,
137063287a76b5d1486f498fcf674a26d1155471a3fChris Lattner					 blk64_t end, blk64_t *oend)
138063287a76b5d1486f498fcf674a26d1155471a3fChris Lattner{
139ead0d88ad7659dabd66cc3149af97d98256fca84Chris Lattner	return (ext2fs_fudge_generic_bmap_end(bitmap,
14044c3b9fdd416c79f4b67cde1aecfced5921efd81Jim Laskey					      EXT2_ET_FUDGE_BLOCK_BITMAP_END,
14183489bb7700c69b7a4a8da59365c42d3f5c8129bDevang Patel					      end, oend));
142cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner}
143ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey
1441080b9ee534579c67f7c99364cc6fa11edbcd919Chris Lattnervoid ext2fs_clear_inode_bitmap(ext2fs_inode_bitmap bitmap)
145462dc7f4960e5074ddf4769ec8b2ef1ba7a4d2c8Dan Gohman{
1460b12aef49087b57d276ed760a83525d1e2602144Dan Gohman	ext2fs_clear_generic_bmap(bitmap);
147fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel}
148ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey
149ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskeyvoid ext2fs_clear_block_bitmap(ext2fs_block_bitmap bitmap)
150ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey{
1511080b9ee534579c67f7c99364cc6fa11edbcd919Chris Lattner	ext2fs_clear_generic_bmap(bitmap);
152ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey}
153ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey
154ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskeyerrcode_t ext2fs_resize_inode_bitmap(__u32 new_end, __u32 new_real_end,
155fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel				     ext2fs_inode_bitmap bmap)
156ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey{
157ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey	return (ext2fs_resize_generic_bitmap(EXT2_ET_MAGIC_INODE_BITMAP,
158ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey					     new_end, new_real_end, bmap));
159fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel}
160ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey
161ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskeyerrcode_t ext2fs_resize_inode_bitmap2(__u64 new_end, __u64 new_real_end,
162ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey				      ext2fs_inode_bitmap bmap)
163fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel{
164ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey	return (ext2fs_resize_generic_bmap(bmap, new_end, new_real_end));
165ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey}
166ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey
1671080b9ee534579c67f7c99364cc6fa11edbcd919Chris Lattnererrcode_t ext2fs_resize_block_bitmap(__u32 new_end, __u32 new_real_end,
168c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene				     ext2fs_block_bitmap bmap)
169c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene{
170c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene	return (ext2fs_resize_generic_bitmap(EXT2_ET_MAGIC_BLOCK_BITMAP,
171c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene					     new_end, new_real_end, bmap));
172fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman}
173b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattner
174b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattnererrcode_t ext2fs_resize_block_bitmap2(__u64 new_end, __u64 new_real_end,
175fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman				      ext2fs_block_bitmap bmap)
176b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattner{
177b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattner	return (ext2fs_resize_generic_bmap(bmap, new_end, new_real_end));
178fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman}
1790e5f1306b059b62d7725f324e087efbc8e7a782dDan Gohman
1800e5f1306b059b62d7725f324e087efbc8e7a782dDan Gohmanerrcode_t ext2fs_compare_block_bitmap(ext2fs_block_bitmap bm1,
181fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel				      ext2fs_block_bitmap bm2)
182c3aae25116e66c177579b0b79182b09340b19753Chris Lattner{
183cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner	return (ext2fs_compare_generic_bmap(EXT2_ET_NEQ_BLOCK_BITMAP,
184475871a144eb604ddaf37503397ba0941442e5fbDan Gohman					    bm1, bm2));
185cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner}
186c3aae25116e66c177579b0b79182b09340b19753Chris Lattner
187c3aae25116e66c177579b0b79182b09340b19753Chris Lattnererrcode_t ext2fs_compare_inode_bitmap(ext2fs_inode_bitmap bm1,
188f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman				      ext2fs_inode_bitmap bm2)
189f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman{
190f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman	return (ext2fs_compare_generic_bmap(EXT2_ET_NEQ_INODE_BITMAP,
191cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner					    bm1, bm2));
192c3aae25116e66c177579b0b79182b09340b19753Chris Lattner}
193cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner
194475871a144eb604ddaf37503397ba0941442e5fbDan Gohmanerrcode_t ext2fs_set_inode_bitmap_range(ext2fs_inode_bitmap bmap,
195ba36cb5242eb02b12b277f82b9efe497f7da4d7fGabor Greif					ext2_ino_t start, unsigned int num,
196acaf09dbe4a6781163857db1321bbd5795e7d410Dan Gohman					void *in)
197acaf09dbe4a6781163857db1321bbd5795e7d410Dan Gohman{
198acaf09dbe4a6781163857db1321bbd5795e7d410Dan Gohman	return (ext2fs_set_generic_bitmap_range(bmap,
199cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner						EXT2_ET_MAGIC_INODE_BITMAP,
2001d4d41411190dd9e62764e56713753d4155764ddNate Begeman						start, num, in));
20125cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands}
20225cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands
20325cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sandserrcode_t ext2fs_set_inode_bitmap_range2(ext2fs_inode_bitmap bmap,
20425cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands					 __u64 start, size_t num,
20525cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands					 void *in)
20601d029b82cb08367d81aa10cdc94d05360466649Chris Lattner{
20725cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands	return (ext2fs_set_generic_bmap_range(bmap, start, num, in));
20825cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands}
20901d029b82cb08367d81aa10cdc94d05360466649Chris Lattner
21001d029b82cb08367d81aa10cdc94d05360466649Chris Lattnererrcode_t ext2fs_get_inode_bitmap_range(ext2fs_inode_bitmap bmap,
21101d029b82cb08367d81aa10cdc94d05360466649Chris Lattner					ext2_ino_t start, unsigned int num,
21225cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands					void *out)
21325cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands{
214c3aae25116e66c177579b0b79182b09340b19753Chris Lattner	return (ext2fs_get_generic_bitmap_range(bmap,
215c3aae25116e66c177579b0b79182b09340b19753Chris Lattner						EXT2_ET_MAGIC_INODE_BITMAP,
216c3aae25116e66c177579b0b79182b09340b19753Chris Lattner						start, num, out));
217cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner}
218c3aae25116e66c177579b0b79182b09340b19753Chris Lattner
219c3aae25116e66c177579b0b79182b09340b19753Chris Lattnererrcode_t ext2fs_get_inode_bitmap_range2(ext2fs_inode_bitmap bmap,
2205aa4977fba97e816b5735f0bc53f16a46b24de63Bill Wendling					 __u64 start, size_t num,
221c3aae25116e66c177579b0b79182b09340b19753Chris Lattner					 void *out)
222d1fc96499b7619356c7542200d32da898b79f7c1Chris Lattner{
223190a418bf6b49a4ef1c1980229a2f0d516e8a2cdChris Lattner	return (ext2fs_get_generic_bmap_range(bmap, start, num, out));
224190a418bf6b49a4ef1c1980229a2f0d516e8a2cdChris Lattner}
225130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Cheng
226130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Chengerrcode_t ext2fs_set_block_bitmap_range(ext2fs_block_bitmap bmap,
227130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Cheng					blk_t start, unsigned int num,
228130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Cheng					void *in)
229130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Cheng{
23070046e920fa37989a041af663ada2b2b646e258fChris Lattner	return (ext2fs_set_generic_bitmap_range(bmap,
23170046e920fa37989a041af663ada2b2b646e258fChris Lattner						EXT2_ET_MAGIC_BLOCK_BITMAP,
23283ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands						start, num, in));
23383ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands}
23483ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands
23513d6d446f62f908e8cf74acb3a4df65ea5f497ceBill Wendlingerrcode_t ext2fs_set_block_bitmap_range2(ext2fs_block_bitmap bmap,
23683ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands					 blk64_t start, size_t num,
237fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel					 void *in)
23870046e920fa37989a041af663ada2b2b646e258fChris Lattner{
23983ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands	return (ext2fs_set_generic_bmap_range(bmap, start, num, in));
24070046e920fa37989a041af663ada2b2b646e258fChris Lattner}
24170046e920fa37989a041af663ada2b2b646e258fChris Lattner
24283ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sandserrcode_t ext2fs_get_block_bitmap_range(ext2fs_block_bitmap bmap,
24370046e920fa37989a041af663ada2b2b646e258fChris Lattner					blk_t start, unsigned int num,
24470046e920fa37989a041af663ada2b2b646e258fChris Lattner					void *out)
24583ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands{
24670046e920fa37989a041af663ada2b2b646e258fChris Lattner	return (ext2fs_get_generic_bitmap_range(bmap,
24770046e920fa37989a041af663ada2b2b646e258fChris Lattner						EXT2_ET_MAGIC_BLOCK_BITMAP,
24813d6d446f62f908e8cf74acb3a4df65ea5f497ceBill Wendling						start, num, out));
24913d6d446f62f908e8cf74acb3a4df65ea5f497ceBill Wendling}
25013d6d446f62f908e8cf74acb3a4df65ea5f497ceBill Wendling
251f877b735ad4987f26cafcbaf22aa4c2199458b5dDan Gohmanerrcode_t ext2fs_get_block_bitmap_range2(ext2fs_block_bitmap bmap,
25213d57320bd212483463d4f8992d5787b29eda5dfBill Wendling					 blk64_t start, size_t num,
25370046e920fa37989a041af663ada2b2b646e258fChris Lattner					 void *out)
254fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel{
255fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel	return (ext2fs_get_generic_bmap_range(bmap, start, num, out));
2561b1a49714ef26225a42199cf2930529f31868322Chris Lattner}
25770046e920fa37989a041af663ada2b2b646e258fChris Lattner