nfsd4: don't pretend to support write delegations
The delegation code mostly pretends to support either read or write delegations. However, correct support for write delegations would require, for example, breaking of delegations (and/or implementation of cb_getattr) on stat. Currently all that stops us from handing out delegations is a subtle reference-counting issue. Avoid confusion by adding an earlier check that explicitly refuses write delegations. For now, though, I'm not going so far as to rip out existing half-support for write delegations, in case we get around to using that soon. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
fa0a21269f
commit
c3e4808086
@ -170,6 +170,13 @@ alloc_init_deleg(struct nfs4_client *clp, struct nfs4_stateid *stp, struct svc_f
|
||||
struct nfs4_cb_conn *cb = &stp->st_stateowner->so_client->cl_cb_conn;
|
||||
|
||||
dprintk("NFSD alloc_init_deleg\n");
|
||||
/*
|
||||
* Major work on the lease subsystem (for example, to support
|
||||
* calbacks on stat) will be required before we can support
|
||||
* write delegations properly.
|
||||
*/
|
||||
if (type != NFS4_OPEN_DELEGATE_READ)
|
||||
return NULL;
|
||||
if (fp->fi_had_conflict)
|
||||
return NULL;
|
||||
if (num_delegations > max_delegations)
|
||||
|
Loading…
Reference in New Issue
Block a user