aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2008-03-13 10:53:26 -0400
committerTheodore Ts'o <tytso@mit.edu>2008-03-13 10:53:26 -0400
commita040a99b6cc4bf9f10d39747ca6947f0462a2eb2 (patch)
tree3ebb2978e9768b271f7f15dc5bd89455c4eb3f9e /lib
parent399033a6ab713bc1f8ebad90e47fced0e7491b62 (diff)
parent2a60480627b28a368c82b87c0795c771c1f8769a (diff)
downloadandroid_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.c6
-rw-r--r--lib/ext2fs/dblist.c26
-rw-r--r--lib/ext2fs/ext2_err.et.in4
-rw-r--r--lib/ext2fs/ext2fs.h3
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