From 2e3b40d3ddc26f26c06b811ce7edc6a8e1392ca1 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 18 Jan 2013 16:11:08 +0100 Subject: [PATCH] libfdisk: add label->changed flag Signed-off-by: Karel Zak --- libfdisk/src/fdiskP.h | 2 ++ libfdisk/src/label.c | 13 +++++++++++++ libfdisk/src/libfdisk.h | 4 ++++ 3 files changed, 19 insertions(+) diff --git a/libfdisk/src/fdiskP.h b/libfdisk/src/fdiskP.h index 39e76da309..8f9905d81d 100644 --- a/libfdisk/src/fdiskP.h +++ b/libfdisk/src/fdiskP.h @@ -167,6 +167,8 @@ struct fdisk_label { size_t nparts_max; /* maximal number of partitions */ size_t nparts_cur; /* number of currently used partitions */ + unsigned int changed:1; /* label has been modified */ + const struct fdisk_label_operations *op; }; diff --git a/libfdisk/src/label.c b/libfdisk/src/label.c index 02298498da..cd2b38cc78 100644 --- a/libfdisk/src/label.c +++ b/libfdisk/src/label.c @@ -238,3 +238,16 @@ void fdisk_deinit_label(struct fdisk_label *lb) if (lb->op->deinit) lb->op->deinit(lb); } + +void fdisk_label_set_changed(struct fdisk_label *lb, int changed) +{ + assert(lb); + + lb->changed = changed ? 1 : 0; +} + +int fdisk_label_is_changed(struct fdisk_label *lb) +{ + assert(lb); + return lb ? lb->changed : 0; +} diff --git a/libfdisk/src/libfdisk.h b/libfdisk/src/libfdisk.h index 7fcd3d74e3..379fb4d47a 100644 --- a/libfdisk/src/libfdisk.h +++ b/libfdisk/src/libfdisk.h @@ -87,6 +87,10 @@ extern struct fdisk_parttype *fdisk_get_partition_type(struct fdisk_context *cxt extern int fdisk_set_partition_type(struct fdisk_context *cxt, int partnum, struct fdisk_parttype *t); +extern void fdisk_label_set_changed(struct fdisk_label *lb, int changed); +extern int fdisk_label_is_changed(struct fdisk_label *lb); + + /* alignment.c */ extern int fdisk_reset_alignment(struct fdisk_context *cxt); -- 2.47.2