2003-07-25  Theodore Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs 1.34

2003-07-22  Theodore Ts'o  <tytso@mit.edu>

	* probe.c (probe_udf): Add specific UDF probing code, and probe
		UDF before checking for ISO9660 filesystems.

2003-07-21  Theodore Ts'o  <tytso@mit.edu>

	* probe.c (blkid_known_fstype): New function which returns true if
		the filesystem type is one which this blkid library supports.

2003-07-20  Theodore Ts'o  <tytso@mit.edu>

	* probe.c: When revalidating a filesystem, delete the LABEL tag if
		the filesystem no longer has a label.

2003-07-18  Theodore Ts'o  <tytso@mit.edu>

	* tag.c (blkid_find_dev_with_tag): If blkid_probe_all() returns an
		error, then reflect that error upwards; don't try again
		(forever).  This prevents an infinite loop when /proc and
		the /etc/blkid.tab file are not present.

2003-07-06  Theodore Ts'o  <tytso@mit.edu>

	* blkid_types.h.in: Fix gcc -Wall nitpicks (don't use #elsif)

	* cache.c: Fix gcc -Wall nitpicks (missing #include <string.h>)

	* probe.h: Fix gcc -Wall nitpicks (missing casts)

2003-05-21  Theodore Ts'o  <tytso@mit.edu>

	* Makefile.in (ELF_OTHER_LIBS): The blkid library depends on the
		uuid library.  (Addresses Debian bug: #194094)

2003-04-21  Theodore Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs 1.33

2003-04-19  Theodore Ts'o  <tytso@mit.edu>

	* blkidP.h: Fix gcc -Wall warnings by using __inline__ instead of
		inline. 

2003-04-02  Theodore Ts'o  <tytso@mit.edu>

	* probe.c, probe.h: Fix XFS superblock definition.  Add support to
		extract UUID and labels for JFS and romfs.  (Thanks to
		Janos Farkas <chexum@acomp.hu>.)

2003-03-30  Theodore Ts'o  <tytso@mit.edu>

	* getsize.c: #include stat.h for the Apple Darwin port

2003-03-17  Theodore Ts'o  <tytso@mit.edu>

	* cache.c: Initialize blkid_debug_mask to zero since some
		operating systems can't deal with variables in the common
		section in shared libraries.
 
	* getsize.c (blkid_get_dev_size): Fix Apple Darwin port.

2003-03-06    <tytso@mit.edu>

	* devname.c (probe_one): Fix bug; if a partition has no known
		type, don't derference a null pointer and crash.

2003-03-06  Theodore Tso  <tytso@mit.edu>

	* blkid_types.h.in: Don't redefine types if other e2fsprogs
		*_types.h files have been included already.

	* list.h, probe.h: Use static inline instead of extern inline to
		comply with C99 inline support.

	* devname.c (blkid_probe_all): Avoid GCC extension; don't
		initialize an array with the address of an automatic
		variable.

	* Makefile.in: Eliminate -Wall as a C compiler option by default;
		it's not portable.

2003-03-02  Theodore Ts'o  <tytso@mit.edu>

	* Makefile.in: Don't install list.h, since it's not used by the
		public blkid.h file.

	* blkid_types.h.in: Change #ifndef protection to use _BLKID_TYPES_H

2003-03-01  Theodore Ts'o  <tytso@mit.edu>

	* tag.c (blkid_set_tag): Fix bug; don't return an error when
		deleting a tag by setting the value to NULL.  This
		caused a failed device verification to loop forever in
		blkid_verify_devname().

	* resolve.c (main): Update debugging test program so that it
		compiles with the latest blkid API changes.

	* libblkid.3.in: Update manual page to reflect recent API changes.

	* resolve.c (blkid_get_tag_value): If the passed-in cache is NULL,
		then get and release a temporary cache as a convenience to
		the calling application.
		(blkid_get_devname): If the passed in token does not
		contain an '=', and value is NULL, then return the passed
		in token.

	* read.c (blkid_read_cache): Don't return 0 since blkid_read_cache
		now returns void.

	* blkid.h: Add include of sys/types.h, since we use dev_t

2003-02-27  Theodore Ts'o  <tytso@mit.edu>

	* resolve.c (blkid_get_tag_value): Rename function (used to be
		blkid_get_tagname_devname)

2003-02-22  Theodore Ts'o  <tytso@mit.edu>

	* devname.c (blkid_probe_all), tag.c (blkid_find_dev_with_tag): 
		Call blkid_read_cache to make sure the in-core version of
		the data structure is the latest.  After probing all of
		the devices in blkid_probe_all() force the cache file to
		be written out, the probe_all represents a lot of effort
		that shouldn't be lost.

	* tag.c (blkid_set_tag): Always replace an existing tag with the
		new value; we no longer suppor multiple tags with the same
		value attached to a device, as this was never really
		supported well, and significantly increased the code
		complexity.

	* probe.c (probe_ext2): Change handling of ext2/ext3 filesystems.
		Ext3 filesystems are now always treated as ext2
		filesystems, with a special SEC_TYPE tag set to ext3.
		This was necessary because we now longer support multiple
		tags with the same name attached to a device.

	* save.c (save_dev): Don't special case the TYPE tag; just write
		it out along with all of the normal tags.
		(blkid_flush_cache): Eliminate special case code for stdout.

	* cache.c (blkid_new_cache, blkid_get_cache): Eliminate
		blkid_new_cache and fold into blkid_get_cache (moved to
		cache.c)

	* read.c (blkid_read_cache): New function created from
		blkid_get_cache which used to be in read.c that only
		updates the in-core cache data structure from the file.
		Uses the file modification time of the cache file to
		determine whether the cache file needs to be re-read.

	* cache.c, dev.c, devname.c, devno.c, probe.c, read.c, resolve.c,
		save.c, tag.c, blkidP.h: Add dynamic debugging
		capabilities, controlled by the environment variable
		BLKID_DEBUG. 

2003-02-16  Theodore Ts'o  <tytso@mit.edu>

	* blkid.h, dev.c, devname.c, probe.c, read.c, resolve.c: Rename
		blkid_get_devname() to blkid_get_dev().  Also rename
		blkid_get_token() to blkid_get_devname().  This more
		accurately describes what these functions do.

2003-02-14  Theodore Ts'o  <tytso@mit.edu>

	* blkidP.h, devname.c (blkid_get_devname), read.c (parse_tag),
		save.c (save_dev): Remove bid_id, as it is not used for
		anything.

	* Makefile.in (blkid): When building the blkid, don't link against
		the shared blkid library; link only against the static
		blkid library.

	* blkidP.h (struct blkid_struct_dev): Remove bid_size and
		bid_devsize (since they aren't used any more) and add
		bid_pri to the device structure.

	* devname.c (probe_one, lvm_probe_all, evms_probe_all,
		blkid_probe_all): Set the bid_pri filed in the device
		structure depending on type of device so that EVMS, LVM,
		and MD devices get priority over normal devices.

	* tag.c (blkid_find_dev_with_tag): When looking for a device that
		matches the search criteria, return the one with the
		largest priority (bid_pri).

	* save.c (save_dev): Write out the PRI tag from bid_pri.

	* read.c (parse_tag): Parse the PRI tag and store its value in
		bid_pri.

	* probe.c (blkid_verify_devname): If the device does not exist
		(open returns ENOENT), treat this as a fatal error and
		release the device.  After verifying the device, set the
		cache as being modified so the changes are written out.

	* resolve.c (main): Change the test driver to get a blkid cache
		and pass it to blkid_get_tagname_devname and
		blkid_get_token, as the cache is no longer optional.

2003-02-12  Theodore Ts'o  <tytso@mit.edu>

	* blkid.h, blkidP.h, cache.c, dev.c, devname.c, devno.c, probe.c,
		probe.h, read.c, resolve.c, save.c, tag.c: Wholesale
		changes to library to simplify the implementation and
		shrink its size.  Change library version to be 1.0.

2003-01-27  Theodore Ts'o  <tytso@mit.edu>

	* read.c (parse_tag): Do not return that blkid_tag when parsing
		the blkid.tag file.

	* resolve.c (blkid_get_token, blkid_get_tagname_devname): Fold in
		code from removed functions

	* tag.c (blkid_create_tag): Don't return the newly tag strcture
		any more, as it's not needed.
		(blkid_find_tag_cache, blkid_get_tag_cache,
		 blkid_token_to_tag, blkid_find_tv_tags): Remove these 
		functions, as they are either only used once or have
		interfaces that should be deprecated.
		(blkid_find_tag_dev, blkid_find_head_cache): Replace use
		of blkid_tag with one or two const char * type/value
		arguments.
		(blkid_find_dev_with_tag): Fold in code from removed functions

	* probe.h, probe.c: Use a more sophisticated set of byte-swapping
		routines which are more compact and efficient.  Drop
		calculation of bid_free, since it's unnecessary.  Avoid 

	* save.c (blkid_save_cache): Set the permissions on the blkid
		cache file to 644.
	
2003-01-25  Theodore Ts'o  <tytso@mit.edu>

	* cache.c, dev.c, devname.c, devno.c, getsize.c, llseek.c, 
		probe.c, probe.h, read.c, resolve.c, save.c, tag.c, 
		blkid.h, blkidP.h: Separate public and private
		interfaces into separate header files.  Start
		separating internal implementation details from the
		publically exported interface.

	* devname.c: Add support for EVMS

	* blkid.h, cache.c, dev.c, devname.c, devno.c, probe.c, probe.h,
		read.c, resolve.c, save.c, tag.c: Fix gcc -Wall nits.

2003-01-24  Theodore Ts'o  <tytso@mit.edu>

	* save.c (blkid_save_cache): Use mkstemp() instead mktemp().

2002-10-04  Jordan Breeding  <jordan.breeding@attbi.com>

	* Forward port to e2fsprogs 1.30

2001-09-20  Andreas Dilger  <adilger@turbolinux.com>

	* Initial release of libblkid.
