blkid: use list_for_each_safe in garbage collection

We need to use list_for_each_safe in case a device gets removed from
the list during garbage collection.

Also make the manpage slightly more informative about
what the -g garbage collection option does.

Addresses-Debian-Bug: #487758, #487783

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
bitmap-optimize
Eric Sandeen 2008-06-20 22:32:49 -05:00 committed by Theodore Ts'o
parent bbf6d45359
commit 772b89d342
2 changed files with 4 additions and 3 deletions

View File

@ -154,13 +154,13 @@ void blkid_put_cache(blkid_cache cache)
void blkid_gc_cache(blkid_cache cache)
{
struct list_head *p;
struct list_head *p, *pnext;
struct stat st;
if (!cache)
return;
list_for_each(p, &cache->bic_devs) {
list_for_each_safe(p, pnext, &cache->bic_devs) {
blkid_dev dev = list_entry(p, struct blkid_struct_dev, bid_devs);
if (!p)
break;

View File

@ -61,7 +61,8 @@ scanned but not necessarily available at this time), specify
.IR /dev/null.
.TP
.B \-g
Perform a garbage collection pass on the blkid cache.
Perform a garbage collection pass on the blkid cache to remove
devices which no longer exist.
.TP
.B \-h
Display a usage message and exit.