/* As yet undefined FSCC_ code for POSIX info level. */
#define FSCC_FILE_POSIX_INFORMATION 100
-#define SMB2_FS_POSIX_INFORMATION 100
/* MS-FSCC 2.4 File System Information Classes */
#define FSCC_FS_OBJECTID_INFORMATION 8
#define FSCC_FS_SECTOR_SIZE_INFORMATION 11
+/* As yet undefined FSCC_ code for POSIX info level. */
+#define FSCC_FS_POSIX_INFORMATION 100
+
/* NT passthrough levels... */
#define NT_PASSTHROUGH_OFFSET 1000
#define SMB2_FILE_RENAME_INFORMATION_INTERNAL (FSCC_FILE_RENAME_INFORMATION + SMB2_INFO_SPECIAL)
#define SMB2_FILE_FULL_EA_INFORMATION (FSCC_FILE_FULL_EA_INFORMATION + SMB2_INFO_SPECIAL)
#define SMB2_FILE_ALL_INFORMATION (FSCC_FILE_ALL_INFORMATION + SMB2_INFO_SPECIAL)
-#define SMB2_FS_POSIX_INFORMATION_INTERNAL (SMB2_FS_POSIX_INFORMATION + NT_PASSTHROUGH_OFFSET)
/* NT passthrough levels for qfsinfo. */
state->cli,
state->fnum,
SMB2_0_INFO_FILESYSTEM, /* in_info_type */
- SMB2_FS_POSIX_INFORMATION, /* in_file_info_class */
+ FSCC_FS_POSIX_INFORMATION, /* in_file_info_class */
0xFFFF, /* in_max_output_length */
NULL, /* in_input_buffer */
0, /* in_additional_info */
int data_size = 0;
size_t fixed_portion;
- /* the levels directly map to the passthru levels */
- file_info_level = in_file_info_class + NT_PASSTHROUGH_OFFSET;
+ switch (in_file_info_class) {
+ case FSCC_FS_POSIX_INFORMATION:
+ file_info_level = in_file_info_class;
+ break;
+ default:
+ /* the levels directly map to the passthru levels */
+ file_info_level = in_file_info_class + NT_PASSTHROUGH_OFFSET;
+ break;
+ }
status = smbd_do_qfsinfo(smb2req->xconn, conn, state,
file_info_level,
{
if (conn_using_smb2(conn->sconn) &&
fsp->fsp_flags.posix_open &&
- info_level == SMB2_FS_POSIX_INFORMATION_INTERNAL)
+ info_level == FSCC_FS_POSIX_INFORMATION)
{
return true;
}
#endif
case SMB_QUERY_POSIX_FS_INFO:
- case SMB2_FS_POSIX_INFORMATION_INTERNAL:
+ case FSCC_FS_POSIX_INFORMATION:
{
int rc;
struct vfs_statvfs_struct svfs;