^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Squashfs - a compressed read only filesystem for Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Copyright (c) 2010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Phillip Lougher <phillip@squashfs.org.uk>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) * xattr.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #ifdef CONFIG_SQUASHFS_XATTR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) extern __le64 *squashfs_read_xattr_id_table(struct super_block *, u64,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) u64 *, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) extern int squashfs_xattr_lookup(struct super_block *, unsigned int, int *,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) unsigned int *, unsigned long long *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) static inline __le64 *squashfs_read_xattr_id_table(struct super_block *sb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) u64 start, u64 *xattr_table_start, int *xattr_ids)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) struct squashfs_xattr_id_table *id_table;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) id_table = squashfs_read_table(sb, start, sizeof(*id_table));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) if (IS_ERR(id_table))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) return (__le64 *) id_table;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) *xattr_table_start = le64_to_cpu(id_table->xattr_table_start);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) kfree(id_table);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) ERROR("Xattrs in filesystem, these will be ignored\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) return ERR_PTR(-ENOTSUPP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) static inline int squashfs_xattr_lookup(struct super_block *sb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) unsigned int index, int *count, unsigned int *size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) unsigned long long *xattr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #define squashfs_listxattr NULL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #define squashfs_xattr_handlers NULL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #endif