On 2014/08/29, 2:57 PM, "Patrick Farrell" <paf(a)cray.com> wrote:
I'm curious about LU-4185. To recap, when a user attempts to
create a
directory which exists when do they do not have permission to do so,
standard behavior is to return -EEXIST - Not -ENOPERM. (I am not sure if
this is POSIX, but it is standard on other file systems)
Depending on the state of the client cache, Lustre will sometimes return
ENOPERM. Not only is this non-standard behavior, it seems very
undesirable that the value returned for an operation in a directory
would change depending on whether or not you've read the directory
contents recently.
This was brought up some time ago, and the fix
(
http://review.whamcloud.com/#/c/8257/) stalled because it would harm
open/create performance.
It would be nice to have this addressed:
Is this issue that Intel expects to fix, either in the way of the patch
above, or some other way, or is this a minor divergence from POSIX that
Intel's planning to keep in order to achieve better performance?
Probably better to discuss this in the bug. That said, I'd imagine it is
possible to figure out where the EPERM is coming from and return EEXIST in
that case (so long as this doesn't itself cause another problem for POSIX).
Cheers, Andreas
--
Andreas Dilger
Lustre Software Architect
Intel High Performance Data Division