From ffd4820ffe953b0583e3a9357e37d74bed3a2320 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Wed, 15 Sep 2010 16:39:36 +0100 Subject: New API: part-to-dev: Convert partition name to device name. This adds a formal API for going from a partition to the containing device, eg. /dev/sda1 -> /dev/sda --- daemon/devsparts.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'daemon') diff --git a/daemon/devsparts.c b/daemon/devsparts.c index 95e4a682..1781def3 100644 --- a/daemon/devsparts.c +++ b/daemon/devsparts.c @@ -26,6 +26,8 @@ #include #include +#include "c-ctype.h" + #include "daemon.h" #include "actions.h" @@ -190,3 +192,28 @@ do_list_partitions (void) { return foreach_block_device(add_partitions); } + +char * +do_part_to_dev (const char *part) +{ + int err = 1; + size_t n = strlen (part); + + while (n >= 1 && c_isdigit (part[n-1])) { + err = 0; + n--; + } + + if (err) { + reply_with_error ("device name is not a partition"); + return NULL; + } + + char *r = strndup (part, n); + if (r == NULL) { + reply_with_perror ("strdup"); + return NULL; + } + + return r; +} -- cgit