WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [Patch] fix canonicalize-existing vbd file

Hi, Keir and Ian

Thank you, Ian.
How about the attached new patch?

Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx>

Best Regards,

Akio Takebe

>Keir Fraser writes ("Re: [Xen-devel] [Patch] fix canonicalize-existing vbd 
>file"):
>> Do you mean to 'test -f "$file"'? A symlink will always fail 'test -f', and
>> $p can be a symlink.
>
>test -f calls stat(2) rather than lstat(2) and only falls back to the
>latter if the former fails.  So if the argument is a link which can be
>dereferenced, test -f tells you whether the link target is a file.
>
>If you want to know whether $file is a file or a symlink to a file
>   test -f "$file"
>precisely wrong as it is true in both those cases.
>
>See
>    http://www.opengroup.org/onlinepubs/009695399/utilities/test.html
>which says
>     With the exception of the -h file and -L file primaries, if a
>     file argument is a symbolic link, test shall evaluate the
>     expression by resolving the symbolic link and using the file
>     referenced by the link.
>
>It's actually true, too:
>
>mariner:~/junk> touch a 
>mariner:~/junk> ln -s a b
>mariner:~/junk> test -f a && echo file
>file
>mariner:~/junk> test -f b && echo file
>file
>mariner:~/junk> test -L b && echo link
>link
>mariner:~/junk> ln -s enoent c
>mariner:~/junk> test -f c && echo file
>mariner:~/junk> test -L c && echo link
>link
>mariner:~/junk>
>
>Ian.

Attachment: fix_check-existing_vbd_file.v2.patch
Description: Binary data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel