All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Luis Chamberlain <mcgrof@kernel.org>
Cc: fstests@vger.kernel.org, fdmanana@gmail.com,
	Anthony Iliopoulos <ailiopoulos@suse.de>
Subject: Re: [PATCH] fsstress: improve error message on check_cwd() error
Date: Wed, 3 Nov 2021 09:24:34 -0700	[thread overview]
Message-ID: <20211103162434.GX24282@magnolia> (raw)
In-Reply-To: <20211101155559.3988492-1-mcgrof@kernel.org>

On Mon, Nov 01, 2021 at 08:55:59AM -0700, Luis Chamberlain wrote:
> I ran into an error with generic/083 with xfs due to check_cwd() but
> why it failed is not clear because there are two types of
> failures:
> 
>   o stat64() failed (likely -ENOMEM is my guess)
>   o the inode actually changed
> 
> Throw a bone out to developers so that in case en error does happen
> they know which rabbit hole to go down on.

<cough> word choice on those last three words...

> 
> Cc: Anthony Iliopoulos <ailiopoulos@suse.de>
> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
> ---
>  ltp/fsstress.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/ltp/fsstress.c b/ltp/fsstress.c
> index 90ae432e..a576afea 100644
> --- a/ltp/fsstress.c
> +++ b/ltp/fsstress.c
> @@ -9,6 +9,7 @@
>  #include <sys/uio.h>
>  #include <stddef.h>
>  #include <stdbool.h>
> +#include <string.h>
>  #include "global.h"
>  
>  #ifdef HAVE_BTRFSUTIL_H
> @@ -943,9 +944,21 @@ check_cwd(void)
>  {
>  #ifdef DEBUG
>  	struct stat64	statbuf;
> +	int ret;
> +
> +	ret = stat64(".", &statbuf);
> +	if (ret !=0) {

Nit: space between '!=' and '0'.

> +		fprintf(stderr, "fsstress: check_cwd stat64 failed with: %d (%s)\n",
> +			ret, strerror(ret));

ret is set to -1 on error, according to the manpage; to get the real
error you'd have to call strerror(errno) as the last arg, or be lazy
and:

		perror("fsstress check_cwd stat64");

> +		goto out;
> +	}
>  
> -	if (stat64(".", &statbuf) == 0 && statbuf.st_ino == top_ino)
> +	if (statbuf.st_ino == top_ino)
>  		return;
> +
> +	fprintf(stderr, "fsstress: check_cwd statbuf.st_ino (%lu) != top_ino (%lu)\n",
> +		statbuf.st_ino, top_ino);

This might want some explicit casting, since this can be defined as
anything between unsigned long to uint64_t, at least according to the
glibc headers on my system.

--D

> +out:
>  	assert(chdir(homedir) == 0);
>  	fprintf(stderr, "fsstress: check_cwd failure\n");
>  	abort();
> -- 
> 2.33.0
> 

  reply	other threads:[~2021-11-03 16:24 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-01 15:55 [PATCH] fsstress: improve error message on check_cwd() error Luis Chamberlain
2021-11-03 16:24 ` Darrick J. Wong [this message]
2021-11-03 18:18   ` Luis Chamberlain
2021-11-05 16:04     ` Luis Chamberlain
2021-11-05 16:09       ` Darrick J. Wong
  -- strict thread matches above, loose matches on Subject: below --
2021-09-21 17:50 Luis Chamberlain
2021-09-22 10:15 ` Filipe Manana
2021-09-22 20:07   ` Luis Chamberlain
2021-09-23 12:37     ` Filipe Manana
2021-11-01 15:50       ` Luis Chamberlain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211103162434.GX24282@magnolia \
    --to=djwong@kernel.org \
    --cc=ailiopoulos@suse.de \
    --cc=fdmanana@gmail.com \
    --cc=fstests@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.