Re: [PATCH] t1410: fix breakage on case-insensitive filesystems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 14, 2014 at 08:11:18PM +0100, Johannes Sixt wrote:

> Not a comment, on this paragraph of yours, but while I was walking
> through the code with gdb, I was wondering why the reflog directory is
> being touched at all when core.logallrefupdates is off (in
> log_ref_setup via log_ref_write). With the patch below I now get the
> same unlink warning as on Linux.

It's because of the weird reflog rules: we will use a reflog file that
exists (no matter what core.logallrefupdates says), but only _create_ a
new one if the config tells us to. I think this dates back to the origin
of reflogs, where we weren't sure at first that you would always want
them on.

> --- 8< ---
> Subject: [PATCH] Windows: correct detection of EISDIR in mingw_open()
> 
> According to the Linux open(2) man page, open() returns EISDIR if a
> directory was attempted to be opened for writing. Our emulation in
> mingw_open() does not get this right: it checks only for O_CREAT. Fix
> it to check for one of the write flags.
> 
> This fixes a failure in reflog handling, which opens files with
> O_APPEND|O_WRONLY, but without O_CREAT, and expects EISDIR when the
> named file happens to be a directory.

Ah, so we do get EISDIR with O_CREAT. Which explains why the first test
passed and the second failed (we only pass O_CREAT when logallrefupdates
is on). The behavior you saw (and this fix) make perfect sense to me
then.

> Signed-off-by: Johannes Sixt <j6t@xxxxxxxx>

I am not sure if I get to Acked-by things in compat/mingw, but I am
pretty sure this is the right fix. :)

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]