Re: [PATCH/RFC v3 7/9] write_entry(): use fstat() instead of lstat() when file is open
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 6, 2009, 11:26 UTC
- Message-ID
- <alpine.DEB.1.00.0902061221150.7377@intel-tinevez-2-302>
- In-Reply-To
- <868wojq0xa.fsf@broadpark.no>
Hi,
On Fri, 6 Feb 2009, Kjetil Barvik wrote:
Show 10 quoted lines
> * Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > | Of course, what we _really_ would do is to provide a flag, say, > | FSTAT_UNRELIABLE and test for _that_ (after defining it in the Makefile > | for the appropriate platforms). > > Or, maybe > > #define FSTAT_RELIABLE 1 > > for Linux only?
No, I think that would be wrong. Especially after Junio's remarks that fstat() is actually required to behave as you expected it, and only Windows (surprise, surprise) has problems following the standard.
Show 8 quoted lines
> Then we can change the if-test inside this patch to the following:
>
> - if (state->refresh_cache && !to_tempfile && !state->base_dir_len) {
> + if (state->refresh_cache && !to_tempfile && !state->base_dir_len &&
> + FSTAT_RELIABLE) {
>
> Then we do not have to have #if-defines inside the source code, only
> in one header file.In the spirit of consistency, I would not do that.
> But, question: is this patch worth the extra lines added to the source > code?
You seemed to get a nice speedup on Linux. If Windows cannot follow suit, too bad. But I do not want to be punished because other people's OS is not as good as mine, so I _want_ fstat().
And those few lines will not hurt, they'll be readable enough.
Ciao, Dscho