Re: [PATCH 2/2] kvm tools: Simplify search for root device

2011-05-07 Thread Pekka Enberg

On Fri, 6 May 2011, Sasha Levin wrote:

Use /dev/block to find the block device used for root
instead of searching through mounts.

Signed-off-by: Sasha Levin levinsasha...@gmail.com


Weren't there distro differences in this area? Prasad, Asias, does this 
work for you?

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] kvm tools: Simplify search for root device

2011-05-07 Thread Sasha Levin
On Sat, 2011-05-07 at 11:41 +0300, Pekka Enberg wrote:
 On Fri, 6 May 2011, Sasha Levin wrote:
  Use /dev/block to find the block device used for root
  instead of searching through mounts.
 
  Signed-off-by: Sasha Levin levinsasha...@gmail.com
 
 Weren't there distro differences in this area? Prasad, Asias, does this 
 work for you?

The distro differences were when we tried using /dev/ROOT and found it's
optional and doesn't always exist.

-- 

Sasha.

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] kvm tools: Simplify search for root device

2011-05-07 Thread Prasad Joshi
On Sat, May 7, 2011 at 9:41 AM, Pekka Enberg penb...@kernel.org wrote:
 On Fri, 6 May 2011, Sasha Levin wrote:

 Use /dev/block to find the block device used for root
 instead of searching through mounts.

 Signed-off-by: Sasha Levin levinsasha...@gmail.com

 Weren't there distro differences in this area? Prasad, Asias, does this work
 for you?

Ya it works on my machine.

Thanks and Regards,
Prasad

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2] kvm tools: Simplify search for root device

2011-05-06 Thread Sasha Levin
Use /dev/block to find the block device used for root
instead of searching through mounts.

Signed-off-by: Sasha Levin levinsasha...@gmail.com
---
 tools/kvm/kvm-run.c |   48 +++-
 1 files changed, 3 insertions(+), 45 deletions(-)

diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c
index d5a952f..6fee8ae 100644
--- a/tools/kvm/kvm-run.c
+++ b/tools/kvm/kvm-run.c
@@ -249,56 +249,14 @@ static const char *find_kernel(void)
 
 static int root_device(char *dev, long *part)
 {
-   FILE   *fp;
-   char   *line;
-   inttmp;
-   size_t nr_read;
-   char   device[PATH_MAX];
-   char   mnt_pt[PATH_MAX];
-   char   resolved_path[PATH_MAX];
-   char   *p;
struct stat st;
 
-   fp = fopen(/proc/mounts, r);
-   if (!fp)
+   if (stat(/, st)  0)
return -1;
 
-   line = NULL;
-   tmp  = 0;
-   while (!feof(fp)) {
-   if (getline(line, nr_read, fp)  0)
-   break;
-   sscanf(line, %s %s, device, mnt_pt);
-   if (!strncmp(device, /dev, 4)  !strcmp(mnt_pt, /)) {
-   tmp = 1;
-   break;
-   }
-   }
-   fclose(fp);
-   free(line);
-
-   if (!tmp)
-   return -1;
-
-   /* get the absolute path */
-   if (!realpath(device, resolved_path))
-   return -1;
-
-   /* find the partition number */
-   p = resolved_path;
-   while (*p) {
-   if (isdigit(*p)) {
-   strncpy(dev, resolved_path, p - resolved_path);
-   *part = atol(p);
-   break;
-   }
-   p++;
-   }
-
-   /* verify the device path */
-   if (stat(dev, st)  0)
-   return -1;
+   *part = minor(st.st_dev);
 
+   sprintf(dev, /dev/block/%u:0, major(st.st_dev));
if (access(dev, R_OK)  0)
return -1;
 
-- 
1.7.5.rc3

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html