<br><tt><font size=2>From: Lin Feng Shen <shenlinf@cn.ibm.com></font></tt>
<br>
<br><font size=2 face="sans-serif">"mount [devname | dirname]"
showes mount points according to the device</font>
<br><font size=2 face="sans-serif">name or directory name. Generally speaking,
two path names shouldn't be</font>
<br><font size=2 face="sans-serif">different due to additional "/",
e.g. /distros and /distros/, but it </font>
<br><font size=2 face="sans-serif">seems that mount command doesn't handle
it properly, e.g.</font>
<br><font size=2 face="sans-serif">----------</font>
<br><font size=2 face="sans-serif">crash> mount</font>
<br><font size=2 face="sans-serif">    VFSMOUNT    
    SUPERBLK     TYPE   DEVNAME    
  DIRNAME</font>
<br><font size=2 face="sans-serif">...</font>
<br><font size=2 face="sans-serif">c00000000224eb80 c000000002589800 ext3
  /dev/sda2     /boot</font>
<br><font size=2 face="sans-serif">...</font>
<br><font size=2 face="sans-serif">crash> mount /boot</font>
<br><font size=2 face="sans-serif">    VFSMOUNT    
    SUPERBLK     TYPE   DEVNAME    
  DIRNAME</font>
<br><font size=2 face="sans-serif">c00000000224eb80 c000000002589800 ext3
  /dev/sda2     /boot</font>
<br><font size=2 face="sans-serif">crash> mount /boot/</font>
<br><font size=2 face="sans-serif">crash></font>
<br><font size=2 face="sans-serif">----------</font>
<br>
<br><font size=2 face="sans-serif">The patch provides pathcmp() replacing
STREQ to compare two path names.</font>
<br><font size=2 face="sans-serif">It's created against crash-4.0-25.4
in SLES10_RC3.</font>
<br>
<br><tt><font size=2>Signed-off-by: Lin Feng Shen <shenlinf@cn.ibm.com></font></tt>
<br><tt><font size=2>---</font></tt>
<br>
<br><font size=2 face="sans-serif">diff -upNr crash-4.0-2.18.orig/defs.h
crash-4.0-2.18/defs.h</font>
<br><font size=2 face="sans-serif">--- crash-4.0-2.18.orig/defs.h  
     2006-07-05 23:46:10.000000000 -0400</font>
<br><font size=2 face="sans-serif">+++ crash-4.0-2.18/defs.h    
   2006-07-06 06:30:12.000000000 -0400</font>
<br><font size=2 face="sans-serif">@@ -91,6 +91,7 @@</font>
<br><font size=2 face="sans-serif"> #define STREQ(A, B)    
 (A && B && (strcmp((char *)(A), (char *)(B)) == 0))</font>
<br><font size=2 face="sans-serif"> #define STRNEQ(A, B)    
(A && B && \</font>
<br><font size=2 face="sans-serif">         (strncmp((char
*)(A), (char *)(B), strlen((char *)(B))) == 0))</font>
<br><font size=2 face="sans-serif">+#define PATHEQ(A, B)    
(A && B && (pathcmp((char *)(A), (char *)(B)) == 0))</font>
<br><font size=2 face="sans-serif"> #define BZERO(S, N)    
 (memset(S, NULLCHAR, N))</font>
<br><font size=2 face="sans-serif"> #define BCOPY(S, D, C)  
(memcpy(D, S, C))</font>
<br><font size=2 face="sans-serif"> #define BNEG(S, N)    
  (memset(S, 0xff, N))</font>
<br><font size=2 face="sans-serif">@@ -2876,6 +2877,7 @@ int empty_list(ulong);</font>
<br><font size=2 face="sans-serif"> int machine_type(char *);</font>
<br><font size=2 face="sans-serif"> void command_not_supported(void);</font>
<br><font size=2 face="sans-serif"> void option_not_supported(int);</font>
<br><font size=2 face="sans-serif">+int pathcmp(char* p1, char* p2);</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> /* </font>
<br><font size=2 face="sans-serif">diff -upNr crash-4.0-2.18.orig/filesys.c
crash-4.0-2.18/filesys.c</font>
<br><font size=2 face="sans-serif">--- crash-4.0-2.18.orig/filesys.c  
     2006-07-05 23:46:09.000000000 -0400</font>
<br><font size=2 face="sans-serif">+++ crash-4.0-2.18/filesys.c  
     2006-07-06 06:30:22.000000000 -0400</font>
<br><font size=2 face="sans-serif">@@ -1193,7 +1193,7 @@ cmd_mount(void)</font>
<br><font size=2 face="sans-serif">           
                     
       continue;</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif">         
               
       for (i = 0; i < c; i++) {</font>
<br><font size=2 face="sans-serif">-        
               
               if
(STREQ(arglist[i], spec_string)) </font>
<br><font size=2 face="sans-serif">+        
               
               if
(PATHEQ(arglist[i], spec_string)) </font>
<br><font size=2 face="sans-serif">         
               
               
       found = TRUE;</font>
<br><font size=2 face="sans-serif">         
               
       }</font>
<br><font size=2 face="sans-serif">         
               
       if (found) {</font>
<br><font size=2 face="sans-serif">diff -upNr crash-4.0-2.18.orig/tools.c
crash-4.0-2.18/tools.c</font>
<br><font size=2 face="sans-serif">--- crash-4.0-2.18.orig/tools.c  
     2006-07-05 23:46:10.000000000 -0400</font>
<br><font size=2 face="sans-serif">+++ crash-4.0-2.18/tools.c    
   2006-07-06 06:28:01.000000000 -0400</font>
<br><font size=2 face="sans-serif">@@ -4328,3 +4328,23 @@ option_not_supported(int
c)</font>
<br><font size=2 face="sans-serif">         error(FATAL,
"-%c option not supported on this architecture or kernel\n",
</font>
<br><font size=2 face="sans-serif">         
       (char)c);</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif">+</font>
<br><font size=2 face="sans-serif">+/*</font>
<br><font size=2 face="sans-serif">+ * The function to compare two device
paths</font>
<br><font size=2 face="sans-serif">+ */</font>
<br><font size=2 face="sans-serif">+int</font>
<br><font size=2 face="sans-serif">+pathcmp(char* p1, char* p2)</font>
<br><font size=2 face="sans-serif">+{</font>
<br><font size=2 face="sans-serif">+        char c1,
c2;</font>
<br><font size=2 face="sans-serif">+</font>
<br><font size=2 face="sans-serif">+        do {</font>
<br><font size=2 face="sans-serif">+          
     if ((c1 = *p1++) == '/')</font>
<br><font size=2 face="sans-serif">+          
             while(*p1 == '/'){ p1++;
}</font>
<br><font size=2 face="sans-serif">+          
     if ((c2 = *p2++) == '/')</font>
<br><font size=2 face="sans-serif">+          
             while(*p2 == '/'){ p2++;
}</font>
<br><font size=2 face="sans-serif">+          
     if (c1 == '\0')</font>
<br><font size=2 face="sans-serif">+          
             return ((c2 == '/') &&
(*p2 == '\0')) ? 0 : c1 - c2;</font>
<br><font size=2 face="sans-serif">+        } while
(c1 == c2);</font>
<br><font size=2 face="sans-serif">+</font>
<br><font size=2 face="sans-serif">+        return
( (c2 == '\0') && (c1 == '/') && (*p1 == '\0')) ? 0 : c1
- c2;</font>
<br><font size=2 face="sans-serif">+}</font>