Orangefs: optimize boilerplate code.
authorMike Marshall <hubcap@omnibond.com>
Wed, 6 Apr 2016 15:19:37 +0000 (11:19 -0400)
committerMike Marshall <hubcap@omnibond.com>
Fri, 8 Apr 2016 18:08:27 +0000 (14:08 -0400)
Suggested by David Binderman <dcb314@hotmail.com>
The former can potentially be a performance win over the latter.

memcpy(d, s, len);
memset(d+len, c, size-len);

memset(d, c, size);
memcpy(d, s, len);

Signed-off-by: Mike Marshall <hubcap@omnibond.com>
fs/orangefs/protocol.h
fs/orangefs/xattr.c

index 50578a2..a7f21a3 100644 (file)
@@ -74,8 +74,8 @@ static inline void ORANGEFS_khandle_to(const struct orangefs_khandle *kh,
                                   void *p, int size)
 {
 
-       memset(p, 0, size);
        memcpy(p, kh->u, 16);
+       memset(p + 16, 0, size - 16);
 
 }
 
index 90a8ae7..63a6280 100644 (file)
@@ -142,8 +142,8 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
                goto out_release_op;
        }
 
-       memset(buffer, 0, size);
        memcpy(buffer, new_op->downcall.resp.getxattr.val, length);
+       memset(buffer + length, 0, size - length);
        gossip_debug(GOSSIP_XATTR_DEBUG,
             "orangefs_inode_getxattr: inode %pU "
             "key %s key_sz %d, val_len %d\n",