diff options
author | Neil Brown <neilb@suse.de> | 2005-09-13 04:25:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-13 11:22:32 -0400 |
commit | 73aea4ecd38ebeff9e322f738057f4ae2c32a3ee (patch) | |
tree | cabc00b17b3f96854cd818ea7e26734ac855843c /fs/nfsd | |
parent | b59e3c0e172e3f3a147021aa16b929482b8d5846 (diff) |
[PATCH] nfsd4: fix setclientid unlock of unlocked state lock
We could try to unlock the state lock here without having first locked it.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/nfs4state.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index ec2fdb009bf1..6bbefd06f10d 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -678,13 +678,12 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_setclientid *setclid) | |||
678 | int status; | 678 | int status; |
679 | char dname[HEXDIR_LEN]; | 679 | char dname[HEXDIR_LEN]; |
680 | 680 | ||
681 | status = nfserr_inval; | ||
682 | if (!check_name(clname)) | 681 | if (!check_name(clname)) |
683 | goto out; | 682 | return nfserr_inval; |
684 | 683 | ||
685 | status = nfs4_make_rec_clidname(dname, &clname); | 684 | status = nfs4_make_rec_clidname(dname, &clname); |
686 | if (status) | 685 | if (status) |
687 | goto out; | 686 | return status; |
688 | 687 | ||
689 | /* | 688 | /* |
690 | * XXX The Duplicate Request Cache (DRC) has been checked (??) | 689 | * XXX The Duplicate Request Cache (DRC) has been checked (??) |