All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@linux.intel.com>
To: Goldwyn Rodrigues <rgoldwyn@suse.de>
Cc: Jens Axboe <axboe@kernel.dk>,
	linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	darrick.wong@oracle.com, Goldwyn Rodrigues <rgoldwyn@suse.com>
Subject: Re: [PATCH v5 1/2] Return bytes transferred for partial direct I/O
Date: Mon, 22 Jan 2018 10:08:09 -0800	[thread overview]
Message-ID: <20180122180809.GM7844@tassilo.jf.intel.com> (raw)
In-Reply-To: <35fe5b08-aed3-2819-89d1-41dbe6a81ee5@suse.de>

> The only way I can think is that a DIO write should check early enough
> that the write(N) will complete with N bytes without an error. Is it
> possible to completely guarantee that?

Probably not.

> 
> Leaving it as it is incorrect as quoted in the artificial test case. You
> should not be changing the file and yet conveying to the user an error
> for the same write() call. It should either be an error and the file
> contents are unchanged, or it should be change in contents and the write
> size returned.

There are already lots of syscall cases that don't completely
undo changes on error handling.  Fixing that would likely require
a transaction system higher level in the kernel, or lots of 
complicated code everywhere, which is unlikely to happen. 

Also the complicated code would be difficult to test,
and likely bit rot over time, because it would be only an error handling
path that is infrequently exercised.

So yes it's not nice, but the alternative would be worse.

I think we're best of leaving it as it is now.

Adding some comments/documentation to explain this would be good though.
Perhaps you could submit a patch to the manpage?

-Andi

  reply	other threads:[~2018-01-22 18:08 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-19  0:57 [PATCH v5 1/2] Return bytes transferred for partial direct I/O Goldwyn Rodrigues
2018-01-19  0:57 ` [PATCH 2/2] xfs: remove assert to check bytes returned Goldwyn Rodrigues
2018-01-19  3:57   ` Dave Chinner
2018-01-19  4:23     ` Raphael Carvalho
2018-01-19  4:51       ` Dave Chinner
2018-01-19  2:13 ` [PATCH v5 1/2] Return bytes transferred for partial direct I/O Al Viro
2018-01-19  3:59   ` Dave Chinner
2018-01-19  6:31     ` Darrick J. Wong
2018-01-19  6:33       ` Al Viro
2018-01-20 19:47         ` Al Viro
2018-01-21  2:57           ` Goldwyn Rodrigues
2018-01-21  2:11 ` Andi Kleen
2018-01-21  2:23   ` Goldwyn Rodrigues
2018-01-21  3:07     ` Jens Axboe
2018-01-21 12:06       ` Goldwyn Rodrigues
2018-01-22 18:08         ` Andi Kleen [this message]
2018-01-22 19:10       ` Andreas Dilger
2018-01-22 19:13         ` Jens Axboe
2018-01-23  3:18           ` Goldwyn Rodrigues
2018-01-23  3:28             ` Jens Axboe
2018-01-23  6:35               ` Matthew Wilcox
2018-01-25 18:01                 ` Goldwyn Rodrigues
2018-01-24  0:19               ` Andreas Dilger
2018-01-22 22:25       ` Elliott, Robert (Persistent Memory)
2018-01-22 22:25         ` Elliott, Robert (Persistent Memory)
2018-01-22 23:14         ` Jens Axboe
2018-01-22 23:24           ` Bart Van Assche
2018-01-22 23:24             ` Bart Van Assche
2018-01-22 23:27             ` Jens Axboe

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=20180122180809.GM7844@tassilo.jf.intel.com \
    --to=ak@linux.intel.com \
    --cc=axboe@kernel.dk \
    --cc=darrick.wong@oracle.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=rgoldwyn@suse.com \
    --cc=rgoldwyn@suse.de \
    /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.