2006-05-14  Theodore Tso  <tytso@mit.edu>

	* probe.c (probe_udf): Fix signed vs. unsigned lint warning;
		better to use memcmp() rather than strncmp() anyway.

2006-04-09  Theodore Ts'o  <tytso@mit.edu>

	* blkid_types.h.in, Makefile.in, tst_types.c: Use the asm_types.h
		file to define the __[us]{8,16,32,64} types.  Add a
		tst_types program to make sure the types are correct.

2006-03-23  Theodore Ts'o  <tytso@mit.edu>

	* probe.c (blkid_verify): Fix file descriptor leak on error. 

2006-03-19  Theodore Ts'o  <tytso@mit.edu>

	* devname.c (dm_probe_all, dm_device_is_leaf): Make the
		libdevmapper fail quietly if blkid is called without root
		privileges or the kernel does not include device mapper
		support.  (What is the device mapper _library_ doing
		writing to stderr, anyway?)

2006-03-12  Theodore Ts'o  <tytso@mit.edu>

	* probe.c (blkid_verify): Fix the bid_time sanity checking logic,
		so that if last verification time is more recent than the
		current time, or the comparison between the last
		verification time and the current time causes an overflow,
		a device verification will take place.

	* devname.c (blkid_get_dev): Set the initial bid_time to be
		INT_MIN, to guarantee that blkid_verify will always be run
		even when the system clock is insane.

	* dev.c (blkid_debug_dump_dev), read.c (debug_dump_dev), 
		save.c (save_dev): Fix the printf format for dev->bid_time
		to match the fact that it is an signed type.

2006-03-10  Theodore Ts'o  <tytso@mit.edu>

	* probe.c (probe_ext3): If the filesystem has an external journal,
		store the UUID of the external journal in the tag
		EXT_JOURNAL.
		(blkid_verify): If the filesystem type has changed, clear
		all the tags on the device, not just a preset list of
		LABEL, UUID, TYPE, and SEC_TYPE.

	* tag.c (blkid_set_tag): Fix a bug so that blkid_set_tag will work
		correctly when freeing a tag when the input name parameter
		comes from the tag that we are freeing.

2005-12-29  Theodore Ts'o  <tytso@mit.edu>

	* tag.c (main): Add missing parameter in error-handling printf of
		the blkid test program tst_tag.

2005-12-10  Theodore Ts'o  <tytso@mit.edu>

	* Makefile.in: Add a dependency to make sure that the
		subdirectories are created before creating all of the
		object files.

2005-09-10  Theodore Ts'o  <tytso@mit.edu>

	* probe.c (probe_fat): Search the root directory of FAT
		filesystems for the label information.

	* probe.c, probe.h: Change superblock and generic i/o functions to
		be more generic.  Clean up interface to the probe
		function.  Fix memory leak.

	* probe.c, probe.h: Extract basic iso9660 label information.

	* probe.c, probe.h: Add support for resier4 filesystem.

2005-09-07  Theodore Ts'o  <tytso@mit.edu>

	* probe.c: Collapse vfat and fat code and make it more paranoid
		when probing for vat/fat filesystems.

	* resolve.c: Remove unneeded probe.h header file.

2005-09-05  Karel Zak <kzak@redhat.com>

	* probe.c (probe_vfat_nomagic): Add support for detecting VFAT
		filesystems even when the magic string isn't in the FAT
		super block.

	* probe.c: Add support for detecting software suspend partitions

	* probe.c (probe_ext2): Check to see if a journal has been added
		to an ext2 filesystem when revalidating cached information
		about an ext2 device.

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

	* cache.c (safe_getenv): Pass in zero to the unusued arguments of
		prctl(PR_GET_DUMPABLE) to avoid false positives from
		valgrind.

2005-07-09  Andreas Dilger <adilger@clusterfs.com>

	* getsize.c (blkid_get_dev_size): Use fstat/fstat64 to get size of
		regular files.

2006-06-30  Theodore Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs 1.38

2005-06-27  Theodore Ts'o  <tytso@mit.edu>

	* read.c, dev.c: Fix the debugging/TEST_PROGRAM code so that it is
		sufficiently standalone that "make check" will compile
		without errors even when configure "--enable-blkid-debug"
		is not specified.

