[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified
From: |
Pádraig Brady |
Subject: |
bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified |
Date: |
Mon, 26 Jan 2015 11:11:52 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 |
On 26/01/15 08:36, Giuseppe Scrivano wrote:
> Pádraig Brady <address@hidden> writes:
>
>> On 25/01/15 18:05, Bernhard Voelker wrote:
>>> On 01/25/2015 06:41 PM, Pádraig Brady wrote:
>>>> So we have: fdatasync < fsync < syncfs < sync
>>>> referring to:: file data, file data + metadata, file system, all file
>>>> systems
>>>
>>>> [...]
>>>
>>>> I'd be incline to go with the _what_ interface above.
>>>
>>> Either way, I think it's important to document sync is falling back
>>> to the bigger hammer if the smaller failed.
>>> ... or shouldn't do sync this?
>>
>> It should fall back where possible.
>>
>> Now there is a difference between the file and file system(s) interfaces
>> in that the former can return EIO error for example, while the latter
>> are specified to always return success. You wouldn't fall back to
>> a syncfs() if an fsync() gave an EIO for example. Also gnulib
>> guarantees that fsync() and fdatasync() are available, so I wouldn't
>> fallback from file -> file system interfaces, nor between file interfaces.
>
> one risk here is when multiple arguments are specified and the fsync
> will return EIO more than once, we will fallback to syncfs multiple
> times. Couldn't in this case a single sync be a better choice?
I was saying we shouldn't fall back from fsync() to syncfs().
Just process each argument. Diagnose any errors and EXIT_FAILURE
if there was any error?
Pádraig.
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, (continued)
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/24
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Giuseppe Scrivano, 2015/01/25
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/25
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Bernhard Voelker, 2015/01/25
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/25
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Giuseppe Scrivano, 2015/01/26
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified,
Pádraig Brady <=
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Giuseppe Scrivano, 2015/01/26
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/26
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Giuseppe Scrivano, 2015/01/27
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/27
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Bernhard Voelker, 2015/01/28
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/28
bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Eric Blake, 2015/01/26