xattr_trusted.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * linux/fs/ext2/xattr_trusted.c
  4. * Handler for trusted extended attributes.
  5. *
  6. * Copyright (C) 2003 by Andreas Gruenbacher, <[email protected]>
  7. */
  8. #include "ext2.h"
  9. #include "xattr.h"
  10. static bool
  11. ext2_xattr_trusted_list(struct dentry *dentry)
  12. {
  13. return capable(CAP_SYS_ADMIN);
  14. }
  15. static int
  16. ext2_xattr_trusted_get(const struct xattr_handler *handler,
  17. struct dentry *unused, struct inode *inode,
  18. const char *name, void *buffer, size_t size)
  19. {
  20. return ext2_xattr_get(inode, EXT2_XATTR_INDEX_TRUSTED, name,
  21. buffer, size);
  22. }
  23. static int
  24. ext2_xattr_trusted_set(const struct xattr_handler *handler,
  25. struct user_namespace *mnt_userns,
  26. struct dentry *unused, struct inode *inode,
  27. const char *name, const void *value,
  28. size_t size, int flags)
  29. {
  30. return ext2_xattr_set(inode, EXT2_XATTR_INDEX_TRUSTED, name,
  31. value, size, flags);
  32. }
  33. const struct xattr_handler ext2_xattr_trusted_handler = {
  34. .prefix = XATTR_TRUSTED_PREFIX,
  35. .list = ext2_xattr_trusted_list,
  36. .get = ext2_xattr_trusted_get,
  37. .set = ext2_xattr_trusted_set,
  38. };