On 03/15/2012 12:32 PM, Wanlong Gao wrote:
> Since commit http://git.kernel.org/linus/65cfc672
> which added O_PATH support to the *at() calls,
> the error return for readlink/readlinkat
> for the empty pathname has switched from
> ENOENT to EINVAL. And this patch merged to linux v2.6.39,
> So LTP commit https://github.com/linux-test-project/ltp/commit/0cc7514
> fix this with the kernel version v2.6.39 compared.
> 
> But recently, commit http://git.kernel.org/linus/1fa1e7f6
> which ensure we return ENOENT for the empty pathname
> for normal lookups.
> 
> Now, the patch whitch switch the return value back again
> is already queued for 3.0 and 3.1 stable release.
> 
> So, if the return value is EINVAL for empty pathname,
> it may be a kernel bug, so we needn't to check the kernel
> version but return the "kernel bug" warning  to LTP the users.
> 
> Signed-off-by: Wanlong Gao <[email protected]>
> Acked-by: Jan Stancek <[email protected]>

Acked-by: Caspar Zhang <[email protected]>

> ---
>  testcases/kernel/syscalls/readlink/readlink03.c |    9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/testcases/kernel/syscalls/readlink/readlink03.c 
> b/testcases/kernel/syscalls/readlink/readlink03.c
> index 370bf7d..5ae8513 100644
> --- a/testcases/kernel/syscalls/readlink/readlink03.c
> +++ b/testcases/kernel/syscalls/readlink/readlink03.c
> @@ -173,11 +173,6 @@ int main(int ac, char **av)
>                               buf_size = sizeof(buffer);
>                       }
>  
> -                     if (strncmp(test_desc, "Symlink Pathname is empty", 25) 
> == 0) {
> -                             if ((tst_kvercmp(2, 6, 39)) >= 0)
> -                                     Test_cases[i].exp_errno = EINVAL;
> -                     }
> -
>                       /*
>                        * Call readlink(2) to test different test conditions.
>                        * verify that it fails with -1 return value and sets
> @@ -204,6 +199,10 @@ int main(int ac, char **av)
>                                        "errno=%d, expected errno=%d",
>                                        test_desc, TEST_ERRNO,
>                                        Test_cases[i].exp_errno);
> +                             if ((strncmp(test_desc, "Symlink Pathname is 
> empty", 25) == 0) &&
> +                                  TEST_ERRNO == EINVAL)
> +                                     tst_resm(TWARN, "It may be a Kernel 
> Bug, see the patch:"
> +                                              
> "http://git.kernel.org/linus/1fa1e7f6";);
>                       }
>               }
>       }


------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to