1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-03-10 16:58:47 +03:00

Add text format specific 'rlocn' ignore flag and access functions.

Adding a flag to the 'rlocn' structure in the mda header of the
text format allows us to flip a bit to ignore an area on disk that
stores the metadata via the text format specific mda_header.
This patch defines the flag and access functions to manage the flag.
Other patches will manage the ignore on a format-independent basis,
by using a flag in the metadata_area structure.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
This commit is contained in:
Dave Wysochanski 2010-06-28 20:29:57 +00:00
parent 7c604e7649
commit d144d5eeb7
2 changed files with 23 additions and 0 deletions

View File

@ -66,6 +66,19 @@ struct text_context {
char *desc; /* Description placed inside file */
};
int rlocn_is_ignored(const struct raw_locn *rlocn)
{
return (rlocn->flags & RAW_LOCN_IGNORED ? 1 : 0);
}
void rlocn_set_ignored(struct raw_locn *rlocn, int value)
{
if (value)
rlocn->flags |= RAW_LOCN_IGNORED;
else
rlocn->flags &= ~RAW_LOCN_IGNORED;
}
/*
* NOTE: Currently there can be only one vg per text file.
*/

View File

@ -46,6 +46,13 @@ struct pv_header {
struct disk_locn disk_areas_xl[0]; /* Two lists */
} __attribute__ ((packed));
/*
* Ignore this raw location. This allows us to
* ignored metadata areas easily, and thus balance
* metadata across VGs with many PVs.
*/
#define RAW_LOCN_IGNORED 0x00000001
/* On disk */
struct raw_locn {
uint64_t offset; /* Offset in bytes to start sector */
@ -54,6 +61,9 @@ struct raw_locn {
uint32_t flags;
} __attribute__ ((packed));
int rlocn_is_ignored(const struct raw_locn *rlocn);
void rlocn_set_ignored(struct raw_locn *rlocn, int value);
/* On disk */
/* Structure size limited to one sector */
struct mda_header {