2005-05-07  Theodore Ts'o  <tytso@mit.edu>

	* tag.c (blkid_find_dev_with_tag): If a device can't be found with
		the specified search arguments, probe all new devices
		before trying to verify existing devices, as a speed
		optimization.

	* devname.c (blkid_probe_all_new): New function which only probes
		devices are not known in the blkid cache.  This takes
		much less time than a full probe of all devices.

	* cache.c, dev.c, devno.c, probe.c, probe.h: Fix gcc -Wall nits.

	* blkidP.h, cache.c, dev.c, read.c, tag.c: Clean up the debugging
		code so that we don't use the inline functions DEB_DUMP_*
		and instead use the private functions blkid_debug_dump_*().

	* tag.c (blkid_dev_has_tag): New function which returns 1 if a tag
		has a particular type and possibly value.

	* blkid.h, dev.c (blkid_dev_set_search, blkid_dev_next): Added new
		function, blkid_dev_set_search(), which filters the
		devices returned by the blkid_dev_next() iterator.

	* tag.c, dev.c, Makefile.in: Add debugging test program code.

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

	* probe.c (probe_cramfs), probe.h: Fix magic number recognition
		for the cramfs filesystem, and add support to pull out the
		label for cramfs filesystems.  Thanks to Karel Zak (kzak
		at redhat.com) for the patch.

2005-03-31  Theodore Ts'o  <tytso@mit.edu>

	* cache.c (blkid_get_cache): Use a much more paranoid
		safe_getenv() function which will ignore the BLKID_FILE
		environment varaible if the application program is setgid
		or on a Linux system, if kernel doesn't think the process
		is eligible to create a core dump.  Also if glibc has
		__secure_getenv(), then use it.

2005-03-21  Theodore Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs 1.37

2005-03-21  Theodore Ts'o  <tytso@mit.edu>

	* cache.c (blkid_get_cache): Ignore the BLKID_FILE environment
		variable if blkid_get_cache() is called from a setuid
		program.

2005-03-16  Theodore Ts'o  <tytso@mit.edu>

	* getsize.c (blkid_get_dev_size): Fix compilation problem on
		Darwin systems.

2006-02-05  Theodore Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs 1.36

2005-02-05  Theodore Ts'o  <tytso@mit.edu>

	* Makefile.in: Remove blkid.pc on a "make distclean"

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

	* blkid.h, blkidP.h: Rename blkid_verify_devname() to be
		blkid_verify(), and make it be a publically exported
		function.

2005-01-26  Theodore Ts'o  <tytso@mit.edu>

	* version.c: Add functions to query the version of the blkid library.

	* blkid.pc.in: Add pkg-config files.

