summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-01-23 14:04:31 -0500
committerMike Marshall <hubcap@omnibond.com>2016-01-23 15:20:11 -0500
commit115b93a8595c878759c7c1fdbd95fbbeacbe9168 (patch)
tree7af85d0290e25d5cd6a25eec67e205233e0ce5a4 /fs
parentb0bc3a7b621cb8d7bcce507f323249a7340f4141 (diff)
downloadop-kernel-dev-115b93a8595c878759c7c1fdbd95fbbeacbe9168.zip
op-kernel-dev-115b93a8595c878759c7c1fdbd95fbbeacbe9168.tar.gz
orangefs: clean up op_alloc()
fold orangefs_op_initialize() in there, don't bother locking something nobody else could've seen yet, use kmem_cache_zalloc() instead of explicit memset()... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/orangefs/orangefs-cache.c13
-rw-r--r--fs/orangefs/orangefs-kernel.h2
-rw-r--r--fs/orangefs/orangefs-utils.c16
3 files changed, 9 insertions, 22 deletions
diff --git a/fs/orangefs/orangefs-cache.c b/fs/orangefs/orangefs-cache.c
index 90c11a0..e72ac20 100644
--- a/fs/orangefs/orangefs-cache.c
+++ b/fs/orangefs/orangefs-cache.c
@@ -111,17 +111,22 @@ struct orangefs_kernel_op_s *op_alloc(__s32 type)
{
struct orangefs_kernel_op_s *new_op = NULL;
- new_op = kmem_cache_alloc(op_cache, ORANGEFS_CACHE_ALLOC_FLAGS);
+ new_op = kmem_cache_zalloc(op_cache, ORANGEFS_CACHE_ALLOC_FLAGS);
if (new_op) {
- memset(new_op, 0, sizeof(struct orangefs_kernel_op_s));
-
INIT_LIST_HEAD(&new_op->list);
spin_lock_init(&new_op->lock);
init_waitqueue_head(&new_op->waitq);
atomic_set(&new_op->ref_count, 1);
- orangefs_op_initialize(new_op);
+ init_completion(&new_op->done);
+
+ new_op->upcall.type = ORANGEFS_VFS_OP_INVALID;
+ new_op->downcall.type = ORANGEFS_VFS_OP_INVALID;
+ new_op->downcall.status = -1;
+
+ new_op->op_state = OP_VFS_STATE_UNKNOWN;
+ new_op->tag = 0;
/* initialize the op specific tag and upcall credentials */
spin_lock(&next_tag_value_lock);
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
index e11fc67..9c87676 100644
--- a/fs/orangefs/orangefs-kernel.h
+++ b/fs/orangefs/orangefs-kernel.h
@@ -565,8 +565,6 @@ int orangefs_inode_getattr(struct inode *inode, __u32 mask);
int orangefs_inode_setattr(struct inode *inode, struct iattr *iattr);
-void orangefs_op_initialize(struct orangefs_kernel_op_s *op);
-
void orangefs_make_bad_inode(struct inode *inode);
void orangefs_block_signals(sigset_t *);
diff --git a/fs/orangefs/orangefs-utils.c b/fs/orangefs/orangefs-utils.c
index ca7edcf..92a38b0 100644
--- a/fs/orangefs/orangefs-utils.c
+++ b/fs/orangefs/orangefs-utils.c
@@ -593,22 +593,6 @@ int orangefs_cancel_op_in_progress(__u64 tag)
return ret;
}
-void orangefs_op_initialize(struct orangefs_kernel_op_s *op)
-{
- if (op) {
- spin_lock(&op->lock);
- init_completion(&op->done);
-
- op->upcall.type = ORANGEFS_VFS_OP_INVALID;
- op->downcall.type = ORANGEFS_VFS_OP_INVALID;
- op->downcall.status = -1;
-
- op->op_state = OP_VFS_STATE_UNKNOWN;
- op->tag = 0;
- spin_unlock(&op->lock);
- }
-}
-
void orangefs_make_bad_inode(struct inode *inode)
{
if (is_root_handle(inode)) {
OpenPOWER on IntegriCloud