diff options
author | Jeff Layton <jlayton@primarydata.com> | 2014-07-10 20:07:30 +0200 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2014-07-11 17:06:04 +0200 |
commit | c11c591fe6682e0d642bf9242e53554a50e5fbc0 (patch) | |
tree | e3c6815571449201c7f780e50bb5d82854ac9c2c /fs/nfsd/state.h | |
parent | nfsd: remove nfs4_file_put_fd (diff) | |
download | linux-c11c591fe6682e0d642bf9242e53554a50e5fbc0.tar.xz linux-c11c591fe6682e0d642bf9242e53554a50e5fbc0.zip |
nfsd: shrink st_access_bmap and st_deny_bmap
We never use anything above bit #3, so an unsigned long for each is
wasteful. Shrink them to a char each, and add some WARN_ON_ONCE calls if
we try to set or clear bits that would go outside those sizes.
Note too that because atomic bitops work on unsigned longs, we have to
abandon their use here. That shouldn't be a problem though since we
don't really care about the atomicity in this code anyway. Using them
was just a convenient way to flip bits.
Signed-off-by: Jeff Layton <jlayton@primarydata.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/state.h')
-rw-r--r-- | fs/nfsd/state.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h index 9f1159d5de56..72aee4b4f1ae 100644 --- a/fs/nfsd/state.h +++ b/fs/nfsd/state.h @@ -406,8 +406,8 @@ struct nfs4_ol_stateid { struct list_head st_locks; struct nfs4_stateowner * st_stateowner; struct nfs4_file * st_file; - unsigned long st_access_bmap; - unsigned long st_deny_bmap; + unsigned char st_access_bmap; + unsigned char st_deny_bmap; struct nfs4_ol_stateid * st_openstp; }; |