2005-01-25  Theodore Ts'o  <tytso@mit.edu>

	* probe.c: Windows can perform a "quick format" that doesn't clear
		enough of the partition that the blkid probes can get
		confused.  Do the NTFS test first to deal with this
		Windows misfeature.  (Addresses Debian Bug #291990)

2005-01-21  Theodore Ts'o  <tytso@mit.edu>

	* probe.c (probe_oracleasm): Add support for recognizing Oracle
		ASM volumes.  Thanks to Manish Singh (manish.singh at
		oracle.com) for supplying this patch.

2005-01-18  Theodore Ts'o  <tytso@mit.edu>

	* Makefile.in: Fix the kernel compile-time echo commands to be
		consistent and portable

2005-01-13  Matthias Andree  <matthias.andree@gmx.de>

	* getsize.c: Move #include "blkidP.h" before <sys/queues.h> to avoid a
	clash with the LIST_HEAD in the latter file.

2005-01-10  Theodore Ts'o  <tytso@mit.edu>

	* probe.c: Integrate and fix up Janos Farkas's patch.  Version 0
		swap headers won't ever have uuid/labels.  Also, if the
		swap partition is recreated without a label, make sure
		label in the blkid file gets freed.
		(get_ext2_info, probe_vfat, probe_msdos, probe_reiserfs):
		Make sure the label is cleared from the blkid file if the
		label gets cleared from the filesystem.
		(probe_romfs): Avoid dereferencing a null pointer of the
		label is not present.

2005-01-10  Janos Farkas  <chexum+dev@gmail.com>

	* probe.h: Define linux swap format.

	* probe.c: Fetch uuid/label from swap headers if present.  Mark
	swap types as needing extra probe.

2005-01-05  Theodore Ts'o  <tytso@mit.edu>

	* save.c (save_dev): Don't save relative pathnames since they
		won't be useful to another process.

	* devname.c (probe_one): Make sure the device is a block device
		before checking st_rdev.

	* probe.c (probe_msdos): Mark msdos filesystems as type vfat, with
		a SEC_TYPE of msdos, so that mount will use vfat to mount
		msdos filesystems.  (Addresses Debian bug #287455)
		(probe_ext3): For ext3 filesystems, return a type of ext3
		and a SEC_TYPE of ext2, for similar reasons as above.
		(blkid_verify_devname): Allow non-block devices to be
		verified, for testing purposes.

2004-12-14  Theodore Ts'o  <tytso@mit.edu>

	* Makefile.in: Use Linux-kernel-style makefile output for "make
		install"

	* Makefile.in (installdirs): Use $(MKINSTALLDIRS) macro

2004-11-30  Theodore Ts'o  <tytso@mit.edu>

	* probe.c, probe.h: Avoid using uint and uchar types, to allow
		compilation using dietlibc.

	* Makefile.in: Use Linux-kernel-style makefile output to make it
		easier to see errors/warnings.

2004-11-19  Theodore Ts'o  <tytso@mit.edu>

	* probe.c (probe_ocfs): Fix bug where the wrong size for "ocfs1"
		was being passed to blkid_set_tag().  Thanks to Andrea
		Dilger for pointing this out.

2004-09-17  Theodore Ts'o  <tytso@mit.edu>

	* probe.c, probe.h: Add support for ocfs2 detection, courtesy of
		manish.singh@oracle.com

	* getsize.c: Clean up header #include's.  Include sys/disk.h if
		present since this is the new place where the
		DIOCGMEDIASIZE ioctl is defined on FreeBSD systems.
		(Addresses Debian bug #264630)

	* llseek.c (blkid_llseek): On non-linux systems, use lseek64() if
		it is present.  (Addresses Debian bug #269044)

2004-05-12  Theodore Ts'o  <tytso@mit.edu>

	* read.c (blkid_read_cache): Add missing fclose() which was
		causing a memory and file descriptor leak.  Thanks to
		magnus.fromreide at teligent.se.

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

	* probe.c (blkid_verify_devname): If the time is earlier than the
		last modified time of the device, then force a reverify;
		it means the system time may not be trustworthy.

2004-04-12  Theodore Ts'o  <tytso@mit.edu>

	* cache.c (blkid_get_cache): If the BLKID_FILE environment
		variable is set, use it to find the blkid.tab file if the
		calling application did not supply a filename.

2004-04-03  Theodore Ts'o  <tytso@mit.edu>

	* Makefile.in: Update the modtime even if subst doesn't need to
		update the libblkid man page, to avoid always re-running
		subst, especially since there are no dependencies on the
		man page.

2004-04-03  Theodore Ts'o  <tytso@mit.edu>

	* blkid_types.h.in: Remove check for _UUID_TYPES since uuid_types.h
		is no longer used.

2004-03-21  Theodore Ts'o  <tytso@mit.edu>

	* getsize.c (blkid_get_dev_size): Don't close the file descriptor
		when determining the size.  This bug was introduced in the
		previous getsize changes, and was screwing up the blkid
		library probe functions.  (Addresses Debian Bug #239191)

2004-03-08  Theodore Ts'o  <tytso@mit.edu>

	* getsize.c (blkid_get_dev_size): Only use the BLKGETSIZE64 ioctl
		on Linux 2.6 since it is unreliable in Linux 2.4..
		(Addresses Debian Bug #236528) Fix typo in the ioctl used
		for Mac OS X.

2004-03-04  Theodore Ts'o  <tytso@mit.edu>

	* probe.c (probe_ocfs), probe.h: Add support for the Oracle
		Cluster Filesystem (ocfs).  Patches courtesy of Rusty
		Lynch (rusty@linux.co.intel.com).

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

	* getsize.c (blkid_get_dev_size): Update getsize functions to use
		Apple Darwin and Linux 64-bit ioctl's

2004-02-29  Brian Bergstrand  <brian@bergstrand.org>

	* Makefile.in: Use $(BSDLIB_PIC_FLAG) to determine whether to use
		-fpic or -fPIC

2004-02-28  Theodore Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs 1.35

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

	* probe.c, read.c, blkidP.h: Fix gcc -Wall nitpicks.

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+dev@gmail.com>.)

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.
