summaryrefslogtreecommitdiff
path: root/fdisks/fdisk.c
diff options
context:
space:
mode:
Diffstat (limited to 'fdisks/fdisk.c')
-rw-r--r--fdisks/fdisk.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/fdisks/fdisk.c b/fdisks/fdisk.c
index 7c3fee4b..dd06b9b2 100644
--- a/fdisks/fdisk.c
+++ b/fdisks/fdisk.c
@@ -352,6 +352,22 @@ sector_t align_lba(struct fdisk_context *cxt, sector_t lba, int direction)
return res;
}
+
+sector_t align_lba_in_range(struct fdisk_context *cxt,
+ sector_t lba, sector_t start, sector_t stop)
+{
+ start = align_lba(cxt, start, ALIGN_UP);
+ stop = align_lba(cxt, stop, ALIGN_DOWN);
+
+ lba = align_lba(cxt, lba, ALIGN_NEAREST);
+
+ if (lba < start)
+ return start;
+ else if (lba > stop)
+ return stop;
+ return lba;
+}
+
int warn_geometry(struct fdisk_context *cxt)
{
char *m = NULL;