|
From: | Paul Eggert |
Subject: | bug#29038: df hangs on fifos/named pipes |
Date: | Sun, 29 Oct 2017 23:16:50 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
Pádraig Brady wrote:
I suppose we could stat() and if that succeeds && !fifo, only then call open() ? Patch to do that is attached.
Better is to use open with O_NONBLOCK, as this avoids interpreting the file name twice in the usual case. Better yet is to use O_PATH if available, as this avoids interpreting the file name twice even when the file is unreadable or is a FIFO that would block. Also, the comment just before the code should be changed to match the altered code. Proposed followup patch attached.
It is puzzling that df calls fstat or stat, when it should just be calling fstatfs or statfs. But that is a different matter.
0001-df-improve-fix-for-FIFOs.patch
Description: Text Data
[Prev in Thread] | Current Thread | [Next in Thread] |