diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-07-02 13:58:33 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-07-10 23:40:39 -0400 |
commit | 9f958ab8858c75df800e0121b1920182820cbc39 (patch) | |
tree | 754bb9d68aac077825b40796e2acf716bce5df08 /fs/nfs/nfs4proc.c | |
parent | 88d9093997e1c73ca98db41b5605dbde7783845f (diff) |
NFSv4: Reduce the chances of an open_owner identifier collision
Currently we just use a 32-bit counter.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 84d0b7e0dd67..1840ebc78fd3 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -253,7 +253,7 @@ static struct nfs4_opendata *nfs4_opendata_alloc(struct path *path, | |||
253 | p->o_arg.fh = NFS_FH(dir); | 253 | p->o_arg.fh = NFS_FH(dir); |
254 | p->o_arg.open_flags = flags, | 254 | p->o_arg.open_flags = flags, |
255 | p->o_arg.clientid = server->nfs_client->cl_clientid; | 255 | p->o_arg.clientid = server->nfs_client->cl_clientid; |
256 | p->o_arg.id = sp->so_id; | 256 | p->o_arg.id = sp->so_owner_id.id; |
257 | p->o_arg.name = &p->path.dentry->d_name; | 257 | p->o_arg.name = &p->path.dentry->d_name; |
258 | p->o_arg.server = server; | 258 | p->o_arg.server = server; |
259 | p->o_arg.bitmask = server->attr_bitmask; | 259 | p->o_arg.bitmask = server->attr_bitmask; |
@@ -651,7 +651,7 @@ static void nfs4_open_prepare(struct rpc_task *task, void *calldata) | |||
651 | if (nfs_wait_on_sequence(data->o_arg.seqid, task) != 0) | 651 | if (nfs_wait_on_sequence(data->o_arg.seqid, task) != 0) |
652 | return; | 652 | return; |
653 | /* Update sequence id. */ | 653 | /* Update sequence id. */ |
654 | data->o_arg.id = sp->so_id; | 654 | data->o_arg.id = sp->so_owner_id.id; |
655 | data->o_arg.clientid = sp->so_client->cl_clientid; | 655 | data->o_arg.clientid = sp->so_client->cl_clientid; |
656 | if (data->o_arg.claim == NFS4_OPEN_CLAIM_PREVIOUS) | 656 | if (data->o_arg.claim == NFS4_OPEN_CLAIM_PREVIOUS) |
657 | msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_NOATTR]; | 657 | msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_NOATTR]; |
@@ -3029,7 +3029,7 @@ static int _nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock | |||
3029 | if (status != 0) | 3029 | if (status != 0) |
3030 | goto out; | 3030 | goto out; |
3031 | lsp = request->fl_u.nfs4_fl.owner; | 3031 | lsp = request->fl_u.nfs4_fl.owner; |
3032 | arg.lock_owner.id = lsp->ls_id; | 3032 | arg.lock_owner.id = lsp->ls_id.id; |
3033 | status = rpc_call_sync(server->client, &msg, 0); | 3033 | status = rpc_call_sync(server->client, &msg, 0); |
3034 | switch (status) { | 3034 | switch (status) { |
3035 | case 0: | 3035 | case 0: |
@@ -3243,7 +3243,7 @@ static struct nfs4_lockdata *nfs4_alloc_lockdata(struct file_lock *fl, | |||
3243 | goto out_free; | 3243 | goto out_free; |
3244 | p->arg.lock_stateid = &lsp->ls_stateid; | 3244 | p->arg.lock_stateid = &lsp->ls_stateid; |
3245 | p->arg.lock_owner.clientid = server->nfs_client->cl_clientid; | 3245 | p->arg.lock_owner.clientid = server->nfs_client->cl_clientid; |
3246 | p->arg.lock_owner.id = lsp->ls_id; | 3246 | p->arg.lock_owner.id = lsp->ls_id.id; |
3247 | p->lsp = lsp; | 3247 | p->lsp = lsp; |
3248 | atomic_inc(&lsp->ls_count); | 3248 | atomic_inc(&lsp->ls_count); |
3249 | p->ctx = get_nfs_open_context(ctx); | 3249 | p->ctx = get_nfs_open_context(ctx); |