From: NeilBrown <neilb@suse.de>
To: Jes.Sorensen@redhat.com
Cc: meyering@redhat.com, linux-raid@vger.kernel.org
Subject: Re: [PATCH] Print error message if failing to write super for 1.x metadata
Date: Thu, 23 Feb 2012 08:58:02 +1100 [thread overview]
Message-ID: <20120223085802.57586d60@notabene.brown> (raw)
In-Reply-To: <1329908516-17822-1-git-send-email-Jes.Sorensen@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2385 bytes --]
On Wed, 22 Feb 2012 12:01:56 +0100 Jes.Sorensen@redhat.com wrote:
> From: Jes Sorensen <Jes.Sorensen@redhat.com>
>
> In addition remove attempt to print an error message if
> write_init_super() fails, as this is handled in the various
> write_init_super() functions. This avoids a segfault on error.
>
> Reported by Jim Meyering in
> https://bugzilla.redhat.com/show_bug.cgi?id=795461
>
> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Applied, thanks.
Though there was already a case which printed an error which you left
unchanged so now in some cases it would print the same message twice.
So I removed the old printf.
Thanks,
NeilBrown
> ---
> Create.c | 3 ---
> super1.c | 20 ++++++++++++++++----
> 2 files changed, 16 insertions(+), 7 deletions(-)
>
> diff --git a/Create.c b/Create.c
> index 90ff3ed..e5c6b05 100644
> --- a/Create.c
> +++ b/Create.c
> @@ -924,9 +924,6 @@ int Create(struct supertype *st, char *mddev,
> }
>
> if (st->ss->write_init_super(st)) {
> - fprintf(stderr,
> - Name ": Failed to write metadata to %s\n",
> - dv->devname);
> st->ss->free_super(st);
> goto abort_locked;
> }
> diff --git a/super1.c b/super1.c
> index a18952a..1db4de6 100644
> --- a/super1.c
> +++ b/super1.c
> @@ -1106,13 +1106,16 @@ static int write_init_super1(struct supertype *st)
> }
> free(refst);
>
> - if (!get_dev_size(di->fd, NULL, &dsize))
> - return 1;
> + if (!get_dev_size(di->fd, NULL, &dsize)) {
> + rv = 1;
> + goto error_out;
> + }
> dsize >>= 9;
>
> if (dsize < 24) {
> close(di->fd);
> - return 2;
> + rv = 2;
> + goto error_out;
> }
>
>
> @@ -1176,7 +1179,11 @@ static int write_init_super1(struct supertype *st)
> sb->data_size = __cpu_to_le64(dsize - reserved);
> break;
> default:
> - return -EINVAL;
> + fprintf(stderr, Name ": Failed to write invalid "
> + "metadata format 1.%i to %s\n",
> + st->minor_version, di->devname);
> + rv = -EINVAL;
> + goto out;
> }
>
>
> @@ -1192,6 +1199,11 @@ static int write_init_super1(struct supertype *st)
> close(di->fd);
> di->fd = -1;
> }
> +error_out:
> + if (rv)
> + fprintf(stderr, Name ": Failed to write metadata to %s\n",
> + di->devname);
> +out:
> return rv;
> }
> #endif
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
next prev parent reply other threads:[~2012-02-22 21:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-22 11:01 [PATCH] Print error message if failing to write super for 1.x metadata Jes.Sorensen
2012-02-22 21:58 ` NeilBrown [this message]
2012-02-23 8:41 ` Jes Sorensen
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=20120223085802.57586d60@notabene.brown \
--to=neilb@suse.de \
--cc=Jes.Sorensen@redhat.com \
--cc=linux-raid@vger.kernel.org \
--cc=meyering@redhat.com \
/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.