Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 267132
b: refs/heads/master
c: 5fa0bbb
h: refs/heads/master
v: v3
  • Loading branch information
J. Bruce Fields committed Aug 31, 2011
1 parent 4e46fc5 commit 136ab9c
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c2d8eb7ac645e1baba7205cb2631e2f21db3d6a9
refs/heads/master: 5fa0bbb4ee5481a6b3e83c4968142ca433d71914
9 changes: 3 additions & 6 deletions trunk/fs/nfsd/nfs4state.c
Original file line number Diff line number Diff line change
Expand Up @@ -2285,6 +2285,7 @@ init_stateid(struct nfs4_stateid *stp, struct nfs4_file *fp, struct nfsd4_open *
list_add(&stp->st_hash, &stateid_hashtbl[hashval]);
list_add(&stp->st_perstateowner, &sop->so_stateids);
list_add(&stp->st_perfile, &fp->fi_stateids);
stp->st_type = NFS4_OPEN_STID;
stp->st_stateowner = sop;
get_nfs4_file(fp);
stp->st_file = fp;
Expand Down Expand Up @@ -3201,11 +3202,6 @@ static int is_delegation_stateid(stateid_t *stateid)
return stateid->si_fileid == 0;
}

static int is_open_stateid(struct nfs4_stateid *stateid)
{
return stateid->st_openstp == NULL;
}

__be32 nfs4_validate_stateid(stateid_t *stateid, bool has_session)
{
struct nfs4_stateid *stp = NULL;
Expand Down Expand Up @@ -3369,7 +3365,7 @@ nfsd4_free_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
}
}

if (is_open_stateid(stp)) {
if (stp->st_type == NFS4_OPEN_STID) {
ret = nfserr_locks_held;
goto out;
} else {
Expand Down Expand Up @@ -3928,6 +3924,7 @@ alloc_init_lock_stateid(struct nfs4_stateowner *sop, struct nfs4_file *fp, struc
list_add(&stp->st_perfile, &fp->fi_stateids);
list_add(&stp->st_perstateowner, &sop->so_stateids);
stp->st_stateowner = sop;
stp->st_type = NFS4_LOCK_STID;
get_nfs4_file(fp);
stp->st_file = fp;
stp->st_stateid.si_boot = boot_time;
Expand Down
3 changes: 3 additions & 0 deletions trunk/fs/nfsd/state.h
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,9 @@ static inline struct file *find_any_file(struct nfs4_file *f)
*/

struct nfs4_stateid {
#define NFS4_OPEN_STID 1
#define NFS4_LOCK_STID 2
char st_type;
struct list_head st_hash;
struct list_head st_perfile;
struct list_head st_perstateowner;
Expand Down

0 comments on commit 136ab9c

Please sign in to comment.