diff options
author | Karel Zak | 2010-11-23 19:49:58 +0100 |
---|---|---|
committer | Karel Zak | 2010-11-23 19:56:57 +0100 |
commit | e8fc977aba09ddbd89b25276fd777c3f0eef9299 (patch) | |
tree | 6d397f0e4b8ea68f17952d4b9ae03b17db6aba14 /shlibs/blkid/src/probe.c | |
parent | mount: mark die() as nonreturn (diff) | |
download | kernel-qcow2-util-linux-e8fc977aba09ddbd89b25276fd777c3f0eef9299.tar.gz kernel-qcow2-util-linux-e8fc977aba09ddbd89b25276fd777c3f0eef9299.tar.xz kernel-qcow2-util-linux-e8fc977aba09ddbd89b25276fd777c3f0eef9299.zip |
libblkid: cache is incorrectly revalidated
for example:
# echo "password" | cryptsetup luksFormat /dev/loop7
# blkid /dev/loop7
/dev/loop7: UUID="09240a80-1cf1-456d-9a6e-a35b39dc1f2b" TYPE="crypto_LUKS"
# pvcreate -ff /dev/loop7
# blkid /dev/loop7
#
the second blkid call has to return info about LVM.
Reported-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'shlibs/blkid/src/probe.c')
-rw-r--r-- | shlibs/blkid/src/probe.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/shlibs/blkid/src/probe.c b/shlibs/blkid/src/probe.c index 3698b99b3..33e2fe130 100644 --- a/shlibs/blkid/src/probe.c +++ b/shlibs/blkid/src/probe.c @@ -431,14 +431,13 @@ int __blkid_probe_invert_filter(blkid_probe pr, int chain) struct blkid_chain *chn; unsigned long *fltr; - fltr = blkid_probe_get_filter(pr, chain, FALSE); - if (!fltr) - return -1; - chn = &pr->chains[chain]; + if (!chn->driver->has_fltr || !chn->fltr) + return -1; + for (i = 0; i < blkid_bmp_nwords(chn->driver->nidinfos); i++) - fltr[i] = ~fltr[i]; + chn->fltr[i] = ~chn->fltr[i]; DBG(DEBUG_LOWPROBE, printf("probing filter inverted\n")); /* blkid_probe_dump_filter(pr, chain); */ |