]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ksmbd: Use the SMB3_Create definitions from the shared
authorRonnie Sahlberg <lsahlber@redhat.com>
Tue, 2 Nov 2021 23:45:52 +0000 (08:45 +0900)
committerSteve French <stfrench@microsoft.com>
Fri, 12 Nov 2021 01:22:58 +0000 (19:22 -0600)
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/ksmbd/smb2pdu.c
fs/ksmbd/smb2pdu.h
fs/ksmbd/smb_common.h
fs/ksmbd/vfs.c
fs/ksmbd/vfs.h

index f3c3ff3eab2e09800a5de80594b653c1ae151364..121f8e8c70aca16d6ce134724f129e0cb4d651ec 100644 (file)
@@ -713,17 +713,17 @@ static int smb2_get_dos_mode(struct kstat *stat, int attribute)
        int attr = 0;
 
        if (S_ISDIR(stat->mode)) {
-               attr = ATTR_DIRECTORY |
-                       (attribute & (ATTR_HIDDEN | ATTR_SYSTEM));
+               attr = FILE_ATTRIBUTE_DIRECTORY |
+                       (attribute & (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM));
        } else {
-               attr = (attribute & 0x00005137) | ATTR_ARCHIVE;
-               attr &= ~(ATTR_DIRECTORY);
+               attr = (attribute & 0x00005137) | FILE_ATTRIBUTE_ARCHIVE;
+               attr &= ~(FILE_ATTRIBUTE_DIRECTORY);
                if (S_ISREG(stat->mode) && (server_conf.share_fake_fscaps &
                                FILE_SUPPORTS_SPARSE_FILES))
-                       attr |= ATTR_SPARSE;
+                       attr |= FILE_ATTRIBUTE_SPARSE_FILE;
 
                if (smb2_get_reparse_tag_special_file(stat->mode))
-                       attr |= ATTR_REPARSE;
+                       attr |= FILE_ATTRIBUTE_REPARSE_POINT;
        }
 
        return attr;
@@ -2098,7 +2098,7 @@ static noinline int create_smb2_pipe(struct ksmbd_work *work)
        rsp->hdr.Status = STATUS_SUCCESS;
        rsp->StructureSize = cpu_to_le16(89);
        rsp->OplockLevel = SMB2_OPLOCK_LEVEL_NONE;
-       rsp->Reserved = 0;
+       rsp->Flags = 0;
        rsp->CreateAction = cpu_to_le32(FILE_OPENED);
 
        rsp->CreationTime = cpu_to_le64(0);
@@ -2106,7 +2106,7 @@ static noinline int create_smb2_pipe(struct ksmbd_work *work)
        rsp->ChangeTime = cpu_to_le64(0);
        rsp->AllocationSize = cpu_to_le64(0);
        rsp->EndofFile = cpu_to_le64(0);
-       rsp->FileAttributes = ATTR_NORMAL_LE;
+       rsp->FileAttributes = FILE_ATTRIBUTE_NORMAL_LE;
        rsp->Reserved2 = 0;
        rsp->VolatileFileId = cpu_to_le64(id);
        rsp->PersistentFileId = 0;
