LCOV - code coverage report
Current view: top level - source3/modules - vfs_not_implemented.c (source / functions) Hit Total Coverage
Test: coverage report for fix-15632 9995c5c2 Lines: 3 318 0.9 %
Date: 2024-04-13 12:30:31 Functions: 1 99 1.0 %

          Line data    Source code
       1             : /*
       2             :  * VFS module with "not implemented " helper functions for other modules.
       3             :  *
       4             :  * Copyright (C) Tim Potter, 1999-2000
       5             :  * Copyright (C) Alexander Bokovoy, 2002
       6             :  * Copyright (C) Stefan (metze) Metzmacher, 2003,2018
       7             :  * Copyright (C) Jeremy Allison 2009
       8             :  *
       9             :  * This program is free software; you can redistribute it and/or modify
      10             :  * it under the terms of the GNU General Public License as published by
      11             :  * the Free Software Foundation; either version 3 of the License, or
      12             :  * (at your option) any later version.
      13             :  *
      14             :  * This program is distributed in the hope that it will be useful,
      15             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      16             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      17             :  * GNU General Public License for more details.
      18             :  *
      19             :  * You should have received a copy of the GNU General Public License
      20             :  * along with this program; if not, see <http://www.gnu.org/licenses/>.
      21             :  */
      22             : 
      23             : #include "includes.h"
      24             : #include "lib/util/tevent_unix.h"
      25             : #include "lib/util/tevent_ntstatus.h"
      26             : 
      27             : _PUBLIC_
      28           0 : int vfs_not_implemented_connect(
      29             :                         vfs_handle_struct *handle,
      30             :                         const char *service,
      31             :                         const char *user)
      32             : {
      33           0 :         errno = ENOSYS;
      34           0 :         return -1;
      35             : }
      36             : 
      37             : _PUBLIC_
      38           0 : void vfs_not_implemented_disconnect(vfs_handle_struct *handle)
      39             : {
      40           0 :         ;
      41           0 : }
      42             : 
      43             : _PUBLIC_
      44           0 : uint64_t vfs_not_implemented_disk_free(vfs_handle_struct *handle,
      45             :                                 const struct smb_filename *smb_fname,
      46             :                                 uint64_t *bsize,
      47             :                                 uint64_t *dfree,
      48             :                                 uint64_t *dsize)
      49             : {
      50           0 :         *bsize = 0;
      51           0 :         *dfree = 0;
      52           0 :         *dsize = 0;
      53           0 :         return 0;
      54             : }
      55             : 
      56             : _PUBLIC_
      57           0 : int vfs_not_implemented_get_quota(vfs_handle_struct *handle,
      58             :                                 const struct smb_filename *smb_fname,
      59             :                                 enum SMB_QUOTA_TYPE qtype,
      60             :                                 unid_t id,
      61             :                                 SMB_DISK_QUOTA *dq)
      62             : {
      63           0 :         errno = ENOSYS;
      64           0 :         return -1;
      65             : }
      66             : 
      67             : _PUBLIC_
      68           0 : int vfs_not_implemented_set_quota(vfs_handle_struct *handle,
      69             :                                   enum SMB_QUOTA_TYPE qtype,
      70             :                                   unid_t id, SMB_DISK_QUOTA *dq)
      71             : {
      72           0 :         errno = ENOSYS;
      73           0 :         return -1;
      74             : }
      75             : 
      76             : _PUBLIC_
      77           0 : int vfs_not_implemented_get_shadow_copy_data(vfs_handle_struct *handle,
      78             :                                 files_struct *fsp,
      79             :                                 struct shadow_copy_data *shadow_copy_data,
      80             :                                 bool labels)
      81             : {
      82           0 :         errno = ENOSYS;
      83           0 :         return -1;
      84             : }
      85             : 
      86             : _PUBLIC_
      87           0 : int vfs_not_implemented_statvfs(struct vfs_handle_struct *handle,
      88             :                                 const struct smb_filename *smb_fname,
      89             :                                 struct vfs_statvfs_struct *statbuf)
      90             : {
      91           0 :         errno = ENOSYS;
      92           0 :         return -1;
      93             : }
      94             : 
      95             : _PUBLIC_
      96           0 : uint32_t vfs_not_implemented_fs_capabilities(struct vfs_handle_struct *handle,
      97             :                                 enum timestamp_set_resolution *p_ts_res)
      98             : {
      99           0 :         return 0;
     100             : }
     101             : 
     102             : _PUBLIC_
     103           0 : NTSTATUS vfs_not_implemented_get_dfs_referrals(struct vfs_handle_struct *handle,
     104             :                                                struct dfs_GetDFSReferral *r)
     105             : {
     106           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     107             : }
     108             : 
     109             : _PUBLIC_
     110           0 : NTSTATUS vfs_not_implemented_create_dfs_pathat(struct vfs_handle_struct *handle,
     111             :                                 struct files_struct *dirfsp,
     112             :                                 const struct smb_filename *smb_fname,
     113             :                                 const struct referral *reflist,
     114             :                                 size_t referral_count)
     115             : {
     116           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     117             : }
     118             : 
     119             : _PUBLIC_
     120           0 : NTSTATUS vfs_not_implemented_read_dfs_pathat(struct vfs_handle_struct *handle,
     121             :                                 TALLOC_CTX *mem_ctx,
     122             :                                 struct files_struct *dirfsp,
     123             :                                 struct smb_filename *smb_fname,
     124             :                                 struct referral **ppreflist,
     125             :                                 size_t *preferral_count)
     126             : {
     127           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     128             : }
     129             : 
     130             : _PUBLIC_
     131           0 : NTSTATUS vfs_not_implemented_snap_check_path(struct vfs_handle_struct *handle,
     132             :                                 TALLOC_CTX *mem_ctx,
     133             :                                 const char *service_path,
     134             :                                 char **base_volume)
     135             : {
     136           0 :         return NT_STATUS_NOT_SUPPORTED;
     137             : }
     138             : 
     139             : _PUBLIC_
     140           0 : NTSTATUS vfs_not_implemented_snap_create(struct vfs_handle_struct *handle,
     141             :                                          TALLOC_CTX *mem_ctx,
     142             :                                          const char *base_volume,
     143             :                                          time_t *tstamp,
     144             :                                          bool rw,
     145             :                                          char **base_path,
     146             :                                          char **snap_path)
     147             : {
     148           0 :         return NT_STATUS_NOT_SUPPORTED;
     149             : }
     150             : 
     151             : _PUBLIC_
     152           0 : NTSTATUS vfs_not_implemented_snap_delete(struct vfs_handle_struct *handle,
     153             :                                          TALLOC_CTX *mem_ctx,
     154             :                                          char *base_path,
     155             :                                          char *snap_path)
     156             : {
     157           0 :         return NT_STATUS_NOT_SUPPORTED;
     158             : }
     159             : 
     160             : _PUBLIC_
     161           0 : DIR *vfs_not_implemented_fdopendir(vfs_handle_struct *handle, files_struct *fsp,
     162             :                                    const char *mask, uint32_t attr)
     163             : {
     164           0 :         errno = ENOSYS;
     165           0 :         return NULL;
     166             : }
     167             : 
     168             : _PUBLIC_
     169           0 : struct dirent *vfs_not_implemented_readdir(vfs_handle_struct *handle,
     170             :                                            struct files_struct *dirfsp,
     171             :                                            DIR *dirp)
     172             : {
     173           0 :         errno = ENOSYS;
     174           0 :         return NULL;
     175             : }
     176             : 
     177             : _PUBLIC_
     178           0 : void vfs_not_implemented_rewind_dir(vfs_handle_struct *handle, DIR *dirp)
     179             : {
     180           0 :         ;
     181           0 : }
     182             : 
     183             : _PUBLIC_
     184           0 : int vfs_not_implemented_mkdirat(vfs_handle_struct *handle,
     185             :                 struct files_struct *dirfsp,
     186             :                 const struct smb_filename *smb_fname,
     187             :                 mode_t mode)
     188             : {
     189           0 :         errno = ENOSYS;
     190           0 :         return -1;
     191             : }
     192             : 
     193             : _PUBLIC_
     194           0 : int vfs_not_implemented_closedir(vfs_handle_struct *handle, DIR *dir)
     195             : {
     196           0 :         errno = ENOSYS;
     197           0 :         return -1;
     198             : }
     199             : 
     200             : _PUBLIC_
     201           0 : int vfs_not_implemented_openat(vfs_handle_struct *handle,
     202             :                                const struct files_struct *dirfsp,
     203             :                                const struct smb_filename *smb_fname,
     204             :                                struct files_struct *fsp,
     205             :                                const struct vfs_open_how *how)
     206             : {
     207           0 :         errno = ENOSYS;
     208           0 :         return -1;
     209             : }
     210             : 
     211             : _PUBLIC_
     212           0 : NTSTATUS vfs_not_implemented_create_file(struct vfs_handle_struct *handle,
     213             :                                 struct smb_request *req,
     214             :                                 struct files_struct *dirsp,
     215             :                                 struct smb_filename *smb_fname,
     216             :                                 uint32_t access_mask,
     217             :                                 uint32_t share_access,
     218             :                                 uint32_t create_disposition,
     219             :                                 uint32_t create_options,
     220             :                                 uint32_t file_attributes,
     221             :                                 uint32_t oplock_request,
     222             :                                 const struct smb2_lease *lease,
     223             :                                 uint64_t allocation_size,
     224             :                                 uint32_t private_flags,
     225             :                                 struct security_descriptor *sd,
     226             :                                 struct ea_list *ea_list,
     227             :                                 files_struct **result, int *pinfo,
     228             :                                 const struct smb2_create_blobs *in_context_blobs,
     229             :                                 struct smb2_create_blobs *out_context_blobs)
     230             : {
     231           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     232             : }
     233             : 
     234             : _PUBLIC_
     235           0 : int vfs_not_implemented_close_fn(vfs_handle_struct *handle, files_struct *fsp)
     236             : {
     237           0 :         errno = ENOSYS;
     238           0 :         return -1;
     239             : }
     240             : 
     241             : _PUBLIC_
     242           0 : ssize_t vfs_not_implemented_pread(vfs_handle_struct *handle, files_struct *fsp,
     243             :                                   void *data, size_t n, off_t offset)
     244             : {
     245           0 :         errno = ENOSYS;
     246           0 :         return -1;
     247             : }
     248             : 
     249             : _PUBLIC_
     250           0 : struct tevent_req *vfs_not_implemented_pread_send(struct vfs_handle_struct *handle,
     251             :                                                   TALLOC_CTX *mem_ctx,
     252             :                                                   struct tevent_context *ev,
     253             :                                                   struct files_struct *fsp,
     254             :                                                   void *data, size_t n, off_t offset)
     255             : {
     256           0 :         return NULL;
     257             : }
     258             : 
     259             : _PUBLIC_
     260           0 : ssize_t vfs_not_implemented_pread_recv(struct tevent_req *req,
     261             :                                        struct vfs_aio_state *vfs_aio_state)
     262             : {
     263           0 :         vfs_aio_state->error = ENOSYS;
     264           0 :         return -1;
     265             : }
     266             : 
     267             : _PUBLIC_
     268           0 : ssize_t vfs_not_implemented_pwrite(vfs_handle_struct *handle, files_struct *fsp,
     269             :                                    const void *data, size_t n, off_t offset)
     270             : {
     271           0 :         errno = ENOSYS;
     272           0 :         return -1;
     273             : }
     274             : 
     275             : _PUBLIC_
     276           0 : struct tevent_req *vfs_not_implemented_pwrite_send(struct vfs_handle_struct *handle,
     277             :                                                    TALLOC_CTX *mem_ctx,
     278             :                                                    struct tevent_context *ev,
     279             :                                                    struct files_struct *fsp,
     280             :                                                    const void *data,
     281             :                                                    size_t n, off_t offset)
     282             : {
     283           0 :         return NULL;
     284             : }
     285             : 
     286             : _PUBLIC_
     287           0 : ssize_t vfs_not_implemented_pwrite_recv(struct tevent_req *req,
     288             :                                 struct vfs_aio_state *vfs_aio_state)
     289             : {
     290           0 :         vfs_aio_state->error = ENOSYS;
     291           0 :         return -1;
     292             : }
     293             : 
     294             : _PUBLIC_
     295           0 : off_t vfs_not_implemented_lseek(vfs_handle_struct *handle, files_struct *fsp,
     296             :                         off_t offset, int whence)
     297             : {
     298           0 :         errno = ENOSYS;
     299           0 :         return (off_t) - 1;
     300             : }
     301             : 
     302             : _PUBLIC_
     303           0 : ssize_t vfs_not_implemented_sendfile(vfs_handle_struct *handle, int tofd,
     304             :                                      files_struct *fromfsp, const DATA_BLOB *hdr,
     305             :                                      off_t offset, size_t n)
     306             : {
     307           0 :         errno = ENOSYS;
     308           0 :         return -1;
     309             : }
     310             : 
     311             : _PUBLIC_
     312           0 : ssize_t vfs_not_implemented_recvfile(vfs_handle_struct *handle, int fromfd,
     313             :                                      files_struct *tofsp, off_t offset, size_t n)
     314             : {
     315           0 :         errno = ENOSYS;
     316           0 :         return -1;
     317             : }
     318             : 
     319             : _PUBLIC_
     320           0 : int vfs_not_implemented_renameat(vfs_handle_struct *handle,
     321             :                                files_struct *srcfsp,
     322             :                                const struct smb_filename *smb_fname_src,
     323             :                                files_struct *dstfsp,
     324             :                                const struct smb_filename *smb_fname_dst)
     325             : {
     326           0 :         errno = ENOSYS;
     327           0 :         return -1;
     328             : }
     329             : 
     330             : _PUBLIC_
     331           0 : struct tevent_req *vfs_not_implemented_fsync_send(struct vfs_handle_struct *handle,
     332             :                                                   TALLOC_CTX *mem_ctx,
     333             :                                                   struct tevent_context *ev,
     334             :                                                   struct files_struct *fsp)
     335             : {
     336           0 :         return NULL;
     337             : }
     338             : 
     339             : _PUBLIC_
     340           0 : int vfs_not_implemented_fsync_recv(struct tevent_req *req,
     341             :                                    struct vfs_aio_state *vfs_aio_state)
     342             : {
     343           0 :         vfs_aio_state->error = ENOSYS;
     344           0 :         return -1;
     345             : }
     346             : 
     347             : _PUBLIC_
     348           0 : int vfs_not_implemented_stat(vfs_handle_struct *handle, struct smb_filename *smb_fname)
     349             : {
     350           0 :         errno = ENOSYS;
     351           0 :         return -1;
     352             : }
     353             : 
     354             : _PUBLIC_
     355           0 : int vfs_not_implemented_fstat(vfs_handle_struct *handle, files_struct *fsp,
     356             :                         SMB_STRUCT_STAT *sbuf)
     357             : {
     358           0 :         errno = ENOSYS;
     359           0 :         return -1;
     360             : }
     361             : 
     362             : _PUBLIC_
     363           0 : int vfs_not_implemented_lstat(vfs_handle_struct *handle,
     364             :                               struct smb_filename *smb_fname)
     365             : {
     366           0 :         errno = ENOSYS;
     367           0 :         return -1;
     368             : }
     369             : 
     370             : _PUBLIC_
     371           0 : int vfs_not_implemented_fstatat(
     372             :         struct vfs_handle_struct *handle,
     373             :         const struct files_struct *dirfsp,
     374             :         const struct smb_filename *smb_fname,
     375             :         SMB_STRUCT_STAT *sbuf,
     376             :         int flags)
     377             : {
     378           0 :         errno = ENOSYS;
     379           0 :         return -1;
     380             : }
     381             : 
     382             : _PUBLIC_
     383           0 : uint64_t vfs_not_implemented_get_alloc_size(struct vfs_handle_struct *handle,
     384             :                                             struct files_struct *fsp,
     385             :                                             const SMB_STRUCT_STAT *sbuf)
     386             : {
     387           0 :         errno = ENOSYS;
     388           0 :         return -1;
     389             : }
     390             : 
     391             : _PUBLIC_
     392           0 : int vfs_not_implemented_unlinkat(vfs_handle_struct *handle,
     393             :                         struct files_struct *dirfsp,
     394             :                         const struct smb_filename *smb_fname,
     395             :                         int flags)
     396             : {
     397           0 :         errno = ENOSYS;
     398           0 :         return -1;
     399             : }
     400             : 
     401             : _PUBLIC_
     402           0 : int vfs_not_implemented_fchmod(vfs_handle_struct *handle, files_struct *fsp,
     403             :                                mode_t mode)
     404             : {
     405           0 :         errno = ENOSYS;
     406           0 :         return -1;
     407             : }
     408             : 
     409             : _PUBLIC_
     410           0 : int vfs_not_implemented_fchown(vfs_handle_struct *handle, files_struct *fsp,
     411             :                                uid_t uid, gid_t gid)
     412             : {
     413           0 :         errno = ENOSYS;
     414           0 :         return -1;
     415             : }
     416             : 
     417             : _PUBLIC_
     418           0 : int vfs_not_implemented_lchown(vfs_handle_struct *handle,
     419             :                                const struct smb_filename *smb_fname,
     420             :                                uid_t uid,
     421             :                                gid_t gid)
     422             : {
     423           0 :         errno = ENOSYS;
     424           0 :         return -1;
     425             : }
     426             : 
     427             : _PUBLIC_
     428           0 : int vfs_not_implemented_chdir(vfs_handle_struct *handle,
     429             :                               const struct smb_filename *smb_fname)
     430             : {
     431           0 :         errno = ENOSYS;
     432           0 :         return -1;
     433             : }
     434             : 
     435             : _PUBLIC_
     436           0 : struct smb_filename *vfs_not_implemented_getwd(vfs_handle_struct *handle,
     437             :                                                TALLOC_CTX *ctx)
     438             : {
     439           0 :         errno = ENOSYS;
     440           0 :         return NULL;
     441             : }
     442             : 
     443             : _PUBLIC_
     444           0 : int vfs_not_implemented_fntimes(vfs_handle_struct *handle,
     445             :                                 files_struct *fsp,
     446             :                                 struct smb_file_time *ft)
     447             : {
     448           0 :         errno = ENOSYS;
     449           0 :         return -1;
     450             : }
     451             : 
     452             : _PUBLIC_
     453           0 : int vfs_not_implemented_ftruncate(vfs_handle_struct *handle, files_struct *fsp,
     454             :                                   off_t offset)
     455             : {
     456           0 :         errno = ENOSYS;
     457           0 :         return -1;
     458             : }
     459             : 
     460             : _PUBLIC_
     461           0 : int vfs_not_implemented_fallocate(vfs_handle_struct *handle, files_struct *fsp,
     462             :                                   uint32_t mode, off_t offset, off_t len)
     463             : {
     464           0 :         errno = ENOSYS;
     465           0 :         return -1;
     466             : }
     467             : 
     468             : _PUBLIC_
     469           0 : bool vfs_not_implemented_lock(vfs_handle_struct *handle, files_struct *fsp, int op,
     470             :                               off_t offset, off_t count, int type)
     471             : {
     472           0 :         errno = ENOSYS;
     473           0 :         return false;
     474             : }
     475             : 
     476             : _PUBLIC_
     477           0 : int vfs_not_implemented_filesystem_sharemode(struct vfs_handle_struct *handle,
     478             :                                              struct files_struct *fsp,
     479             :                                              uint32_t share_access,
     480             :                                              uint32_t access_mask)
     481             : {
     482           0 :         errno = ENOSYS;
     483           0 :         return -1;
     484             : }
     485             : 
     486             : _PUBLIC_
     487           0 : int vfs_not_implemented_fcntl(struct vfs_handle_struct *handle,
     488             :                               struct files_struct *fsp, int cmd,
     489             :                               va_list cmd_arg)
     490             : {
     491           0 :         errno = ENOSYS;
     492           0 :         return -1;
     493             : }
     494             : 
     495             : _PUBLIC_
     496           0 : int vfs_not_implemented_linux_setlease(struct vfs_handle_struct *handle,
     497             :                                        struct files_struct *fsp, int leasetype)
     498             : {
     499           0 :         errno = ENOSYS;
     500           0 :         return -1;
     501             : }
     502             : 
     503             : _PUBLIC_
     504           0 : bool vfs_not_implemented_getlock(vfs_handle_struct *handle, files_struct *fsp,
     505             :                                  off_t *poffset, off_t *pcount, int *ptype,
     506             :                                  pid_t *ppid)
     507             : {
     508           0 :         errno = ENOSYS;
     509           0 :         return false;
     510             : }
     511             : 
     512             : _PUBLIC_
     513           0 : int vfs_not_implemented_symlinkat(vfs_handle_struct *handle,
     514             :                                 const struct smb_filename *link_contents,
     515             :                                 struct files_struct *dirfsp,
     516             :                                 const struct smb_filename *new_smb_fname)
     517             : {
     518           0 :         errno = ENOSYS;
     519           0 :         return -1;
     520             : }
     521             : 
     522             : _PUBLIC_
     523           0 : int vfs_not_implemented_vfs_readlinkat(vfs_handle_struct *handle,
     524             :                         const struct files_struct *dirfsp,
     525             :                         const struct smb_filename *smb_fname,
     526             :                         char *buf,
     527             :                         size_t bufsiz)
     528             : {
     529           0 :         errno = ENOSYS;
     530           0 :         return -1;
     531             : }
     532             : 
     533             : _PUBLIC_
     534           0 : int vfs_not_implemented_linkat(vfs_handle_struct *handle,
     535             :                         files_struct *srcfsp,
     536             :                         const struct smb_filename *old_smb_fname,
     537             :                         files_struct *dstfsp,
     538             :                         const struct smb_filename *new_smb_fname,
     539             :                         int flags)
     540             : {
     541           0 :         errno = ENOSYS;
     542           0 :         return -1;
     543             : }
     544             : 
     545             : _PUBLIC_
     546           0 : int vfs_not_implemented_mknodat(vfs_handle_struct *handle,
     547             :                         files_struct *dirfsp,
     548             :                         const struct smb_filename *smb_fname,
     549             :                         mode_t mode,
     550             :                         SMB_DEV_T dev)
     551             : {
     552           0 :         errno = ENOSYS;
     553           0 :         return -1;
     554             : }
     555             : 
     556             : _PUBLIC_
     557           0 : struct smb_filename *vfs_not_implemented_realpath(vfs_handle_struct *handle,
     558             :                                                   TALLOC_CTX *ctx,
     559             :                                                   const struct smb_filename *smb_fname)
     560             : {
     561           0 :         errno = ENOSYS;
     562           0 :         return NULL;
     563             : }
     564             : 
     565             : _PUBLIC_
     566           0 : int vfs_not_implemented_fchflags(vfs_handle_struct *handle,
     567             :                                 struct files_struct *fsp,
     568             :                                 uint flags)
     569             : {
     570           0 :         errno = ENOSYS;
     571           0 :         return -1;
     572             : }
     573             : 
     574             : _PUBLIC_
     575           0 : struct file_id vfs_not_implemented_file_id_create(vfs_handle_struct *handle,
     576             :                                                   const SMB_STRUCT_STAT *sbuf)
     577             : {
     578           0 :         struct file_id id;
     579           0 :         ZERO_STRUCT(id);
     580           0 :         errno = ENOSYS;
     581           0 :         return id;
     582             : }
     583             : 
     584             : _PUBLIC_
     585           0 : uint64_t vfs_not_implemented_fs_file_id(vfs_handle_struct *handle,
     586             :                                         const SMB_STRUCT_STAT *sbuf)
     587             : {
     588           0 :         errno = ENOSYS;
     589           0 :         return 0;
     590             : }
     591             : 
     592             : struct vfs_not_implemented_offload_read_state {
     593             :         bool dummy;
     594             : };
     595             : 
     596             : _PUBLIC_
     597           0 : struct tevent_req *vfs_not_implemented_offload_read_send(
     598             :                         TALLOC_CTX *mem_ctx,
     599             :                         struct tevent_context *ev,
     600             :                         struct vfs_handle_struct *handle,
     601             :                         struct files_struct *fsp,
     602             :                         uint32_t fsctl,
     603             :                         uint32_t ttl,
     604             :                         off_t offset,
     605             :                         size_t to_copy)
     606             : {
     607           0 :         struct tevent_req *req = NULL;
     608           0 :         struct vfs_not_implemented_offload_read_state *state = NULL;
     609             : 
     610           0 :         req = tevent_req_create(mem_ctx, &state,
     611             :                                 struct vfs_not_implemented_offload_read_state);
     612           0 :         if (req == NULL) {
     613           0 :                 return NULL;
     614             :         }
     615             : 
     616           0 :         tevent_req_nterror(req, NT_STATUS_NOT_IMPLEMENTED);
     617           0 :         return tevent_req_post(req, ev);
     618             : }
     619             : 
     620             : _PUBLIC_
     621           0 : NTSTATUS vfs_not_implemented_offload_read_recv(struct tevent_req *req,
     622             :                                        struct vfs_handle_struct *handle,
     623             :                                        TALLOC_CTX *mem_ctx,
     624             :                                        uint32_t *flags,
     625             :                                        uint64_t *xferlen,
     626             :                                        DATA_BLOB *_token_blob)
     627             : {
     628           0 :         NTSTATUS status;
     629             : 
     630           0 :         if (tevent_req_is_nterror(req, &status)) {
     631           0 :                 tevent_req_received(req);
     632           0 :                 return status;
     633             :         }
     634             : 
     635           0 :         tevent_req_received(req);
     636           0 :         return NT_STATUS_OK;
     637             : }
     638             : 
     639             : struct vfs_not_implemented_offload_write_state {
     640             :         uint64_t unused;
     641             : };
     642             : 
     643             : _PUBLIC_
     644           0 : struct tevent_req *vfs_not_implemented_offload_write_send(
     645             :                         struct vfs_handle_struct *handle,
     646             :                         TALLOC_CTX *mem_ctx,
     647             :                         struct tevent_context *ev,
     648             :                         uint32_t fsctl,
     649             :                         DATA_BLOB *token,
     650             :                         off_t transfer_offset,
     651             :                         struct files_struct *dest_fsp,
     652             :                         off_t dest_off,
     653             :                         off_t num)
     654             : {
     655           0 :         struct tevent_req *req;
     656           0 :         struct vfs_not_implemented_offload_write_state *state;
     657             : 
     658           0 :         req = tevent_req_create(mem_ctx, &state,
     659             :                                 struct vfs_not_implemented_offload_write_state);
     660           0 :         if (req == NULL) {
     661           0 :                 return NULL;
     662             :         }
     663             : 
     664           0 :         tevent_req_nterror(req, NT_STATUS_NOT_IMPLEMENTED);
     665           0 :         return tevent_req_post(req, ev);
     666             : }
     667             : 
     668             : _PUBLIC_
     669           0 : NTSTATUS vfs_not_implemented_offload_write_recv(struct vfs_handle_struct *handle,
     670             :                                                 struct tevent_req *req,
     671             :                                                 off_t *copied)
     672             : {
     673           0 :         NTSTATUS status;
     674             : 
     675           0 :         if (tevent_req_is_nterror(req, &status)) {
     676           0 :                 tevent_req_received(req);
     677           0 :                 return status;
     678             :         }
     679             : 
     680           0 :         tevent_req_received(req);
     681           0 :         return NT_STATUS_OK;
     682             : }
     683             : 
     684             : _PUBLIC_
     685           0 : NTSTATUS vfs_not_implemented_fget_compression(struct vfs_handle_struct *handle,
     686             :                                              TALLOC_CTX *mem_ctx,
     687             :                                              struct files_struct *fsp,
     688             :                                              uint16_t *_compression_fmt)
     689             : {
     690           0 :         return NT_STATUS_INVALID_DEVICE_REQUEST;
     691             : }
     692             : 
     693             : _PUBLIC_
     694           0 : NTSTATUS vfs_not_implemented_set_compression(struct vfs_handle_struct *handle,
     695             :                                              TALLOC_CTX *mem_ctx,
     696             :                                              struct files_struct *fsp,
     697             :                                              uint16_t compression_fmt)
     698             : {
     699           0 :         return NT_STATUS_INVALID_DEVICE_REQUEST;
     700             : }
     701             : 
     702             : _PUBLIC_
     703           0 : NTSTATUS vfs_not_implemented_fstreaminfo(struct vfs_handle_struct *handle,
     704             :                                         struct files_struct *fsp,
     705             :                                         TALLOC_CTX *mem_ctx,
     706             :                                         unsigned int *num_streams,
     707             :                                         struct stream_struct **streams)
     708             : {
     709           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     710             : }
     711             : 
     712             : _PUBLIC_
     713           0 : NTSTATUS vfs_not_implemented_get_real_filename_at(
     714             :         struct vfs_handle_struct *handle,
     715             :         struct files_struct *dirfsp,
     716             :         const char *name,
     717             :         TALLOC_CTX *mem_ctx,
     718             :         char **found_name)
     719             : {
     720           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     721             : }
     722             : 
     723             : _PUBLIC_
     724           0 : const char *vfs_not_implemented_connectpath(
     725             :         struct vfs_handle_struct *handle,
     726             :         const struct files_struct *dirfsp,
     727             :         const struct smb_filename *smb_fname)
     728             : {
     729           0 :         errno = ENOSYS;
     730           0 :         return NULL;
     731             : }
     732             : 
     733             : _PUBLIC_
     734           0 : NTSTATUS vfs_not_implemented_brl_lock_windows(struct vfs_handle_struct *handle,
     735             :                                               struct byte_range_lock *br_lck,
     736             :                                               struct lock_struct *plock)
     737             : {
     738           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     739             : }
     740             : 
     741             : _PUBLIC_
     742           0 : bool vfs_not_implemented_brl_unlock_windows(struct vfs_handle_struct *handle,
     743             :                                             struct byte_range_lock *br_lck,
     744             :                                             const struct lock_struct *plock)
     745             : {
     746           0 :         errno = ENOSYS;
     747           0 :         return false;
     748             : }
     749             : 
     750             : _PUBLIC_
     751           0 : bool vfs_not_implemented_strict_lock_check(struct vfs_handle_struct *handle,
     752             :                                            struct files_struct *fsp,
     753             :                                            struct lock_struct *plock)
     754             : {
     755           0 :         errno = ENOSYS;
     756           0 :         return false;
     757             : }
     758             : 
     759             : _PUBLIC_
     760           0 : NTSTATUS vfs_not_implemented_translate_name(struct vfs_handle_struct *handle,
     761             :                                             const char *mapped_name,
     762             :                                             enum vfs_translate_direction direction,
     763             :                                             TALLOC_CTX *mem_ctx, char **pmapped_name)
     764             : {
     765           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     766             : }
     767             : 
     768             : _PUBLIC_
     769           0 : NTSTATUS vfs_not_implemented_parent_pathname(struct vfs_handle_struct *handle,
     770             :                                                     TALLOC_CTX *mem_ctx,
     771             :                                                     const struct smb_filename *smb_fname_in,
     772             :                                                     struct smb_filename **parent_dir_out,
     773             :                                                     struct smb_filename **atname_out)
     774             : {
     775           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     776             : }
     777             : 
     778             : _PUBLIC_
     779           0 : NTSTATUS vfs_not_implemented_fsctl(struct vfs_handle_struct *handle,
     780             :                                    struct files_struct *fsp,
     781             :                                    TALLOC_CTX *ctx,
     782             :                                    uint32_t function,
     783             :                                    uint16_t req_flags,  /* Needed for UNICODE ... */
     784             :                                    const uint8_t *_in_data,
     785             :                                    uint32_t in_len,
     786             :                                    uint8_t **_out_data,
     787             :                                    uint32_t max_out_len, uint32_t *out_len)
     788             : {
     789           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     790             : }
     791             : 
     792             : _PUBLIC_
     793           0 : NTSTATUS vfs_not_implemented_freaddir_attr(struct vfs_handle_struct *handle,
     794             :                                         struct files_struct *fsp,
     795             :                                         TALLOC_CTX *mem_ctx,
     796             :                                         struct readdir_attr_data **pattr_data)
     797             : {
     798           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     799             : }
     800             : 
     801             : struct vfs_not_implemented_get_dos_attributes_state {
     802             :         struct vfs_aio_state aio_state;
     803             :         uint32_t dosmode;
     804             : };
     805             : 
     806             : _PUBLIC_
     807           0 : struct tevent_req *vfs_not_implemented_get_dos_attributes_send(
     808             :                         TALLOC_CTX *mem_ctx,
     809             :                         struct tevent_context *ev,
     810             :                         struct vfs_handle_struct *handle,
     811             :                         files_struct *dir_fsp,
     812             :                         struct smb_filename *smb_fname)
     813             : {
     814           0 :         struct tevent_req *req = NULL;
     815           0 :         struct vfs_not_implemented_get_dos_attributes_state *state = NULL;
     816             : 
     817           0 :         req = tevent_req_create(mem_ctx, &state,
     818             :                         struct vfs_not_implemented_get_dos_attributes_state);
     819           0 :         if (req == NULL) {
     820           0 :                 return NULL;
     821             :         }
     822             : 
     823           0 :         tevent_req_nterror(req, NT_STATUS_NOT_IMPLEMENTED);
     824           0 :         return tevent_req_post(req, ev);
     825             : }
     826             : 
     827             : _PUBLIC_
     828           0 : NTSTATUS vfs_not_implemented_get_dos_attributes_recv(
     829             :                         struct tevent_req *req,
     830             :                         struct vfs_aio_state *aio_state,
     831             :                         uint32_t *dosmode)
     832             : {
     833           0 :         struct vfs_not_implemented_get_dos_attributes_state *state =
     834           0 :                 tevent_req_data(req,
     835             :                 struct vfs_not_implemented_get_dos_attributes_state);
     836           0 :         NTSTATUS status;
     837             : 
     838           0 :         if (tevent_req_is_nterror(req, &status)) {
     839           0 :                 tevent_req_received(req);
     840           0 :                 return status;
     841             :         }
     842             : 
     843           0 :         *aio_state = state->aio_state;
     844           0 :         *dosmode = state->dosmode;
     845           0 :         tevent_req_received(req);
     846           0 :         return NT_STATUS_OK;
     847             : }
     848             : 
     849             : _PUBLIC_
     850           0 : NTSTATUS vfs_not_implemented_fget_dos_attributes(struct vfs_handle_struct *handle,
     851             :                                                  struct files_struct *fsp,
     852             :                                                  uint32_t *dosmode)
     853             : {
     854           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     855             : }
     856             : 
     857             : _PUBLIC_
     858           0 : NTSTATUS vfs_not_implemented_fset_dos_attributes(struct vfs_handle_struct *handle,
     859             :                                                  struct files_struct *fsp,
     860             :                                                  uint32_t dosmode)
     861             : {
     862           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     863             : }
     864             : 
     865             : _PUBLIC_
     866           0 : NTSTATUS vfs_not_implemented_fget_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
     867             :                                          uint32_t security_info,
     868             :                                          TALLOC_CTX *mem_ctx,
     869             :                                          struct security_descriptor **ppdesc)
     870             : {
     871           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     872             : }
     873             : 
     874             : _PUBLIC_
     875           0 : NTSTATUS vfs_not_implemented_fset_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
     876             :                                          uint32_t security_info_sent,
     877             :                                          const struct security_descriptor *psd)
     878             : {
     879           0 :         return NT_STATUS_NOT_IMPLEMENTED;
     880             : }
     881             : 
     882             : _PUBLIC_
     883           0 : SMB_ACL_T vfs_not_implemented_sys_acl_get_fd(vfs_handle_struct *handle,
     884             :                                              files_struct *fsp,
     885             :                                              SMB_ACL_TYPE_T type,
     886             :                                              TALLOC_CTX *mem_ctx)
     887             : {
     888           0 :         errno = ENOSYS;
     889           0 :         return (SMB_ACL_T) NULL;
     890             : }
     891             : 
     892             : _PUBLIC_
     893           0 : int vfs_not_implemented_sys_acl_blob_get_fd(vfs_handle_struct *handle,
     894             :                                 files_struct *fsp, TALLOC_CTX *mem_ctx,
     895             :                                 char **blob_description, DATA_BLOB *blob)
     896             : {
     897           0 :         errno = ENOSYS;
     898           0 :         return -1;
     899             : }
     900             : 
     901             : _PUBLIC_
     902           0 : int vfs_not_implemented_sys_acl_set_fd(vfs_handle_struct *handle,
     903             :                                        struct files_struct *fsp,
     904             :                                        SMB_ACL_TYPE_T type,
     905             :                                        SMB_ACL_T theacl)
     906             : {
     907           0 :         errno = ENOSYS;
     908           0 :         return -1;
     909             : }
     910             : 
     911             : _PUBLIC_
     912           0 : int vfs_not_implemented_sys_acl_delete_def_fd(vfs_handle_struct *handle,
     913             :                                         struct files_struct *fsp)
     914             : {
     915           0 :         errno = ENOSYS;
     916           0 :         return -1;
     917             : }
     918             : 
     919             : struct vfs_not_implemented_getxattrat_state {
     920             :         struct vfs_aio_state aio_state;
     921             :         ssize_t xattr_size;
     922             :         uint8_t *xattr_value;
     923             : };
     924             : 
     925             : _PUBLIC_
     926           0 : struct tevent_req *vfs_not_implemented_getxattrat_send(
     927             :                         TALLOC_CTX *mem_ctx,
     928             :                         struct tevent_context *ev,
     929             :                         struct vfs_handle_struct *handle,
     930             :                         files_struct *dir_fsp,
     931             :                         const struct smb_filename *smb_fname,
     932             :                         const char *xattr_name,
     933             :                         size_t alloc_hint)
     934             : {
     935           0 :         struct tevent_req *req = NULL;
     936           0 :         struct vfs_not_implemented_getxattrat_state *state = NULL;
     937             : 
     938           0 :         req = tevent_req_create(mem_ctx, &state,
     939             :                                 struct vfs_not_implemented_getxattrat_state);
     940           0 :         if (req == NULL) {
     941           0 :                 return NULL;
     942             :         }
     943             : 
     944           0 :         tevent_req_error(req, ENOSYS);
     945           0 :         return tevent_req_post(req, ev);
     946             : }
     947             : 
     948             : _PUBLIC_
     949           0 : ssize_t vfs_not_implemented_getxattrat_recv(struct tevent_req *req,
     950             :                                     struct vfs_aio_state *aio_state,
     951             :                                     TALLOC_CTX *mem_ctx,
     952             :                                     uint8_t **xattr_value)
     953             : {
     954           0 :         struct vfs_not_implemented_getxattrat_state *state = tevent_req_data(
     955             :                 req, struct vfs_not_implemented_getxattrat_state);
     956           0 :         ssize_t xattr_size;
     957             : 
     958           0 :         if (tevent_req_is_unix_error(req, &aio_state->error)) {
     959           0 :                 tevent_req_received(req);
     960           0 :                 return -1;
     961             :         }
     962             : 
     963           0 :         *aio_state = state->aio_state;
     964           0 :         xattr_size = state->xattr_size;
     965           0 :         if (xattr_value != NULL) {
     966           0 :                 *xattr_value = talloc_move(mem_ctx, &state->xattr_value);
     967             :         }
     968             : 
     969           0 :         tevent_req_received(req);
     970           0 :         return xattr_size;
     971             : }
     972             : 
     973             : _PUBLIC_
     974           0 : ssize_t vfs_not_implemented_fgetxattr(vfs_handle_struct *handle,
     975             :                               struct files_struct *fsp, const char *name,
     976             :                               void *value, size_t size)
     977             : {
     978           0 :         errno = ENOSYS;
     979           0 :         return -1;
     980             : }
     981             : 
     982             : _PUBLIC_
     983           0 : ssize_t vfs_not_implemented_flistxattr(vfs_handle_struct *handle,
     984             :                                        struct files_struct *fsp, char *list,
     985             :                                        size_t size)
     986             : {
     987           0 :         errno = ENOSYS;
     988           0 :         return -1;
     989             : }
     990             : 
     991             : _PUBLIC_
     992           0 : int vfs_not_implemented_fremovexattr(vfs_handle_struct *handle,
     993             :                                      struct files_struct *fsp, const char *name)
     994             : {
     995           0 :         errno = ENOSYS;
     996           0 :         return -1;
     997             : }
     998             : 
     999             : _PUBLIC_
    1000           0 : int vfs_not_implemented_fsetxattr(vfs_handle_struct *handle, struct files_struct *fsp,
    1001             :                                   const char *name, const void *value, size_t size,
    1002             :                                   int flags)
    1003             : {
    1004           0 :         errno = ENOSYS;
    1005           0 :         return -1;
    1006             : }
    1007             : 
    1008             : _PUBLIC_
    1009           0 : bool vfs_not_implemented_aio_force(struct vfs_handle_struct *handle,
    1010             :                                    struct files_struct *fsp)
    1011             : {
    1012           0 :         errno = ENOSYS;
    1013           0 :         return false;
    1014             : }
    1015             : 
    1016             : _PUBLIC_
    1017           0 : NTSTATUS vfs_not_implemented_audit_file(struct vfs_handle_struct *handle,
    1018             :                                         struct smb_filename *file,
    1019             :                                         struct security_acl *sacl,
    1020             :                                         uint32_t access_requested,
    1021             :                                         uint32_t access_denied)
    1022             : {
    1023           0 :         return NT_STATUS_NOT_IMPLEMENTED;
    1024             : }
    1025             : 
    1026             : _PUBLIC_
    1027           0 : NTSTATUS vfs_not_implemented_durable_cookie(struct vfs_handle_struct *handle,
    1028             :                                             struct files_struct *fsp,
    1029             :                                             TALLOC_CTX *mem_ctx,
    1030             :                                             DATA_BLOB *cookie)
    1031             : {
    1032           0 :         return NT_STATUS_NOT_IMPLEMENTED;
    1033             : }
    1034             : 
    1035             : _PUBLIC_
    1036           0 : NTSTATUS vfs_not_implemented_durable_disconnect(struct vfs_handle_struct *handle,
    1037             :                                                 struct files_struct *fsp,
    1038             :                                                 const DATA_BLOB old_cookie,
    1039             :                                                 TALLOC_CTX *mem_ctx,
    1040             :                                                 DATA_BLOB *new_cookie)
    1041             : {
    1042           0 :         return NT_STATUS_NOT_IMPLEMENTED;
    1043             : }
    1044             : 
    1045             : _PUBLIC_
    1046           0 : NTSTATUS vfs_not_implemented_durable_reconnect(struct vfs_handle_struct *handle,
    1047             :                                                struct smb_request *smb1req,
    1048             :                                                struct smbXsrv_open *op,
    1049             :                                                const DATA_BLOB old_cookie,
    1050             :                                                TALLOC_CTX *mem_ctx,
    1051             :                                                struct files_struct **fsp,
    1052             :                                                DATA_BLOB *new_cookie)
    1053             : {
    1054           0 :         return NT_STATUS_NOT_IMPLEMENTED;
    1055             : }
    1056             : 
    1057             : /* VFS operations structure */
    1058             : 
    1059             : static struct vfs_fn_pointers vfs_not_implemented_fns = {
    1060             :         /* Disk operations */
    1061             : 
    1062             :         .connect_fn = vfs_not_implemented_connect,
    1063             :         .disconnect_fn = vfs_not_implemented_disconnect,
    1064             :         .disk_free_fn = vfs_not_implemented_disk_free,
    1065             :         .get_quota_fn = vfs_not_implemented_get_quota,
    1066             :         .set_quota_fn = vfs_not_implemented_set_quota,
    1067             :         .get_shadow_copy_data_fn = vfs_not_implemented_get_shadow_copy_data,
    1068             :         .statvfs_fn = vfs_not_implemented_statvfs,
    1069             :         .fs_capabilities_fn = vfs_not_implemented_fs_capabilities,
    1070             :         .get_dfs_referrals_fn = vfs_not_implemented_get_dfs_referrals,
    1071             :         .create_dfs_pathat_fn = vfs_not_implemented_create_dfs_pathat,
    1072             :         .read_dfs_pathat_fn = vfs_not_implemented_read_dfs_pathat,
    1073             :         .snap_check_path_fn = vfs_not_implemented_snap_check_path,
    1074             :         .snap_create_fn = vfs_not_implemented_snap_create,
    1075             :         .snap_delete_fn = vfs_not_implemented_snap_delete,
    1076             : 
    1077             :         /* Directory operations */
    1078             : 
    1079             :         .fdopendir_fn = vfs_not_implemented_fdopendir,
    1080             :         .readdir_fn = vfs_not_implemented_readdir,
    1081             :         .rewind_dir_fn = vfs_not_implemented_rewind_dir,
    1082             :         .mkdirat_fn = vfs_not_implemented_mkdirat,
    1083             :         .closedir_fn = vfs_not_implemented_closedir,
    1084             : 
    1085             :         /* File operations */
    1086             : 
    1087             :         .openat_fn = vfs_not_implemented_openat,
    1088             :         .create_file_fn = vfs_not_implemented_create_file,
    1089             :         .close_fn = vfs_not_implemented_close_fn,
    1090             :         .pread_fn = vfs_not_implemented_pread,
    1091             :         .pread_send_fn = vfs_not_implemented_pread_send,
    1092             :         .pread_recv_fn = vfs_not_implemented_pread_recv,
    1093             :         .pwrite_fn = vfs_not_implemented_pwrite,
    1094             :         .pwrite_send_fn = vfs_not_implemented_pwrite_send,
    1095             :         .pwrite_recv_fn = vfs_not_implemented_pwrite_recv,
    1096             :         .lseek_fn = vfs_not_implemented_lseek,
    1097             :         .sendfile_fn = vfs_not_implemented_sendfile,
    1098             :         .recvfile_fn = vfs_not_implemented_recvfile,
    1099             :         .renameat_fn = vfs_not_implemented_renameat,
    1100             :         .fsync_send_fn = vfs_not_implemented_fsync_send,
    1101             :         .fsync_recv_fn = vfs_not_implemented_fsync_recv,
    1102             :         .stat_fn = vfs_not_implemented_stat,
    1103             :         .fstat_fn = vfs_not_implemented_fstat,
    1104             :         .lstat_fn = vfs_not_implemented_lstat,
    1105             :         .fstatat_fn = vfs_not_implemented_fstatat,
    1106             :         .get_alloc_size_fn = vfs_not_implemented_get_alloc_size,
    1107             :         .unlinkat_fn = vfs_not_implemented_unlinkat,
    1108             :         .fchmod_fn = vfs_not_implemented_fchmod,
    1109             :         .fchown_fn = vfs_not_implemented_fchown,
    1110             :         .lchown_fn = vfs_not_implemented_lchown,
    1111             :         .chdir_fn = vfs_not_implemented_chdir,
    1112             :         .getwd_fn = vfs_not_implemented_getwd,
    1113             :         .fntimes_fn = vfs_not_implemented_fntimes,
    1114             :         .ftruncate_fn = vfs_not_implemented_ftruncate,
    1115             :         .fallocate_fn = vfs_not_implemented_fallocate,
    1116             :         .lock_fn = vfs_not_implemented_lock,
    1117             :         .filesystem_sharemode_fn = vfs_not_implemented_filesystem_sharemode,
    1118             :         .fcntl_fn = vfs_not_implemented_fcntl,
    1119             :         .linux_setlease_fn = vfs_not_implemented_linux_setlease,
    1120             :         .getlock_fn = vfs_not_implemented_getlock,
    1121             :         .symlinkat_fn = vfs_not_implemented_symlinkat,
    1122             :         .readlinkat_fn = vfs_not_implemented_vfs_readlinkat,
    1123             :         .linkat_fn = vfs_not_implemented_linkat,
    1124             :         .mknodat_fn = vfs_not_implemented_mknodat,
    1125             :         .realpath_fn = vfs_not_implemented_realpath,
    1126             :         .fchflags_fn = vfs_not_implemented_fchflags,
    1127             :         .file_id_create_fn = vfs_not_implemented_file_id_create,
    1128             :         .fs_file_id_fn = vfs_not_implemented_fs_file_id,
    1129             :         .offload_read_send_fn = vfs_not_implemented_offload_read_send,
    1130             :         .offload_read_recv_fn = vfs_not_implemented_offload_read_recv,
    1131             :         .offload_write_send_fn = vfs_not_implemented_offload_write_send,
    1132             :         .offload_write_recv_fn = vfs_not_implemented_offload_write_recv,
    1133             :         .fget_compression_fn = vfs_not_implemented_fget_compression,
    1134             :         .set_compression_fn = vfs_not_implemented_set_compression,
    1135             : 
    1136             :         .fstreaminfo_fn = vfs_not_implemented_fstreaminfo,
    1137             :         .get_real_filename_at_fn = vfs_not_implemented_get_real_filename_at,
    1138             :         .connectpath_fn = vfs_not_implemented_connectpath,
    1139             :         .brl_lock_windows_fn = vfs_not_implemented_brl_lock_windows,
    1140             :         .brl_unlock_windows_fn = vfs_not_implemented_brl_unlock_windows,
    1141             :         .strict_lock_check_fn = vfs_not_implemented_strict_lock_check,
    1142             :         .translate_name_fn = vfs_not_implemented_translate_name,
    1143             :         .parent_pathname_fn = vfs_not_implemented_parent_pathname,
    1144             :         .fsctl_fn = vfs_not_implemented_fsctl,
    1145             :         .freaddir_attr_fn = vfs_not_implemented_freaddir_attr,
    1146             :         .audit_file_fn = vfs_not_implemented_audit_file,
    1147             : 
    1148             :         /* DOS attributes. */
    1149             :         .get_dos_attributes_send_fn = vfs_not_implemented_get_dos_attributes_send,
    1150             :         .get_dos_attributes_recv_fn = vfs_not_implemented_get_dos_attributes_recv,
    1151             :         .fget_dos_attributes_fn = vfs_not_implemented_fget_dos_attributes,
    1152             :         .fset_dos_attributes_fn = vfs_not_implemented_fset_dos_attributes,
    1153             : 
    1154             :         /* NT ACL operations. */
    1155             : 
    1156             :         .fget_nt_acl_fn = vfs_not_implemented_fget_nt_acl,
    1157             :         .fset_nt_acl_fn = vfs_not_implemented_fset_nt_acl,
    1158             : 
    1159             :         /* POSIX ACL operations. */
    1160             : 
    1161             :         .sys_acl_get_fd_fn = vfs_not_implemented_sys_acl_get_fd,
    1162             :         .sys_acl_blob_get_fd_fn = vfs_not_implemented_sys_acl_blob_get_fd,
    1163             :         .sys_acl_set_fd_fn = vfs_not_implemented_sys_acl_set_fd,
    1164             :         .sys_acl_delete_def_fd_fn = vfs_not_implemented_sys_acl_delete_def_fd,
    1165             : 
    1166             :         /* EA operations. */
    1167             :         .getxattrat_send_fn = vfs_not_implemented_getxattrat_send,
    1168             :         .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv,
    1169             :         .fgetxattr_fn = vfs_not_implemented_fgetxattr,
    1170             :         .flistxattr_fn = vfs_not_implemented_flistxattr,
    1171             :         .fremovexattr_fn = vfs_not_implemented_fremovexattr,
    1172             :         .fsetxattr_fn = vfs_not_implemented_fsetxattr,
    1173             : 
    1174             :         /* aio operations */
    1175             :         .aio_force_fn = vfs_not_implemented_aio_force,
    1176             : 
    1177             :         /* durable handle operations */
    1178             :         .durable_cookie_fn = vfs_not_implemented_durable_cookie,
    1179             :         .durable_disconnect_fn = vfs_not_implemented_durable_disconnect,
    1180             :         .durable_reconnect_fn = vfs_not_implemented_durable_reconnect,
    1181             : };
    1182             : 
    1183             : static_decl_vfs;
    1184       28912 : NTSTATUS vfs_not_implemented_init(TALLOC_CTX *ctx)
    1185             : {
    1186             :         /*
    1187             :          * smb_vfs_assert_all_fns() makes sure every
    1188             :          * call is implemented.
    1189             :          */
    1190       28912 :         smb_vfs_assert_all_fns(&vfs_not_implemented_fns, "vfs_not_implemented");
    1191       28912 :         return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "vfs_not_implemented",
    1192             :                                 &vfs_not_implemented_fns);
    1193             : }

Generated by: LCOV version 1.14