1 2006-05-14 Theodore Tso <tytso@mit.edu>
3 * probe.c (probe_udf): Fix signed vs. unsigned lint warning;
4 better to use memcmp() rather than strncmp() anyway.
6 2006-04-09 Theodore Ts'o <tytso@mit.edu>
8 * blkid_types.h.in, Makefile.in, tst_types.c: Use the asm_types.h
9 file to define the __[us]{8,16,32,64} types. Add a
10 tst_types program to make sure the types are correct.
12 2006-03-23 Theodore Ts'o <tytso@mit.edu>
14 * probe.c (blkid_verify): Fix file descriptor leak on error.
16 2006-03-19 Theodore Ts'o <tytso@mit.edu>
18 * devname.c (dm_probe_all, dm_device_is_leaf): Make the
19 libdevmapper fail quietly if blkid is called without root
20 privileges or the kernel does not include device mapper
21 support. (What is the device mapper _library_ doing
22 writing to stderr, anyway?)
24 2006-03-12 Theodore Ts'o <tytso@mit.edu>
26 * probe.c (blkid_verify): Fix the bid_time sanity checking logic,
27 so that if last verification time is more recent than the
28 current time, or the comparison between the last
29 verification time and the current time causes an overflow,
30 a device verification will take place.
32 * devname.c (blkid_get_dev): Set the initial bid_time to be
33 INT_MIN, to guarantee that blkid_verify will always be run
34 even when the system clock is insane.
36 * dev.c (blkid_debug_dump_dev), read.c (debug_dump_dev),
37 save.c (save_dev): Fix the printf format for dev->bid_time
38 to match the fact that it is an signed type.
40 2006-03-10 Theodore Ts'o <tytso@mit.edu>
42 * probe.c (probe_ext3): If the filesystem has an external journal,
43 store the UUID of the external journal in the tag
45 (blkid_verify): If the filesystem type has changed, clear
46 all the tags on the device, not just a preset list of
47 LABEL, UUID, TYPE, and SEC_TYPE.
49 * tag.c (blkid_set_tag): Fix a bug so that blkid_set_tag will work
50 correctly when freeing a tag when the input name parameter
51 comes from the tag that we are freeing.
53 2005-12-29 Theodore Ts'o <tytso@mit.edu>
55 * tag.c (main): Add missing parameter in error-handling printf of
56 the blkid test program tst_tag.
58 2005-12-10 Theodore Ts'o <tytso@mit.edu>
60 * Makefile.in: Add a dependency to make sure that the
61 subdirectories are created before creating all of the
64 2005-09-10 Theodore Ts'o <tytso@mit.edu>
66 * probe.c (probe_fat): Search the root directory of FAT
67 filesystems for the label information.
69 * probe.c, probe.h: Change superblock and generic i/o functions to
70 be more generic. Clean up interface to the probe
71 function. Fix memory leak.
73 * probe.c, probe.h: Extract basic iso9660 label information.
75 * probe.c, probe.h: Add support for resier4 filesystem.
77 2005-09-07 Theodore Ts'o <tytso@mit.edu>
79 * probe.c: Collapse vfat and fat code and make it more paranoid
80 when probing for vat/fat filesystems.
82 * resolve.c: Remove unneeded probe.h header file.
84 2005-09-05 Karel Zak <kzak@redhat.com>
86 * probe.c (probe_vfat_nomagic): Add support for detecting VFAT
87 filesystems even when the magic string isn't in the FAT
90 * probe.c: Add support for detecting software suspend partitions
92 * probe.c (probe_ext2): Check to see if a journal has been added
93 to an ext2 filesystem when revalidating cached information
96 2005-07-25 Theodore Ts'o <tytso@mit.edu>
98 * cache.c (safe_getenv): Pass in zero to the unusued arguments of
99 prctl(PR_GET_DUMPABLE) to avoid false positives from
102 2005-07-09 Andreas Dilger <adilger@clusterfs.com>
104 * getsize.c (blkid_get_dev_size): Use fstat/fstat64 to get size of
107 2006-06-30 Theodore Ts'o <tytso@mit.edu>
109 * Release of E2fsprogs 1.38
111 2005-06-27 Theodore Ts'o <tytso@mit.edu>
113 * read.c, dev.c: Fix the debugging/TEST_PROGRAM code so that it is
114 sufficiently standalone that "make check" will compile
115 without errors even when configure "--enable-blkid-debug"
118 2005-05-07 Theodore Ts'o <tytso@mit.edu>
120 * tag.c (blkid_find_dev_with_tag): If a device can't be found with
121 the specified search arguments, probe all new devices
122 before trying to verify existing devices, as a speed
125 * devname.c (blkid_probe_all_new): New function which only probes
126 devices are not known in the blkid cache. This takes
127 much less time than a full probe of all devices.
129 * cache.c, dev.c, devno.c, probe.c, probe.h: Fix gcc -Wall nits.
131 * blkidP.h, cache.c, dev.c, read.c, tag.c: Clean up the debugging
132 code so that we don't use the inline functions DEB_DUMP_*
133 and instead use the private functions blkid_debug_dump_*().
135 * tag.c (blkid_dev_has_tag): New function which returns 1 if a tag
136 has a particular type and possibly value.
138 * blkid.h, dev.c (blkid_dev_set_search, blkid_dev_next): Added new
139 function, blkid_dev_set_search(), which filters the
140 devices returned by the blkid_dev_next() iterator.
142 * tag.c, dev.c, Makefile.in: Add debugging test program code.
144 2005-05-05 Theodore Ts'o <tytso@mit.edu>
146 * probe.c (probe_cramfs), probe.h: Fix magic number recognition
147 for the cramfs filesystem, and add support to pull out the
148 label for cramfs filesystems. Thanks to Karel Zak (kzak
149 at redhat.com) for the patch.
151 2005-03-31 Theodore Ts'o <tytso@mit.edu>
153 * cache.c (blkid_get_cache): Use a much more paranoid
154 safe_getenv() function which will ignore the BLKID_FILE
155 environment varaible if the application program is setgid
156 or on a Linux system, if kernel doesn't think the process
157 is eligible to create a core dump. Also if glibc has
158 __secure_getenv(), then use it.
160 2005-03-21 Theodore Ts'o <tytso@mit.edu>
162 * Release of E2fsprogs 1.37
164 2005-03-21 Theodore Ts'o <tytso@mit.edu>
166 * cache.c (blkid_get_cache): Ignore the BLKID_FILE environment
167 variable if blkid_get_cache() is called from a setuid
170 2005-03-16 Theodore Ts'o <tytso@mit.edu>
172 * getsize.c (blkid_get_dev_size): Fix compilation problem on
175 2006-02-05 Theodore Ts'o <tytso@mit.edu>
177 * Release of E2fsprogs 1.36
179 2005-02-05 Theodore Ts'o <tytso@mit.edu>
181 * Makefile.in: Remove blkid.pc on a "make distclean"
183 2005-01-27 Theodore Ts'o <tytso@mit.edu>
185 * blkid.h, blkidP.h: Rename blkid_verify_devname() to be
186 blkid_verify(), and make it be a publically exported
189 2005-01-26 Theodore Ts'o <tytso@mit.edu>
191 * version.c: Add functions to query the version of the blkid library.
193 * blkid.pc.in: Add pkg-config files.
195 2005-01-25 Theodore Ts'o <tytso@mit.edu>
197 * probe.c: Windows can perform a "quick format" that doesn't clear
198 enough of the partition that the blkid probes can get
199 confused. Do the NTFS test first to deal with this
200 Windows misfeature. (Addresses Debian Bug #291990)
202 2005-01-21 Theodore Ts'o <tytso@mit.edu>
204 * probe.c (probe_oracleasm): Add support for recognizing Oracle
205 ASM volumes. Thanks to Manish Singh (manish.singh at
206 oracle.com) for supplying this patch.
208 2005-01-18 Theodore Ts'o <tytso@mit.edu>
210 * Makefile.in: Fix the kernel compile-time echo commands to be
211 consistent and portable
213 2005-01-13 Matthias Andree <matthias.andree@gmx.de>
215 * getsize.c: Move #include "blkidP.h" before <sys/queues.h> to avoid a
216 clash with the LIST_HEAD in the latter file.
218 2005-01-10 Theodore Ts'o <tytso@mit.edu>
220 * probe.c: Integrate and fix up Janos Farkas's patch. Version 0
221 swap headers won't ever have uuid/labels. Also, if the
222 swap partition is recreated without a label, make sure
223 label in the blkid file gets freed.
224 (get_ext2_info, probe_vfat, probe_msdos, probe_reiserfs):
225 Make sure the label is cleared from the blkid file if the
226 label gets cleared from the filesystem.
227 (probe_romfs): Avoid dereferencing a null pointer of the
228 label is not present.
230 2005-01-10 Janos Farkas <chexum+dev@gmail.com>
232 * probe.h: Define linux swap format.
234 * probe.c: Fetch uuid/label from swap headers if present. Mark
235 swap types as needing extra probe.
237 2005-01-05 Theodore Ts'o <tytso@mit.edu>
239 * save.c (save_dev): Don't save relative pathnames since they
240 won't be useful to another process.
242 * devname.c (probe_one): Make sure the device is a block device
243 before checking st_rdev.
245 * probe.c (probe_msdos): Mark msdos filesystems as type vfat, with
246 a SEC_TYPE of msdos, so that mount will use vfat to mount
247 msdos filesystems. (Addresses Debian bug #287455)
248 (probe_ext3): For ext3 filesystems, return a type of ext3
249 and a SEC_TYPE of ext2, for similar reasons as above.
250 (blkid_verify_devname): Allow non-block devices to be
251 verified, for testing purposes.
253 2004-12-14 Theodore Ts'o <tytso@mit.edu>
255 * Makefile.in: Use Linux-kernel-style makefile output for "make
258 * Makefile.in (installdirs): Use $(MKINSTALLDIRS) macro
260 2004-11-30 Theodore Ts'o <tytso@mit.edu>
262 * probe.c, probe.h: Avoid using uint and uchar types, to allow
263 compilation using dietlibc.
265 * Makefile.in: Use Linux-kernel-style makefile output to make it
266 easier to see errors/warnings.
268 2004-11-19 Theodore Ts'o <tytso@mit.edu>
270 * probe.c (probe_ocfs): Fix bug where the wrong size for "ocfs1"
271 was being passed to blkid_set_tag(). Thanks to Andrea
272 Dilger for pointing this out.
274 2004-09-17 Theodore Ts'o <tytso@mit.edu>
276 * probe.c, probe.h: Add support for ocfs2 detection, courtesy of
277 manish.singh@oracle.com
279 * getsize.c: Clean up header #include's. Include sys/disk.h if
280 present since this is the new place where the
281 DIOCGMEDIASIZE ioctl is defined on FreeBSD systems.
282 (Addresses Debian bug #264630)
284 * llseek.c (blkid_llseek): On non-linux systems, use lseek64() if
285 it is present. (Addresses Debian bug #269044)
287 2004-05-12 Theodore Ts'o <tytso@mit.edu>
289 * read.c (blkid_read_cache): Add missing fclose() which was
290 causing a memory and file descriptor leak. Thanks to
291 magnus.fromreide at teligent.se.
293 2004-04-19 Theodore Ts'o <tytso@mit.edu>
295 * probe.c (blkid_verify_devname): If the time is earlier than the
296 last modified time of the device, then force a reverify;
297 it means the system time may not be trustworthy.
299 2004-04-12 Theodore Ts'o <tytso@mit.edu>
301 * cache.c (blkid_get_cache): If the BLKID_FILE environment
302 variable is set, use it to find the blkid.tab file if the
303 calling application did not supply a filename.
305 2004-04-03 Theodore Ts'o <tytso@mit.edu>
307 * Makefile.in: Update the modtime even if subst doesn't need to
308 update the libblkid man page, to avoid always re-running
309 subst, especially since there are no dependencies on the
312 2004-04-03 Theodore Ts'o <tytso@mit.edu>
314 * blkid_types.h.in: Remove check for _UUID_TYPES since uuid_types.h
317 2004-03-21 Theodore Ts'o <tytso@mit.edu>
319 * getsize.c (blkid_get_dev_size): Don't close the file descriptor
320 when determining the size. This bug was introduced in the
321 previous getsize changes, and was screwing up the blkid
322 library probe functions. (Addresses Debian Bug #239191)
324 2004-03-08 Theodore Ts'o <tytso@mit.edu>
326 * getsize.c (blkid_get_dev_size): Only use the BLKGETSIZE64 ioctl
327 on Linux 2.6 since it is unreliable in Linux 2.4..
328 (Addresses Debian Bug #236528) Fix typo in the ioctl used
331 2004-03-04 Theodore Ts'o <tytso@mit.edu>
333 * probe.c (probe_ocfs), probe.h: Add support for the Oracle
334 Cluster Filesystem (ocfs). Patches courtesy of Rusty
335 Lynch (rusty@linux.co.intel.com).
337 2004-03-02 Theodore Ts'o <tytso@mit.edu>
339 * getsize.c (blkid_get_dev_size): Update getsize functions to use
340 Apple Darwin and Linux 64-bit ioctl's
342 2004-02-29 Brian Bergstrand <brian@bergstrand.org>
344 * Makefile.in: Use $(BSDLIB_PIC_FLAG) to determine whether to use
347 2004-02-28 Theodore Ts'o <tytso@mit.edu>
349 * Release of E2fsprogs 1.35
351 2003-12-07 Theodore Ts'o <tytso@mit.edu>
353 * probe.c, read.c, blkidP.h: Fix gcc -Wall nitpicks.
355 2003-07-25 Theodore Ts'o <tytso@mit.edu>
357 * Release of E2fsprogs 1.34
359 2003-07-22 Theodore Ts'o <tytso@mit.edu>
361 * probe.c (probe_udf): Add specific UDF probing code, and probe
362 UDF before checking for ISO9660 filesystems.
364 2003-07-21 Theodore Ts'o <tytso@mit.edu>
366 * probe.c (blkid_known_fstype): New function which returns true if
367 the filesystem type is one which this blkid library supports.
369 2003-07-20 Theodore Ts'o <tytso@mit.edu>
371 * probe.c: When revalidating a filesystem, delete the LABEL tag if
372 the filesystem no longer has a label.
374 2003-07-18 Theodore Ts'o <tytso@mit.edu>
376 * tag.c (blkid_find_dev_with_tag): If blkid_probe_all() returns an
377 error, then reflect that error upwards; don't try again
378 (forever). This prevents an infinite loop when /proc and
379 the /etc/blkid.tab file are not present.
381 2003-07-06 Theodore Ts'o <tytso@mit.edu>
383 * blkid_types.h.in: Fix gcc -Wall nitpicks (don't use #elsif)
385 * cache.c: Fix gcc -Wall nitpicks (missing #include <string.h>)
387 * probe.h: Fix gcc -Wall nitpicks (missing casts)
389 2003-05-21 Theodore Ts'o <tytso@mit.edu>
391 * Makefile.in (ELF_OTHER_LIBS): The blkid library depends on the
392 uuid library. (Addresses Debian bug: #194094)
394 2003-04-21 Theodore Ts'o <tytso@mit.edu>
396 * Release of E2fsprogs 1.33
398 2003-04-19 Theodore Ts'o <tytso@mit.edu>
400 * blkidP.h: Fix gcc -Wall warnings by using __inline__ instead of
403 2003-04-02 Theodore Ts'o <tytso@mit.edu>
405 * probe.c, probe.h: Fix XFS superblock definition. Add support to
406 extract UUID and labels for JFS and romfs. (Thanks to
407 Janos Farkas <chexum+dev@gmail.com>.)
409 2003-03-30 Theodore Ts'o <tytso@mit.edu>
411 * getsize.c: #include stat.h for the Apple Darwin port
413 2003-03-17 Theodore Ts'o <tytso@mit.edu>
415 * cache.c: Initialize blkid_debug_mask to zero since some
416 operating systems can't deal with variables in the common
417 section in shared libraries.
419 * getsize.c (blkid_get_dev_size): Fix Apple Darwin port.
421 2003-03-06 <tytso@mit.edu>
423 * devname.c (probe_one): Fix bug; if a partition has no known
424 type, don't derference a null pointer and crash.
426 2003-03-06 Theodore Tso <tytso@mit.edu>
428 * blkid_types.h.in: Don't redefine types if other e2fsprogs
429 *_types.h files have been included already.
431 * list.h, probe.h: Use static inline instead of extern inline to
432 comply with C99 inline support.
434 * devname.c (blkid_probe_all): Avoid GCC extension; don't
435 initialize an array with the address of an automatic
438 * Makefile.in: Eliminate -Wall as a C compiler option by default;
441 2003-03-02 Theodore Ts'o <tytso@mit.edu>
443 * Makefile.in: Don't install list.h, since it's not used by the
446 * blkid_types.h.in: Change #ifndef protection to use _BLKID_TYPES_H
448 2003-03-01 Theodore Ts'o <tytso@mit.edu>
450 * tag.c (blkid_set_tag): Fix bug; don't return an error when
451 deleting a tag by setting the value to NULL. This
452 caused a failed device verification to loop forever in
453 blkid_verify_devname().
455 * resolve.c (main): Update debugging test program so that it
456 compiles with the latest blkid API changes.
458 * libblkid.3.in: Update manual page to reflect recent API changes.
460 * resolve.c (blkid_get_tag_value): If the passed-in cache is NULL,
461 then get and release a temporary cache as a convenience to
462 the calling application.
463 (blkid_get_devname): If the passed in token does not
464 contain an '=', and value is NULL, then return the passed
467 * read.c (blkid_read_cache): Don't return 0 since blkid_read_cache
470 * blkid.h: Add include of sys/types.h, since we use dev_t
472 2003-02-27 Theodore Ts'o <tytso@mit.edu>
474 * resolve.c (blkid_get_tag_value): Rename function (used to be
475 blkid_get_tagname_devname)
477 2003-02-22 Theodore Ts'o <tytso@mit.edu>
479 * devname.c (blkid_probe_all), tag.c (blkid_find_dev_with_tag):
480 Call blkid_read_cache to make sure the in-core version of
481 the data structure is the latest. After probing all of
482 the devices in blkid_probe_all() force the cache file to
483 be written out, the probe_all represents a lot of effort
484 that shouldn't be lost.
486 * tag.c (blkid_set_tag): Always replace an existing tag with the
487 new value; we no longer suppor multiple tags with the same
488 value attached to a device, as this was never really
489 supported well, and significantly increased the code
492 * probe.c (probe_ext2): Change handling of ext2/ext3 filesystems.
493 Ext3 filesystems are now always treated as ext2
494 filesystems, with a special SEC_TYPE tag set to ext3.
495 This was necessary because we now longer support multiple
496 tags with the same name attached to a device.
498 * save.c (save_dev): Don't special case the TYPE tag; just write
499 it out along with all of the normal tags.
500 (blkid_flush_cache): Eliminate special case code for stdout.
502 * cache.c (blkid_new_cache, blkid_get_cache): Eliminate
503 blkid_new_cache and fold into blkid_get_cache (moved to
506 * read.c (blkid_read_cache): New function created from
507 blkid_get_cache which used to be in read.c that only
508 updates the in-core cache data structure from the file.
509 Uses the file modification time of the cache file to
510 determine whether the cache file needs to be re-read.
512 * cache.c, dev.c, devname.c, devno.c, probe.c, read.c, resolve.c,
513 save.c, tag.c, blkidP.h: Add dynamic debugging
514 capabilities, controlled by the environment variable
517 2003-02-16 Theodore Ts'o <tytso@mit.edu>
519 * blkid.h, dev.c, devname.c, probe.c, read.c, resolve.c: Rename
520 blkid_get_devname() to blkid_get_dev(). Also rename
521 blkid_get_token() to blkid_get_devname(). This more
522 accurately describes what these functions do.
524 2003-02-14 Theodore Ts'o <tytso@mit.edu>
526 * blkidP.h, devname.c (blkid_get_devname), read.c (parse_tag),
527 save.c (save_dev): Remove bid_id, as it is not used for
530 * Makefile.in (blkid): When building the blkid, don't link against
531 the shared blkid library; link only against the static
534 * blkidP.h (struct blkid_struct_dev): Remove bid_size and
535 bid_devsize (since they aren't used any more) and add
536 bid_pri to the device structure.
538 * devname.c (probe_one, lvm_probe_all, evms_probe_all,
539 blkid_probe_all): Set the bid_pri filed in the device
540 structure depending on type of device so that EVMS, LVM,
541 and MD devices get priority over normal devices.
543 * tag.c (blkid_find_dev_with_tag): When looking for a device that
544 matches the search criteria, return the one with the
545 largest priority (bid_pri).
547 * save.c (save_dev): Write out the PRI tag from bid_pri.
549 * read.c (parse_tag): Parse the PRI tag and store its value in
552 * probe.c (blkid_verify_devname): If the device does not exist
553 (open returns ENOENT), treat this as a fatal error and
554 release the device. After verifying the device, set the
555 cache as being modified so the changes are written out.
557 * resolve.c (main): Change the test driver to get a blkid cache
558 and pass it to blkid_get_tagname_devname and
559 blkid_get_token, as the cache is no longer optional.
561 2003-02-12 Theodore Ts'o <tytso@mit.edu>
563 * blkid.h, blkidP.h, cache.c, dev.c, devname.c, devno.c, probe.c,
564 probe.h, read.c, resolve.c, save.c, tag.c: Wholesale
565 changes to library to simplify the implementation and
566 shrink its size. Change library version to be 1.0.
568 2003-01-27 Theodore Ts'o <tytso@mit.edu>
570 * read.c (parse_tag): Do not return that blkid_tag when parsing
573 * resolve.c (blkid_get_token, blkid_get_tagname_devname): Fold in
574 code from removed functions
576 * tag.c (blkid_create_tag): Don't return the newly tag strcture
577 any more, as it's not needed.
578 (blkid_find_tag_cache, blkid_get_tag_cache,
579 blkid_token_to_tag, blkid_find_tv_tags): Remove these
580 functions, as they are either only used once or have
581 interfaces that should be deprecated.
582 (blkid_find_tag_dev, blkid_find_head_cache): Replace use
583 of blkid_tag with one or two const char * type/value
585 (blkid_find_dev_with_tag): Fold in code from removed functions
587 * probe.h, probe.c: Use a more sophisticated set of byte-swapping
588 routines which are more compact and efficient. Drop
589 calculation of bid_free, since it's unnecessary. Avoid
591 * save.c (blkid_save_cache): Set the permissions on the blkid
594 2003-01-25 Theodore Ts'o <tytso@mit.edu>
596 * cache.c, dev.c, devname.c, devno.c, getsize.c, llseek.c,
597 probe.c, probe.h, read.c, resolve.c, save.c, tag.c,
598 blkid.h, blkidP.h: Separate public and private
599 interfaces into separate header files. Start
600 separating internal implementation details from the
601 publically exported interface.
603 * devname.c: Add support for EVMS
605 * blkid.h, cache.c, dev.c, devname.c, devno.c, probe.c, probe.h,
606 read.c, resolve.c, save.c, tag.c: Fix gcc -Wall nits.
608 2003-01-24 Theodore Ts'o <tytso@mit.edu>
610 * save.c (blkid_save_cache): Use mkstemp() instead mktemp().
612 2002-10-04 Jordan Breeding <jordan.breeding@attbi.com>
614 * Forward port to e2fsprogs 1.30
616 2001-09-20 Andreas Dilger <adilger@turbolinux.com>
618 * Initial release of libblkid.