summaryrefslogtreecommitdiff
path: root/fs/ksmbd/xattr.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ksmbd/xattr.h')
-rw-r--r--fs/ksmbd/xattr.h122
1 files changed, 0 insertions, 122 deletions
diff --git a/fs/ksmbd/xattr.h b/fs/ksmbd/xattr.h
deleted file mode 100644
index 16499ca5c82d..000000000000
--- a/fs/ksmbd/xattr.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright (C) 2021 Samsung Electronics Co., Ltd.
- */
-
-#ifndef __XATTR_H__
-#define __XATTR_H__
-
-/*
- * These are on-disk structures to store additional metadata into xattr to
- * reproduce windows filesystem semantics. And they are encoded with NDR to
- * compatible with samba's xattr meta format. The compatibility with samba
- * is important because it can lose the information(file attribute,
- * creation time, acls) about the existing files when switching between
- * ksmbd and samba.
- */
-
-/*
- * Dos attribute flags used for what variable is valid.
- */
-enum {
- XATTR_DOSINFO_ATTRIB = 0x00000001,
- XATTR_DOSINFO_EA_SIZE = 0x00000002,
- XATTR_DOSINFO_SIZE = 0x00000004,
- XATTR_DOSINFO_ALLOC_SIZE = 0x00000008,
- XATTR_DOSINFO_CREATE_TIME = 0x00000010,
- XATTR_DOSINFO_CHANGE_TIME = 0x00000020,
- XATTR_DOSINFO_ITIME = 0x00000040
-};
-
-/*
- * Dos attribute structure which is compatible with samba's one.
- * Storing it into the xattr named "DOSATTRIB" separately from inode
- * allows ksmbd to faithfully reproduce windows filesystem semantics
- * on top of a POSIX filesystem.
- */
-struct xattr_dos_attrib {
- __u16 version; /* version 3 or version 4 */
- __u32 flags; /* valid flags */
- __u32 attr; /* Dos attribute */
- __u32 ea_size; /* EA size */
- __u64 size;
- __u64 alloc_size;
- __u64 create_time; /* File creation time */
- __u64 change_time; /* File change time */
- __u64 itime; /* Invented/Initial time */
-};
-
-/*
- * Enumeration is used for computing posix acl hash.
- */
-enum {
- SMB_ACL_TAG_INVALID = 0,
- SMB_ACL_USER,
- SMB_ACL_USER_OBJ,
- SMB_ACL_GROUP,
- SMB_ACL_GROUP_OBJ,
- SMB_ACL_OTHER,
- SMB_ACL_MASK
-};
-
-#define SMB_ACL_READ 4
-#define SMB_ACL_WRITE 2
-#define SMB_ACL_EXECUTE 1
-
-struct xattr_acl_entry {
- int type;
- uid_t uid;
- gid_t gid;
- mode_t perm;
-};
-
-/*
- * xattr_smb_acl structure is used for computing posix acl hash.
- */
-struct xattr_smb_acl {
- int count;
- int next;
- struct xattr_acl_entry entries[];
-};
-
-/* 64bytes hash in xattr_ntacl is computed with sha256 */
-#define XATTR_SD_HASH_TYPE_SHA256 0x1
-#define XATTR_SD_HASH_SIZE 64
-
-/*
- * xattr_ntacl is used for storing ntacl and hashes.
- * Hash is used for checking valid posix acl and ntacl in xattr.
- */
-struct xattr_ntacl {
- __u16 version; /* version 4*/
- void *sd_buf;
- __u32 sd_size;
- __u16 hash_type; /* hash type */
- __u8 desc[10]; /* posix_acl description */
- __u16 desc_len;
- __u64 current_time;
- __u8 hash[XATTR_SD_HASH_SIZE]; /* 64bytes hash for ntacl */
- __u8 posix_acl_hash[XATTR_SD_HASH_SIZE]; /* 64bytes hash for posix acl */
-};
-
-/* DOS ATTRIBUITE XATTR PREFIX */
-#define DOS_ATTRIBUTE_PREFIX "DOSATTRIB"
-#define DOS_ATTRIBUTE_PREFIX_LEN (sizeof(DOS_ATTRIBUTE_PREFIX) - 1)
-#define XATTR_NAME_DOS_ATTRIBUTE (XATTR_USER_PREFIX DOS_ATTRIBUTE_PREFIX)
-#define XATTR_NAME_DOS_ATTRIBUTE_LEN \
- (sizeof(XATTR_USER_PREFIX DOS_ATTRIBUTE_PREFIX) - 1)
-
-/* STREAM XATTR PREFIX */
-#define STREAM_PREFIX "DosStream."
-#define STREAM_PREFIX_LEN (sizeof(STREAM_PREFIX) - 1)
-#define XATTR_NAME_STREAM (XATTR_USER_PREFIX STREAM_PREFIX)
-#define XATTR_NAME_STREAM_LEN (sizeof(XATTR_NAME_STREAM) - 1)
-
-/* SECURITY DESCRIPTOR(NTACL) XATTR PREFIX */
-#define SD_PREFIX "NTACL"
-#define SD_PREFIX_LEN (sizeof(SD_PREFIX) - 1)
-#define XATTR_NAME_SD (XATTR_SECURITY_PREFIX SD_PREFIX)
-#define XATTR_NAME_SD_LEN \
- (sizeof(XATTR_SECURITY_PREFIX SD_PREFIX) - 1)
-
-#endif /* __XATTR_H__ */