All of lore.kernel.org
 help / color / mirror / Atom feed
From: Phillip Susi <psusi@ubuntu.com>
To: "Maciej Małecki" <me@mmalecki.com>, "Davidlohr Bueso" <davidlohr@hp.com>
Cc: util-linux@vger.kernel.org
Subject: Re: [PATCH 1/2] fdisk: warn if opening a device in write mode failed
Date: Fri, 28 Feb 2014 11:23:40 -0500	[thread overview]
Message-ID: <5310B80C.7000205@ubuntu.com> (raw)
In-Reply-To: <CAKC8-7xwz+SZ_TPYx8EbzRbqqErHkaVJ=rOJRG+gvJnu9zdzyQ@mail.gmail.com>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2/28/2014 6:00 AM, Maciej Małecki wrote:
>>> libfdisk/src/context.c | 17 +++++++++++++---- 1 file changed,
>>> 13 insertions(+), 4 deletions(-)
>>> 
>>> diff --git a/libfdisk/src/context.c b/libfdisk/src/context.c 
>>> index c405403..40f9080 100644 --- a/libfdisk/src/context.c +++
>>> b/libfdisk/src/context.c @@ -248,17 +248,26 @@ static int
>>> warn_wipe(struct fdisk_context *cxt) int
>>> fdisk_context_assign_device(struct fdisk_context *cxt, const
>>> char *fname, int readonly) { -     int fd; +     int fd, mode;
>>> 
>>> DBG(CONTEXT, dbgprint("assigning device %s", fname)); 
>>> assert(cxt);
>>> 
>>> reset_context(cxt);
>>> 
>>> -     if (readonly == 1 || (fd = open(fname, O_RDWR|O_CLOEXEC))
>>> < 0) { -             if ((fd = open(fname, O_RDONLY|O_CLOEXEC))
>>> < 0) +retry: +     mode = (readonly ? O_RDONLY : O_RDWR) |
>>> O_CLOEXEC; +     fd = open(fname, mode); +     if (fd < 0) { +
>>> if (readonly) return -errno; -             readonly = 1; +
>>> else { +                     fdisk_warn(cxt, +
>>> _("%s: opening device in read write mode failed"), +
>>> fname); +                     readonly = 1; +
>>> goto retry; +             } }
>> 
>> This is 1) obscenely ugly and 2) not the place for such message.
>> There's no reason to pollute output like this. Why do I care how
>> the device is opened when I'm not going to write anything to it?
>> 
>> The correct way is to do what you do in patch 2, inform the user
>> that the device is only for opened for reading and just skip the
>> write operation.

You really want to tell the user that they aren't going to be able to
write up front.

I have to say this function was already broken.  If the caller
requests write access and that fails, then the call should fail.  It
should *not* automatically fall back to read-only without giving any
indication to the caller.  If the caller wants to retry for read only,
then it can, and print a warning letting the user know it has switched
to ready only.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTELgMAAoJEI5FoCIzSKrwlM0H/iVJLdAPqE3OOgaIJRmk+NC5
uLlMwVMY4zHJakuq4GtxX5rekdy+kLTuVokZjxUTcI2WM9uBJwFXSwd4sPJ2i3C+
47w8tS4FMzP4LKOck60cc61FpAaKaqez9GGQ8zkMNZnt5S6ptCOOoMGtYuqXm1AW
LWYHSbSsmXsTiQIWLEg/GZhBMUaInjcMiVr4nzINXN8CnwJ695Xyold0rnkAHxK0
+FhKNtGuab88GjGosla9kK1Nd2/6rjLt6HqYDBHfZaWkcTzjv4y+OCEz6Am7SFZp
PkrqmWV0FXvUGj8C4RrNf3dSiElorgkPbTS1P1+JRNFLZIAO7YFbapke7MZ4eDg=
=7pzO
-----END PGP SIGNATURE-----

  reply	other threads:[~2014-02-28 16:23 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-27  3:26 [PATCH 1/2] fdisk: warn if opening a device in write mode failed Maciej Małecki
2014-02-27  3:26 ` [PATCH 2/2] fdisk: do not allow writing to a read-only device Maciej Małecki
2014-02-28  2:32 ` [PATCH 1/2] fdisk: warn if opening a device in write mode failed Davidlohr Bueso
2014-02-28 11:00   ` Maciej Małecki
2014-02-28 16:23     ` Phillip Susi [this message]
2014-02-28 18:18       ` Maciej Małecki
2014-02-28 18:27       ` Davidlohr Bueso
2014-02-28 19:18         ` Phillip Susi
2014-03-03  9:04           ` Karel Zak
2014-03-03 21:19             ` Maciej Małecki
2014-03-03 21:47               ` Phillip Susi
2014-03-21 13:10       ` Karel Zak
2014-03-03 21:14 ` [PATCH v2 1/3] fdisk: do not allow writing to a read-only device Maciej Małecki
2014-03-03 21:14   ` [PATCH v2 2/3] libfdisk: remove `O_RDONLY` fallback mode when opening device Maciej Małecki
2014-03-03 21:14   ` [PATCH v2 3/3] fdisk: retry opening device in read-only mode Maciej Małecki

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=5310B80C.7000205@ubuntu.com \
    --to=psusi@ubuntu.com \
    --cc=davidlohr@hp.com \
    --cc=me@mmalecki.com \
    --cc=util-linux@vger.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.