From 115b93a8595c878759c7c1fdbd95fbbeacbe9168 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Sat, 23 Jan 2016 14:04:31 -0500 Subject: [PATCH] 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 Signed-off-by: Mike Marshall --- fs/orangefs/orangefs-cache.c | 13 +++++++++---- fs/orangefs/orangefs-kernel.h | 2 -- fs/orangefs/orangefs-utils.c | 16 ---------------- 3 files changed, 9 insertions(+), 22 deletions(-) diff --git a/fs/orangefs/orangefs-cache.c b/fs/orangefs/orangefs-cache.c index 90c11a0daf74..e72ac2083ac0 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 e11fc67d7773..9c876762f825 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 ca7edcfae873..92a38b0091f2 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)) { -- 2.39.5