From 666d0944a00f7d8143bccedefaa1fb2e0bbe0bd9 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Wed, 9 Mar 2005 16:49:09 -0800 Subject: [PATCH] nfsd4: fix nfs4_check_delegmode() Inline nfs4_check_delegmode, replace & by &&, remove incorrect check. (Note that it's fine to read using the stateid for a write delegation.) While we're at it, the status return logic seems like overkill for one simple check. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- fs/nfsd/nfs4state.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index f5ef9692a20a..63980afc2366 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1969,18 +1969,13 @@ out: return status; } -static int +static inline int nfs4_check_delegmode(struct nfs4_delegation *dp, int flags) { - int status = nfserr_openmode; - - if ((flags & WR_STATE) & (dp->dl_type == NFS4_OPEN_DELEGATE_READ)) - goto out; - if ((flags & RD_STATE) & (dp->dl_type == NFS4_OPEN_DELEGATE_WRITE)) - goto out; - status = nfs_ok; -out: - return status; + if ((flags & WR_STATE) && (dp->dl_type == NFS4_OPEN_DELEGATE_READ)) + return nfserr_openmode; + else + return nfs_ok; } static inline int -- cgit v1.2.3