From ccdf9fda902256ba71c073050d99e57cb1ff953f Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 13 May 2011 12:48:57 +0200 Subject: [PATCH] libblkid: cleanup prober initialization Signed-off-by: Karel Zak --- shlibs/blkid/src/partitions/partitions.c | 7 ++++++- shlibs/blkid/src/probe.c | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/shlibs/blkid/src/partitions/partitions.c b/shlibs/blkid/src/partitions/partitions.c index b4aca29bf2..b89dad5bda 100644 --- a/shlibs/blkid/src/partitions/partitions.c +++ b/shlibs/blkid/src/partitions/partitions.c @@ -620,7 +620,7 @@ details_only: int blkid_partitions_do_subprobe(blkid_probe pr, blkid_partition parent, const struct blkid_idinfo *id) { - int rc = 1; + int rc = 1, flags; blkid_partlist ls; blkid_loff_t saved_sz, saved_off, sz, off; @@ -647,6 +647,9 @@ int blkid_partitions_do_subprobe(blkid_probe pr, blkid_partition parent, return -1; } + /* flags depends on size of the partition */ + flags = pr->flags; + /* define sub-range with in device */ blkid_probe_set_dimension(pr, off, sz); @@ -659,6 +662,8 @@ int blkid_partitions_do_subprobe(blkid_probe pr, blkid_partition parent, /* restore the original setting */ blkid_probe_set_dimension(pr, saved_off, saved_sz); + pr->flags = flags; + DBG(DEBUG_LOWPROBE, printf( "parts: <---- %s subprobe done (parent=%p, rc=%d)\n", id->name, parent, rc)); diff --git a/shlibs/blkid/src/probe.c b/shlibs/blkid/src/probe.c index 54af59333c..7cece7ef25 100644 --- a/shlibs/blkid/src/probe.c +++ b/shlibs/blkid/src/probe.c @@ -348,7 +348,6 @@ void blkid_reset_probe(blkid_probe pr) if (!pr) return; - blkid_probe_reset_buffer(pr); blkid_probe_reset_vals(pr); pr->cur_chain = NULL; @@ -595,6 +594,7 @@ int blkid_probe_set_device(blkid_probe pr, int fd, return -1; blkid_reset_probe(pr); + blkid_probe_reset_buffer(pr); if ((pr->flags & BLKID_FL_PRIVATE_FD) && pr->fd >= 0) close(pr->fd); @@ -602,12 +602,17 @@ int blkid_probe_set_device(blkid_probe pr, int fd, pr->flags &= ~BLKID_FL_PRIVATE_FD; pr->flags &= ~BLKID_FL_TINY_DEV; pr->flags &= ~BLKID_FL_CDROM_DEV; + pr->prob_flags = 0; pr->fd = fd; pr->off = off; pr->size = 0; pr->devno = 0; + pr->disk_devno = 0; pr->mode = 0; pr->blkssz = 0; + pr->wipe_off = 0; + pr->wipe_size = 0; + pr->wipe_chain = NULL; #if defined(POSIX_FADV_RANDOM) && defined(HAVE_POSIX_FADVISE) /* Disable read-ahead */ -- 2.47.2