diff options
| author | Theodore Ts'o <tytso@mit.edu> | 2008-03-13 10:53:26 -0400 |
|---|---|---|
| committer | Theodore Ts'o <tytso@mit.edu> | 2008-03-13 10:53:26 -0400 |
| commit | a040a99b6cc4bf9f10d39747ca6947f0462a2eb2 (patch) | |
| tree | 3ebb2978e9768b271f7f15dc5bd89455c4eb3f9e /lib | |
| parent | 399033a6ab713bc1f8ebad90e47fced0e7491b62 (diff) | |
| parent | 2a60480627b28a368c82b87c0795c771c1f8769a (diff) | |
| download | android_external_e2fsprogs-a040a99b6cc4bf9f10d39747ca6947f0462a2eb2.tar.gz android_external_e2fsprogs-a040a99b6cc4bf9f10d39747ca6947f0462a2eb2.tar.bz2 android_external_e2fsprogs-a040a99b6cc4bf9f10d39747ca6947f0462a2eb2.zip | |
Merge branch 'maint'
Conflicts:
lib/ext2fs/ext2_err.et.in
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/blkid/probe.c | 6 | ||||
| -rw-r--r-- | lib/ext2fs/dblist.c | 26 | ||||
| -rw-r--r-- | lib/ext2fs/ext2_err.et.in | 4 | ||||
| -rw-r--r-- | lib/ext2fs/ext2fs.h | 3 |
4 files changed, 36 insertions, 3 deletions
diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c index 10e018a9..45885c39 100644 --- a/lib/blkid/probe.c +++ b/lib/blkid/probe.c @@ -1023,15 +1023,15 @@ static int probe_hfsplus(struct blkid_probe *probe __BLKID_ATTR((unused)), } #define LVM2_LABEL_SIZE 512 -static unsigned int lvm2_calc_crc(const void *buf, uint size) +static unsigned int lvm2_calc_crc(const void *buf, unsigned int size) { - static const uint crctab[] = { + static const unsigned int crctab[] = { 0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c }; - uint i, crc = 0xf597a6cf; + unsigned int i, crc = 0xf597a6cf; const __u8 *data = (const __u8 *) buf; for (i = 0; i < size; i++) { diff --git a/lib/ext2fs/dblist.c b/lib/ext2fs/dblist.c index 21b36aa6..3bf63a0f 100644 --- a/lib/ext2fs/dblist.c +++ b/lib/ext2fs/dblist.c @@ -259,3 +259,29 @@ int ext2fs_dblist_count(ext2_dblist dblist) { return (int) dblist->count; } + +errcode_t ext2fs_dblist_get_last(ext2_dblist dblist, + struct ext2_db_entry **entry) +{ + errcode_t retval; + + EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); + + if (dblist->count == 0) + return EXT2_ET_DBLIST_EMPTY; + + if (entry) + *entry = dblist->list + ( (int) dblist->count-1); + return 0; +} + +errcode_t ext2fs_dblist_drop_last(ext2_dblist dblist) +{ + EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); + + if (dblist->count == 0) + return EXT2_ET_DBLIST_EMPTY; + + dblist->count--; + return 0; +} diff --git a/lib/ext2fs/ext2_err.et.in b/lib/ext2fs/ext2_err.et.in index 72331de5..9047a8ff 100644 --- a/lib/ext2fs/ext2_err.et.in +++ b/lib/ext2fs/ext2_err.et.in @@ -326,6 +326,9 @@ ec EXT2_ET_TDB_ERR_NOEXIST, ec EXT2_ET_TDB_ERR_RDONLY, "TDB: Write not permitted" +ec EXT2_ET_DBLIST_EMPTY, + "Ext2fs directory block list is empty" + ec EXT2_ET_RO_BLOCK_ITERATE, "Attempt to modify a block mapping via a read-only block iterator" @@ -403,4 +406,5 @@ ec EXT2_ET_EXTENT_NOT_FOUND, ec EXT2_ET_EXTENT_NOT_SUPPORTED, "Operation not supported for inodes containing extents" + end diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h index b7de2301..15f43526 100644 --- a/lib/ext2fs/ext2fs.h +++ b/lib/ext2fs/ext2fs.h @@ -724,6 +724,9 @@ extern errcode_t ext2fs_set_dir_block(ext2_dblist dblist, ext2_ino_t ino, extern errcode_t ext2fs_copy_dblist(ext2_dblist src, ext2_dblist *dest); extern int ext2fs_dblist_count(ext2_dblist dblist); +extern errcode_t ext2fs_dblist_get_last(ext2_dblist dblist, + struct ext2_db_entry **entry); +extern errcode_t ext2fs_dblist_drop_last(ext2_dblist dblist); /* dblist_dir.c */ extern errcode_t |
