NFSD: Don't give out read delegations on creates
authorSteve Dickson <steved@redhat.com>
Wed, 15 May 2013 18:51:49 +0000 (14:51 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Mon, 1 Jul 2013 21:23:07 +0000 (17:23 -0400)
commit9a0590aec3ca5e86a64b87e004244abc4dd1faf9
treef3864074aa12bace1ff2fd082ae1a839cfc4b547
parent57569a707082a337e4a61a657521d79cac3528bf
NFSD: Don't give out read delegations on creates

When an exclusive create is done with the mode bits
set (aka open(testfile, O_CREAT | O_EXCL, 0777)) this
causes a OPEN op followed by a SETATTR op. When a
read delegation is given in the OPEN, it causes
the SETATTR to delay with EAGAIN until the
delegation is recalled.

This patch caused exclusive creates to give out
a write delegation (which turn into no delegation)
which allows the SETATTR seamlessly succeed.

Signed-off-by: Steve Dickson <steved@redhat.com>
[bfields: do this for any CREATE, not just exclusive; comment]
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4state.c