All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RESEND] orangefs: use memcpy_and_pad in khandle_to and inode_getxattr
@ 2026-05-04 18:05 Thorsten Blum
  2026-05-05 16:14 ` Mike Marshall
  0 siblings, 1 reply; 2+ messages in thread
From: Thorsten Blum @ 2026-05-04 18:05 UTC (permalink / raw)
  To: Mike Marshall, Martin Brandenburg; +Cc: Thorsten Blum, devel, linux-kernel

Use memcpy_and_pad() instead of memcpy() followed by memset() to
simplify ORANGEFS_khandle_to() and orangefs_inode_getxattr().

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 fs/orangefs/protocol.h | 5 +----
 fs/orangefs/xattr.c    | 6 ++----
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/fs/orangefs/protocol.h b/fs/orangefs/protocol.h
index d403cf29a99b..bbdbd6a05d0d 100644
--- a/fs/orangefs/protocol.h
+++ b/fs/orangefs/protocol.h
@@ -50,10 +50,7 @@ static inline int ORANGEFS_khandle_cmp(const struct orangefs_khandle *kh1,
 static inline void ORANGEFS_khandle_to(const struct orangefs_khandle *kh,
 				   void *p, int size)
 {
-
-	memcpy(p, kh->u, 16);
-	memset(p + 16, 0, size - 16);
-
+	memcpy_and_pad(p, size, kh->u, 16, 0);
 }
 
 static inline void ORANGEFS_khandle_from(struct orangefs_khandle *kh,
diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
index b6d116302de4..5c061603b29b 100644
--- a/fs/orangefs/xattr.c
+++ b/fs/orangefs/xattr.c
@@ -140,8 +140,7 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *name,
 				ret = -ERANGE;
 				goto out_unlock;
 			}
-			memcpy(buffer, cx->val, cx->length);
-			memset(buffer + cx->length, 0, size - cx->length);
+			memcpy_and_pad(buffer, size, cx->val, cx->length, 0);
 			ret = cx->length;
 			goto out_unlock;
 		}
@@ -209,8 +208,7 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *name,
 		goto out_release_op;
 	}
 
-	memcpy(buffer, new_op->downcall.resp.getxattr.val, length);
-	memset(buffer + length, 0, size - length);
+	memcpy_and_pad(buffer, size, new_op->downcall.resp.getxattr.val, length, 0);
 	gossip_debug(GOSSIP_XATTR_DEBUG,
 	     "orangefs_inode_getxattr: inode %pU "
 	     "key %s key_sz %d, val_len %d\n",

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH RESEND] orangefs: use memcpy_and_pad in khandle_to and inode_getxattr
  2026-05-04 18:05 [PATCH RESEND] orangefs: use memcpy_and_pad in khandle_to and inode_getxattr Thorsten Blum
@ 2026-05-05 16:14 ` Mike Marshall
  0 siblings, 0 replies; 2+ messages in thread
From: Mike Marshall @ 2026-05-05 16:14 UTC (permalink / raw)
  To: Thorsten Blum; +Cc: devel, linux-kernel, Mike Marshall

Thanks... looks good... I'll add it to my next
xfstests run...

-Mike

On Mon, May 4, 2026 at 2:06 PM Thorsten Blum <thorsten.blum@linux.dev> wrote:
>
> Use memcpy_and_pad() instead of memcpy() followed by memset() to
> simplify ORANGEFS_khandle_to() and orangefs_inode_getxattr().
>
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
>  fs/orangefs/protocol.h | 5 +----
>  fs/orangefs/xattr.c    | 6 ++----
>  2 files changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/fs/orangefs/protocol.h b/fs/orangefs/protocol.h
> index d403cf29a99b..bbdbd6a05d0d 100644
> --- a/fs/orangefs/protocol.h
> +++ b/fs/orangefs/protocol.h
> @@ -50,10 +50,7 @@ static inline int ORANGEFS_khandle_cmp(const struct orangefs_khandle *kh1,
>  static inline void ORANGEFS_khandle_to(const struct orangefs_khandle *kh,
>                                    void *p, int size)
>  {
> -
> -       memcpy(p, kh->u, 16);
> -       memset(p + 16, 0, size - 16);
> -
> +       memcpy_and_pad(p, size, kh->u, 16, 0);
>  }
>
>  static inline void ORANGEFS_khandle_from(struct orangefs_khandle *kh,
> diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
> index b6d116302de4..5c061603b29b 100644
> --- a/fs/orangefs/xattr.c
> +++ b/fs/orangefs/xattr.c
> @@ -140,8 +140,7 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *name,
>                                 ret = -ERANGE;
>                                 goto out_unlock;
>                         }
> -                       memcpy(buffer, cx->val, cx->length);
> -                       memset(buffer + cx->length, 0, size - cx->length);
> +                       memcpy_and_pad(buffer, size, cx->val, cx->length, 0);
>                         ret = cx->length;
>                         goto out_unlock;
>                 }
> @@ -209,8 +208,7 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *name,
>                 goto out_release_op;
>         }
>
> -       memcpy(buffer, new_op->downcall.resp.getxattr.val, length);
> -       memset(buffer + length, 0, size - length);
> +       memcpy_and_pad(buffer, size, new_op->downcall.resp.getxattr.val, length, 0);
>         gossip_debug(GOSSIP_XATTR_DEBUG,
>              "orangefs_inode_getxattr: inode %pU "
>              "key %s key_sz %d, val_len %d\n",

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-05-05 16:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-04 18:05 [PATCH RESEND] orangefs: use memcpy_and_pad in khandle_to and inode_getxattr Thorsten Blum
2026-05-05 16:14 ` Mike Marshall

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.