xattr_trusted.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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, <a.gruenbacher@computer.org>
  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, int flags)
  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 dentry *unused, struct inode *inode,
  26. const char *name, const void *value,
  27. size_t size, int flags)
  28. {
  29. return ext2_xattr_set(inode, EXT2_XATTR_INDEX_TRUSTED, name,
  30. value, size, flags);
  31. }
  32. const struct xattr_handler ext2_xattr_trusted_handler = {
  33. .prefix = XATTR_TRUSTED_PREFIX,
  34. .list = ext2_xattr_trusted_list,
  35. .get = ext2_xattr_trusted_get,
  36. .set = ext2_xattr_trusted_set,
  37. };