@@ -2352,7 +2352,7 @@ static void smb2_update_xattrs(struct ksmbd_tree_connect *tcon,
        struct xattr_dos_attrib da;
        int rc;
 
-       fp->f_ci->m_fattr &= ~(ATTR_HIDDEN_LE | ATTR_SYSTEM_LE);
+       fp->f_ci->m_fattr &= ~(FILE_ATTRIBUTE_HIDDEN_LE | FILE_ATTRIBUTE_SYSTEM_LE);
 
        /* get FileAttributes from XATTR_NAME_DOS_ATTRIBUTE */
        if (!test_share_config_flag(tcon->share_conf,
@@ -2557,7 +2557,7 @@ int smb2_open(struct ksmbd_work *work)
        if (req_op_level == SMB2_OPLOCK_LEVEL_LEASE)
                lc = parse_lease_state(req);
 
-       if (le32_to_cpu(req->ImpersonationLevel) > le32_to_cpu(IL_DELEGATE_LE)) {
+       if (le32_to_cpu(req->ImpersonationLevel) > le32_to_cpu(IL_DELEGATE)) {
                pr_err("Invalid impersonationlevel : 0x%x\n",
                       le32_to_cpu(req->ImpersonationLevel));
                rc = -EIO;
@@ -2565,7 +2565,7 @@ int smb2_open(struct ksmbd_work *work)
                goto err_out1;
        }
 
-       if (req->CreateOptions && !(req->CreateOptions & CREATE_OPTIONS_MASK)) {
+       if (req->CreateOptions && !(req->CreateOptions & CREATE_OPTIONS_MASK_LE)) {
                pr_err("Invalid create options : 0x%x\n",
                       le32_to_cpu(req->CreateOptions));
                rc = -EINVAL;
@@ -2607,7 +2607,7 @@ int smb2_open(struct ksmbd_work *work)
                goto err_out1;
        }
 
-       if (req->FileAttributes && !(req->FileAttributes & ATTR_MASK_LE)) {
+       if (req->FileAttributes && !(req->FileAttributes & FILE_ATTRIBUTE_MASK_LE)) {
                pr_err("Invalid file attribute : 0x%x\n",
                       le32_to_cpu(req->FileAttributes));
                rc = -EINVAL;
@@ -2738,7 +2738,7 @@ int smb2_open(struct ksmbd_work *work)
                }
 
                if (req->CreateOptions & FILE_DIRECTORY_FILE_LE &&
-                   req->FileAttributes & ATTR_NORMAL_LE) {
+                   req->FileAttributes & FILE_ATTRIBUTE_NORMAL_LE) {
                        rsp->hdr.Status = STATUS_NOT_A_DIRECTORY;
                        rc = -EIO;
                }
@@ -3117,7 +3117,7 @@ int smb2_open(struct ksmbd_work *work)
        opinfo = rcu_dereference(fp->f_opinfo);
        rsp->OplockLevel = opinfo != NULL ? opinfo->level : 0;
        rcu_read_unlock();
-       rsp->Reserved = 0;
+       rsp->Flags = 0;
        rsp->CreateAction = cpu_to_le32(file_info);
        rsp->CreationTime = cpu_to_le64(fp->create_time);
        time = ksmbd_UnixTimeToNT(stat.atime);
@@ -3423,9 +3423,9 @@ static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
                ffdinfo->EaSize =
                        smb2_get_reparse_tag_special_file(ksmbd_kstat->kstat->mode);
                if (ffdinfo->EaSize)
-                       ffdinfo->ExtFileAttributes = ATTR_REPARSE_POINT_LE;
+                       ffdinfo->ExtFileAttributes = FILE_ATTRIBUTE_REPARSE_POINT_LE;
                if (d_info->hide_dot_file && d_info->name[0] == '.')
-                       ffdinfo->ExtFileAttributes |= ATTR_HIDDEN_LE;
+                       ffdinfo->ExtFileAttributes |= FILE_ATTRIBUTE_HIDDEN_LE;
                memcpy(ffdinfo->FileName, conv_name, conv_len);
                ffdinfo->NextEntryOffset = cpu_to_le32(next_entry_offset);
                break;
@@ -3439,11 +3439,11 @@ static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
                fbdinfo->EaSize =
                        smb2_get_reparse_tag_special_file(ksmbd_kstat->kstat->mode);
                if (fbdinfo->EaSize)
-                       fbdinfo->ExtFileAttributes = ATTR_REPARSE_POINT_LE;
+                       fbdinfo->ExtFileAttributes = FILE_ATTRIBUTE_REPARSE_POINT_LE;
                fbdinfo->ShortNameLength = 0;
                fbdinfo->Reserved = 0;
                if (d_info->hide_dot_file && d_info->name[0] == '.')
-                       fbdinfo->ExtFileAttributes |= ATTR_HIDDEN_LE;
+                       fbdinfo->ExtFileAttributes |= FILE_ATTRIBUTE_HIDDEN_LE;
                memcpy(fbdinfo->FileName, conv_name, conv_len);
                fbdinfo->NextEntryOffset = cpu_to_le32(next_entry_offset);
                break;
@@ -3455,7 +3455,7 @@ static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
                fdinfo = (struct file_directory_info *)kstat;
                fdinfo->FileNameLength = cpu_to_le32(conv_len);
                if (d_info->hide_dot_file && d_info->name[0] == '.')
-                       fdinfo->ExtFileAttributes |= ATTR_HIDDEN_LE;
+                       fdinfo->ExtFileAttributes |= FILE_ATTRIBUTE_HIDDEN_LE;
                memcpy(fdinfo->FileName, conv_name, conv_len);
                fdinfo->NextEntryOffset = cpu_to_le32(next_entry_offset);
                break;
@@ -3479,11 +3479,11 @@ static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
                dinfo->EaSize =
                        smb2_get_reparse_tag_special_file(ksmbd_kstat->kstat->mode);
                if (dinfo->EaSize)
-                       dinfo->ExtFileAttributes = ATTR_REPARSE_POINT_LE;
+                       dinfo->ExtFileAttributes = FILE_ATTRIBUTE_REPARSE_POINT_LE;
                dinfo->Reserved = 0;
                dinfo->UniqueId = cpu_to_le64(ksmbd_kstat->kstat->ino);
                if (d_info->hide_dot_file && d_info->name[0] == '.')
-                       dinfo->ExtFileAttributes |= ATTR_HIDDEN_LE;
+                       dinfo->ExtFileAttributes |= FILE_ATTRIBUTE_HIDDEN_LE;
                memcpy(dinfo->FileName, conv_name, conv_len);
                dinfo->NextEntryOffset = cpu_to_le32(next_entry_offset);
                break;
@@ -3497,13 +3497,13 @@ static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
                fibdinfo->EaSize =
                        smb2_get_reparse_tag_special_file(ksmbd_kstat->kstat->mode);
                if (fibdinfo->EaSize)
-                       fibdinfo->ExtFileAttributes = ATTR_REPARSE_POINT_LE;
+                       fibdinfo->ExtFileAttributes = FILE_ATTRIBUTE_REPARSE_POINT_LE;
                fibdinfo->UniqueId = cpu_to_le64(ksmbd_kstat->kstat->ino);
                fibdinfo->ShortNameLength = 0;
                fibdinfo->Reserved = 0;
                fibdinfo->Reserved2 = cpu_to_le16(0);
                if (d_info->hide_dot_file && d_info->name[0] == '.')
-                       fibdinfo->ExtFileAttributes |= ATTR_HIDDEN_LE;
+                       fibdinfo->ExtFileAttributes |= FILE_ATTRIBUTE_HIDDEN_LE;
                memcpy(fibdinfo->FileName, conv_name, conv_len);
                fibdinfo->NextEntryOffset = cpu_to_le32(next_entry_offset);
                break;
@@ -3529,9 +3529,10 @@ static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
                posix_info->Mode = cpu_to_le32(ksmbd_kstat->kstat->mode);
                posix_info->Inode = cpu_to_le64(ksmbd_kstat->kstat->ino);
                posix_info->DosAttributes =
-                       S_ISDIR(ksmbd_kstat->kstat->mode) ? ATTR_DIRECTORY_LE : ATTR_ARCHIVE_LE;
+                       S_ISDIR(ksmbd_kstat->kstat->mode) ?
+                               FILE_ATTRIBUTE_DIRECTORY_LE : FILE_ATTRIBUTE_ARCHIVE_LE;
                if (d_info->hide_dot_file && d_info->name[0] == '.')
-                       posix_info->DosAttributes |= ATTR_HIDDEN_LE;
+                       posix_info->DosAttributes |= FILE_ATTRIBUTE_HIDDEN_LE;
                id_to_sid(from_kuid_munged(&init_user_ns, ksmbd_kstat->kstat->uid),
                          SIDNFS_USER, (struct smb_sid *)&posix_info->SidBuffer[0]);
                id_to_sid(from_kgid_munged(&init_user_ns, ksmbd_kstat->kstat->gid),
@@ -5577,14 +5578,14 @@ static int set_file_basic_info(struct ksmbd_file *fp,
 
        if (file_info->Attributes) {
                if (!S_ISDIR(inode->i_mode) &&
-                   file_info->Attributes & ATTR_DIRECTORY_LE) {
+                   file_info->Attributes & FILE_ATTRIBUTE_DIRECTORY_LE) {
                        pr_err("can't change a file to a directory\n");
                        return -EINVAL;
                }
 
-               if (!(S_ISDIR(inode->i_mode) && file_info->Attributes == ATTR_NORMAL_LE))
+               if (!(S_ISDIR(inode->i_mode) && file_info->Attributes == FILE_ATTRIBUTE_NORMAL_LE))
                        fp->f_ci->m_fattr = file_info->Attributes |
-                               (fp->f_ci->m_fattr & ATTR_DIRECTORY_LE);
+                               (fp->f_ci->m_fattr & FILE_ATTRIBUTE_DIRECTORY_LE);
        }
 
        if (test_share_config_flag(share, KSMBD_SHARE_FLAG_STORE_DOS_ATTRS) &&
@@ -5805,9 +5806,7 @@ static int set_file_mode_info(struct ksmbd_file *fp,
 
        mode = file_info->Mode;
 
-       if ((mode & ~FILE_MODE_INFO_MASK) ||
-           (mode & FILE_SYNCHRONOUS_IO_ALERT_LE &&
-            mode & FILE_SYNCHRONOUS_IO_NONALERT_LE)) {
+       if ((mode & ~FILE_MODE_INFO_MASK)) {
                pr_err("Mode is not valid : 0x%x\n", le32_to_cpu(mode));
                return -EINVAL;
        }
@@ -7444,9 +7443,9 @@ static inline int fsctl_set_sparse(struct ksmbd_work *work, u64 id,
 
        old_fattr = fp->f_ci->m_fattr;
        if (sparse->SetSparse)
-               fp->f_ci->m_fattr |= ATTR_SPARSE_FILE_LE;
+               fp->f_ci->m_fattr |= FILE_ATTRIBUTE_SPARSE_FILE_LE;
        else
-               fp->f_ci->m_fattr &= ~ATTR_SPARSE_FILE_LE;
+               fp->f_ci->m_fattr &= ~FILE_ATTRIBUTE_SPARSE_FILE_LE;
 
        if (fp->f_ci->m_fattr != old_fattr &&
            test_share_config_flag(work->tcon->share_conf,
index c3eec4d1447b28596f08300f262f2f5092477176..4a3e4339d4c4f5525fa33541236e42bac741b35d 100644 (file)
@@ -101,157 +101,6 @@ struct preauth_integrity_info {
 #define SMB2_SESSION_IN_PROGRESS       BIT(0)
 #define SMB2_SESSION_VALID             BIT(1)
 
-#define ATTR_READONLY_LE       cpu_to_le32(ATTR_READONLY)
-#define ATTR_HIDDEN_LE         cpu_to_le32(ATTR_HIDDEN)
-#define ATTR_SYSTEM_LE         cpu_to_le32(ATTR_SYSTEM)
-#define ATTR_DIRECTORY_LE      cpu_to_le32(ATTR_DIRECTORY)
-#define ATTR_ARCHIVE_LE                cpu_to_le32(ATTR_ARCHIVE)
-#define ATTR_NORMAL_LE         cpu_to_le32(ATTR_NORMAL)
-#define ATTR_TEMPORARY_LE      cpu_to_le32(ATTR_TEMPORARY)
-#define ATTR_SPARSE_FILE_LE    cpu_to_le32(ATTR_SPARSE)
-#define ATTR_REPARSE_POINT_LE  cpu_to_le32(ATTR_REPARSE)
-#define ATTR_COMPRESSED_LE     cpu_to_le32(ATTR_COMPRESSED)
-#define ATTR_OFFLINE_LE                cpu_to_le32(ATTR_OFFLINE)
-#define ATTR_NOT_CONTENT_INDEXED_LE    cpu_to_le32(ATTR_NOT_CONTENT_INDEXED)
-#define ATTR_ENCRYPTED_LE      cpu_to_le32(ATTR_ENCRYPTED)
-#define ATTR_INTEGRITY_STREAML_LE      cpu_to_le32(0x00008000)
-#define ATTR_NO_SCRUB_DATA_LE  cpu_to_le32(0x00020000)
-#define ATTR_MASK_LE           cpu_to_le32(0x00007FB7)
-
-/* Oplock levels */
-#define SMB2_OPLOCK_LEVEL_NONE         0x00
-#define SMB2_OPLOCK_LEVEL_II           0x01
-#define SMB2_OPLOCK_LEVEL_EXCLUSIVE    0x08
-#define SMB2_OPLOCK_LEVEL_BATCH                0x09
-#define SMB2_OPLOCK_LEVEL_LEASE                0xFF
-/* Non-spec internal type */
-#define SMB2_OPLOCK_LEVEL_NOCHANGE     0x99
-
-/* Desired Access Flags */
-#define FILE_READ_DATA_LE              cpu_to_le32(0x00000001)
-#define FILE_LIST_DIRECTORY_LE         cpu_to_le32(0x00000001)
-#define FILE_WRITE_DATA_LE             cpu_to_le32(0x00000002)
-#define FILE_ADD_FILE_LE               cpu_to_le32(0x00000002)
-#define FILE_APPEND_DATA_LE            cpu_to_le32(0x00000004)
-#define FILE_ADD_SUBDIRECTORY_LE       cpu_to_le32(0x00000004)
-#define FILE_READ_EA_LE                        cpu_to_le32(0x00000008)
-#define FILE_WRITE_EA_LE               cpu_to_le32(0x00000010)
-#define FILE_EXECUTE_LE                        cpu_to_le32(0x00000020)
-#define FILE_TRAVERSE_LE               cpu_to_le32(0x00000020)
-#define FILE_DELETE_CHILD_LE           cpu_to_le32(0x00000040)
-#define FILE_READ_ATTRIBUTES_LE                cpu_to_le32(0x00000080)
-#define FILE_WRITE_ATTRIBUTES_LE       cpu_to_le32(0x00000100)
-#define FILE_DELETE_LE                 cpu_to_le32(0x00010000)
-#define FILE_READ_CONTROL_LE           cpu_to_le32(0x00020000)
-#define FILE_WRITE_DAC_LE              cpu_to_le32(0x00040000)
-#define FILE_WRITE_OWNER_LE            cpu_to_le32(0x00080000)
-#define FILE_SYNCHRONIZE_LE            cpu_to_le32(0x00100000)
-#define FILE_ACCESS_SYSTEM_SECURITY_LE cpu_to_le32(0x01000000)
-#define FILE_MAXIMAL_ACCESS_LE         cpu_to_le32(0x02000000)
-#define FILE_GENERIC_ALL_LE            cpu_to_le32(0x10000000)
-#define FILE_GENERIC_EXECUTE_LE                cpu_to_le32(0x20000000)
-#define FILE_GENERIC_WRITE_LE          cpu_to_le32(0x40000000)
-#define FILE_GENERIC_READ_LE           cpu_to_le32(0x80000000)
-#define DESIRED_ACCESS_MASK            cpu_to_le32(0xF21F01FF)
-
-/* ShareAccess Flags */
-#define FILE_SHARE_READ_LE             cpu_to_le32(0x00000001)
-#define FILE_SHARE_WRITE_LE            cpu_to_le32(0x00000002)
-#define FILE_SHARE_DELETE_LE           cpu_to_le32(0x00000004)
-#define FILE_SHARE_ALL_LE              cpu_to_le32(0x00000007)
-
-/* CreateDisposition Flags */
-#define FILE_SUPERSEDE_LE              cpu_to_le32(0x00000000)
-#define FILE_OPEN_LE                   cpu_to_le32(0x00000001)
-#define FILE_CREATE_LE                 cpu_to_le32(0x00000002)
-#define        FILE_OPEN_IF_LE                 cpu_to_le32(0x00000003)
-#define FILE_OVERWRITE_LE              cpu_to_le32(0x00000004)
-#define FILE_OVERWRITE_IF_LE           cpu_to_le32(0x00000005)
-#define FILE_CREATE_MASK_LE            cpu_to_le32(0x00000007)
-
-#define FILE_READ_DESIRED_ACCESS_LE    (FILE_READ_DATA_LE |            \
-                                       FILE_READ_EA_LE |               \
-                                       FILE_GENERIC_READ_LE)
-#define FILE_WRITE_DESIRE_ACCESS_LE    (FILE_WRITE_DATA_LE |           \
-                                       FILE_APPEND_DATA_LE |           \
-                                       FILE_WRITE_EA_LE |              \
-                                       FILE_WRITE_ATTRIBUTES_LE |      \
-                                       FILE_GENERIC_WRITE_LE)
-
-/* Impersonation Levels */
-#define IL_ANONYMOUS_LE                cpu_to_le32(0x00000000)
-#define IL_IDENTIFICATION_LE   cpu_to_le32(0x00000001)
-#define IL_IMPERSONATION_LE    cpu_to_le32(0x00000002)
-#define IL_DELEGATE_LE         cpu_to_le32(0x00000003)
-
-/* Create Context Values */
-#define SMB2_CREATE_EA_BUFFER                  "ExtA" /* extended attributes */
-#define SMB2_CREATE_SD_BUFFER                  "SecD" /* security descriptor */
-#define SMB2_CREATE_DURABLE_HANDLE_REQUEST     "DHnQ"
-#define SMB2_CREATE_DURABLE_HANDLE_RECONNECT   "DHnC"
-#define SMB2_CREATE_ALLOCATION_SIZE            "AlSi"
-#define SMB2_CREATE_QUERY_MAXIMAL_ACCESS_REQUEST "MxAc"
-#define SMB2_CREATE_TIMEWARP_REQUEST           "TWrp"
-#define SMB2_CREATE_QUERY_ON_DISK_ID           "QFid"
-#define SMB2_CREATE_REQUEST_LEASE              "RqLs"
-#define SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2   "DH2Q"
-#define SMB2_CREATE_DURABLE_HANDLE_RECONNECT_V2 "DH2C"
-#define SMB2_CREATE_APP_INSTANCE_ID     "\x45\xBC\xA6\x6A\xEF\xA7\xF7\x4A\x90\x08\xFA\x46\x2E\x14\x4D\x74"
- #define SMB2_CREATE_APP_INSTANCE_VERSION      "\xB9\x82\xD0\xB7\x3B\x56\x07\x4F\xA0\x7B\x52\x4A\x81\x16\xA0\x10"
-#define SVHDX_OPEN_DEVICE_CONTEXT       0x83CE6F1AD851E0986E34401CC9BCFCE9
-#define SMB2_CREATE_TAG_POSIX          "\x93\xAD\x25\x50\x9C\xB4\x11\xE7\xB4\x23\x83\xDE\x96\x8B\xCD\x7C"
-
-struct smb2_create_req {
-       struct smb2_hdr hdr;
-       __le16 StructureSize;   /* Must be 57 */
-       __u8   SecurityFlags;
-       __u8   RequestedOplockLevel;
-       __le32 ImpersonationLevel;
-       __le64 SmbCreateFlags;
-       __le64 Reserved;
-       __le32 DesiredAccess;
-       __le32 FileAttributes;
-       __le32 ShareAccess;
-       __le32 CreateDisposition;
-       __le32 CreateOptions;
-       __le16 NameOffset;
-       __le16 NameLength;
-       __le32 CreateContextsOffset;
-       __le32 CreateContextsLength;
-       __u8   Buffer[0];
-} __packed;
-
-struct smb2_create_rsp {
-       struct smb2_hdr hdr;
-       __le16 StructureSize;   /* Must be 89 */
-       __u8   OplockLevel;
-       __u8   Reserved;
-       __le32 CreateAction;
-       __le64 CreationTime;
-       __le64 LastAccessTime;
-       __le64 LastWriteTime;
-       __le64 ChangeTime;
-       __le64 AllocationSize;
-       __le64 EndofFile;
-       __le32 FileAttributes;
-       __le32 Reserved2;
-       __le64  PersistentFileId;
-       __le64  VolatileFileId;
-       __le32 CreateContextsOffset;
-       __le32 CreateContextsLength;
-       __u8   Buffer[1];
-} __packed;
-
-struct create_context {
-       __le32 Next;
-       __le16 NameOffset;
-       __le16 NameLength;
-       __le16 Reserved;
-       __le16 DataOffset;
-       __le32 DataLength;
-       __u8 Buffer[0];
-} __packed;
-
 struct create_durable_req_v2 {
        struct create_context ccontext;
        __u8   Name[8];
@@ -1012,7 +861,7 @@ struct smb2_file_pos_info {
        __le64 CurrentByteOffset;
 } __packed;
 
-#define FILE_MODE_INFO_MASK cpu_to_le32(0x0000103e)
+#define FILE_MODE_INFO_MASK cpu_to_le32(0x0000100e)
 
 struct smb2_file_mode_info {
        __le32 Mode;
index 8ed09ba782c295bc8e0e27a2ba94dc1c3cfb624e..50590842b651e7b153fc86cffd9d5f7f7b17f714 100644 (file)
 /*
  * File Attribute flags
  */
-#define ATTR_READONLY                  0x0001
-#define ATTR_HIDDEN                    0x0002
-#define ATTR_SYSTEM                    0x0004
-#define ATTR_VOLUME                    0x0008
-#define ATTR_DIRECTORY                 0x0010
-#define ATTR_ARCHIVE                   0x0020
-#define ATTR_DEVICE                    0x0040
-#define ATTR_NORMAL                    0x0080
-#define ATTR_TEMPORARY                 0x0100
-#define ATTR_SPARSE                    0x0200
-#define ATTR_REPARSE                   0x0400
-#define ATTR_COMPRESSED                        0x0800
-#define ATTR_OFFLINE                   0x1000
-#define ATTR_NOT_CONTENT_INDEXED       0x2000
-#define ATTR_ENCRYPTED                 0x4000
 #define ATTR_POSIX_SEMANTICS           0x01000000
 #define ATTR_BACKUP_SEMANTICS          0x02000000
 #define ATTR_DELETE_ON_CLOSE           0x04000000
 #define ATTR_NO_BUFFERING              0x20000000
 #define ATTR_WRITE_THROUGH             0x80000000
 
-#define ATTR_READONLY_LE               cpu_to_le32(ATTR_READONLY)
-#define ATTR_HIDDEN_LE                 cpu_to_le32(ATTR_HIDDEN)
-#define ATTR_SYSTEM_LE                 cpu_to_le32(ATTR_SYSTEM)
-#define ATTR_DIRECTORY_LE              cpu_to_le32(ATTR_DIRECTORY)
-#define ATTR_ARCHIVE_LE                        cpu_to_le32(ATTR_ARCHIVE)
-#define ATTR_NORMAL_LE                 cpu_to_le32(ATTR_NORMAL)
-#define ATTR_TEMPORARY_LE              cpu_to_le32(ATTR_TEMPORARY)
-#define ATTR_SPARSE_FILE_LE            cpu_to_le32(ATTR_SPARSE)
-#define ATTR_REPARSE_POINT_LE          cpu_to_le32(ATTR_REPARSE)
-#define ATTR_COMPRESSED_LE             cpu_to_le32(ATTR_COMPRESSED)
-#define ATTR_OFFLINE_LE                        cpu_to_le32(ATTR_OFFLINE)
-#define ATTR_NOT_CONTENT_INDEXED_LE    cpu_to_le32(ATTR_NOT_CONTENT_INDEXED)
-#define ATTR_ENCRYPTED_LE              cpu_to_le32(ATTR_ENCRYPTED)
-#define ATTR_INTEGRITY_STREAML_LE      cpu_to_le32(0x00008000)
-#define ATTR_NO_SCRUB_DATA_LE          cpu_to_le32(0x00020000)
-#define ATTR_MASK_LE                   cpu_to_le32(0x00007FB7)
-
 /* List of FileSystemAttributes - see 2.5.1 of MS-FSCC */
 #define FILE_SUPPORTS_SPARSE_VDL       0x10000000 /* faster nonsparse extend */
 #define FILE_SUPPORTS_BLOCK_REFCOUNTING        0x08000000 /* allow ioctl dup extents */
 /* file_execute, file_read_attributes*/
 /* write_dac, and delete.           */
 
-#define FILE_READ_RIGHTS (FILE_READ_DATA | FILE_READ_EA | FILE_READ_ATTRIBUTES)
-#define FILE_WRITE_RIGHTS (FILE_WRITE_DATA | FILE_APPEND_DATA \
-               | FILE_WRITE_EA | FILE_WRITE_ATTRIBUTES)
-#define FILE_EXEC_RIGHTS (FILE_EXECUTE)
-
 #define SET_FILE_READ_RIGHTS (FILE_READ_DATA | FILE_READ_EA \
                | FILE_READ_ATTRIBUTES \
                | DELETE | READ_CONTROL | WRITE_DAC \
index 835b384b089593ee5c77cf9afe35871996074a3e..19d36393974ca95a30590921f98ad649e11014c2 100644 (file)
@@ -1013,7 +1013,7 @@ int ksmbd_vfs_zero_data(struct ksmbd_work *work, struct ksmbd_file *fp,
                        loff_t off, loff_t len)
 {
        smb_break_all_levII_oplock(work, fp, 1);
-       if (fp->f_ci->m_fattr & ATTR_SPARSE_FILE_LE)
+       if (fp->f_ci->m_fattr & FILE_ATTRIBUTE_SPARSE_FILE_LE)
                return vfs_fallocate(fp->filp,
                                     FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE,
                                     off, len);
@@ -1624,7 +1624,7 @@ void *ksmbd_vfs_init_kstat(char **p, struct ksmbd_kstat *ksmbd_kstat)
        time = ksmbd_UnixTimeToNT(kstat->ctime);
        info->ChangeTime = cpu_to_le64(time);
 
-       if (ksmbd_kstat->file_attributes & ATTR_DIRECTORY_LE) {
+       if (ksmbd_kstat->file_attributes & FILE_ATTRIBUTE_DIRECTORY_LE) {
                info->EndOfFile = 0;
                info->AllocationSize = 0;
        } else {
@@ -1654,9 +1654,9 @@ int ksmbd_vfs_fill_dentry_attrs(struct ksmbd_work *work,
         * or that acl is disable in server's filesystem and the config is yes.
         */
        if (S_ISDIR(ksmbd_kstat->kstat->mode))
-               ksmbd_kstat->file_attributes = ATTR_DIRECTORY_LE;
+               ksmbd_kstat->file_attributes = FILE_ATTRIBUTE_DIRECTORY_LE;
        else
-               ksmbd_kstat->file_attributes = ATTR_ARCHIVE_LE;
+               ksmbd_kstat->file_attributes = FILE_ATTRIBUTE_ARCHIVE_LE;
 
        if (test_share_config_flag(work->tcon->share_conf,
                                   KSMBD_SHARE_FLAG_STORE_DOS_ATTRS)) {
index b0d5b8feb4a36ba26868dc5da84728e8b2f0049e..adf94a4f22fa6d21e058dfe29e2a01c7c5e3b8a2 100644 (file)
@@ -25,48 +25,9 @@ enum {
 };
 
 /* CreateOptions */
-/* Flag is set, it must not be a file , valid for directory only */
-#define FILE_DIRECTORY_FILE_LE                 cpu_to_le32(0x00000001)
-#define FILE_WRITE_THROUGH_LE                  cpu_to_le32(0x00000002)
-#define FILE_SEQUENTIAL_ONLY_LE                        cpu_to_le32(0x00000004)
-
-/* Should not buffer on server*/
-#define FILE_NO_INTERMEDIATE_BUFFERING_LE      cpu_to_le32(0x00000008)
-/* MBZ */
-#define FILE_SYNCHRONOUS_IO_ALERT_LE           cpu_to_le32(0x00000010)
-/* MBZ */
-#define FILE_SYNCHRONOUS_IO_NONALERT_LE                cpu_to_le32(0x00000020)
-
-/* Flaf must not be set for directory */
-#define FILE_NON_DIRECTORY_FILE_LE             cpu_to_le32(0x00000040)
-
-/* Should be zero */
 #define CREATE_TREE_CONNECTION                 cpu_to_le32(0x00000080)
-#define FILE_COMPLETE_IF_OPLOCKED_LE           cpu_to_le32(0x00000100)
-#define FILE_NO_EA_KNOWLEDGE_LE                        cpu_to_le32(0x00000200)
-#define FILE_OPEN_REMOTE_INSTANCE              cpu_to_le32(0x00000400)
-
-/**
- * Doc says this is obsolete "open for recovery" flag should be zero
- * in any case.
- */
-#define CREATE_OPEN_FOR_RECOVERY               cpu_to_le32(0x00000400)
-#define FILE_RANDOM_ACCESS_LE                  cpu_to_le32(0x00000800)
-#define FILE_DELETE_ON_CLOSE_LE                        cpu_to_le32(0x00001000)
-#define FILE_OPEN_BY_FILE_ID_LE                        cpu_to_le32(0x00002000)
-#define FILE_OPEN_FOR_BACKUP_INTENT_LE         cpu_to_le32(0x00004000)
-#define FILE_NO_COMPRESSION_LE                 cpu_to_le32(0x00008000)
-
-/* Should be zero*/
-#define FILE_OPEN_REQUIRING_OPLOCK             cpu_to_le32(0x00010000)
-#define FILE_DISALLOW_EXCLUSIVE                        cpu_to_le32(0x00020000)
 #define FILE_RESERVE_OPFILTER_LE               cpu_to_le32(0x00100000)
-#define FILE_OPEN_REPARSE_POINT_LE             cpu_to_le32(0x00200000)
-#define FILE_OPEN_NO_RECALL_LE                 cpu_to_le32(0x00400000)
 
-/* Should be zero */
-#define FILE_OPEN_FOR_FREE_SPACE_QUERY_LE      cpu_to_le32(0x00800000)
-#define CREATE_OPTIONS_MASK                    cpu_to_le32(0x00FFFFFF)
 #define CREATE_OPTION_READONLY                 0x10000000
 /* system. NB not sent over wire */
 #define CREATE_OPTION_SPECIAL                  0x20000000