Make [f]get_nt_acl return NTSTATUS
[obnox/samba-ctdb.git] / source / modules / vfs_default.c
index ca27cf0ac3af4d12567c76a065616c8741fc06fc..cce5430493ebae97c729fa0c33057d168508c03e 100644 (file)
@@ -40,7 +40,7 @@ static void vfswrap_disconnect(vfs_handle_struct *handle)
 
 /* Disk operations */
 
-static SMB_BIG_UINT vfswrap_disk_free(vfs_handle_struct *handle,  const char *path, BOOL small_query, SMB_BIG_UINT *bsize,
+static SMB_BIG_UINT vfswrap_disk_free(vfs_handle_struct *handle,  const char *path, bool small_query, SMB_BIG_UINT *bsize,
                               SMB_BIG_UINT *dfree, SMB_BIG_UINT *dsize)
 {
        SMB_BIG_UINT result;
@@ -79,7 +79,7 @@ static int vfswrap_set_quota(struct vfs_handle_struct *handle,  enum SMB_QUOTA_T
 #endif
 }
 
-static int vfswrap_get_shadow_copy_data(struct vfs_handle_struct *handle, struct files_struct *fsp, SHADOW_COPY_DATA *shadow_copy_data, BOOL labels)
+static int vfswrap_get_shadow_copy_data(struct vfs_handle_struct *handle, struct files_struct *fsp, SHADOW_COPY_DATA *shadow_copy_data, bool labels)
 {
        errno = ENOSYS;
        return -1;  /* Not implemented. */
@@ -138,7 +138,7 @@ static void vfswrap_rewinddir(vfs_handle_struct *handle,  SMB_STRUCT_DIR *dirp)
 static int vfswrap_mkdir(vfs_handle_struct *handle,  const char *path, mode_t mode)
 {
        int result;
-       BOOL has_dacl = False;
+       bool has_dacl = False;
 
        START_PROFILE(syscall_mkdir);
 
@@ -348,6 +348,21 @@ static ssize_t vfswrap_sendfile(vfs_handle_struct *handle, int tofd, files_struc
        return result;
 }
 
+static ssize_t vfswrap_recvfile(vfs_handle_struct *handle,
+                       int fromfd,
+                       files_struct *fsp,
+                       int tofd,
+                       SMB_OFF_T offset,
+                       size_t n)
+{
+       ssize_t result;
+
+       START_PROFILE_BYTES(syscall_recvfile, n);
+       result = sys_recvfile(fromfd, tofd, offset, n);
+       END_PROFILE(syscall_recvfile);
+       return result;
+}
+
 /*********************************************************
  For rename across filesystems Patch from Warren Birnbaum
  <warrenb@hpcvscdp.cv.hp.com>
@@ -786,9 +801,9 @@ static int vfswrap_ftruncate(vfs_handle_struct *handle, files_struct *fsp, int f
        return result;
 }
 
-static BOOL vfswrap_lock(vfs_handle_struct *handle, files_struct *fsp, int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type)
+static bool vfswrap_lock(vfs_handle_struct *handle, files_struct *fsp, int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type)
 {
-       BOOL result;
+       bool result;
 
        START_PROFILE(syscall_fcntl_lock);
        result =  fcntl_lock(fd, op, offset, count, type);
@@ -805,9 +820,9 @@ static int vfswrap_kernel_flock(vfs_handle_struct *handle, files_struct *fsp, in
        return 0;
 }
 
-static BOOL vfswrap_getlock(vfs_handle_struct *handle, files_struct *fsp, int fd, SMB_OFF_T *poffset, SMB_OFF_T *pcount, int *ptype, pid_t *ppid)
+static bool vfswrap_getlock(vfs_handle_struct *handle, files_struct *fsp, int fd, SMB_OFF_T *poffset, SMB_OFF_T *pcount, int *ptype, pid_t *ppid)
 {
-       BOOL result;
+       bool result;
 
        START_PROFILE(syscall_fcntl_getlock);
        result =  fcntl_getlock(fd, poffset, pcount, ptype, ppid);
@@ -928,9 +943,11 @@ static struct file_id vfswrap_file_id_create(struct vfs_handle_struct *handle, S
        return file_id_create_dev(dev, inode);
 }
 
-static size_t vfswrap_fget_nt_acl(vfs_handle_struct *handle, files_struct *fsp, int fd, uint32 security_info, SEC_DESC **ppdesc)
+static NTSTATUS vfswrap_fget_nt_acl(vfs_handle_struct *handle,
+                                   files_struct *fsp, int fd,
+                                   uint32 security_info, SEC_DESC **ppdesc)
 {
-       size_t result;
+       NTSTATUS result;
 
        START_PROFILE(fget_nt_acl);
        result = get_nt_acl(fsp, security_info, ppdesc);
@@ -938,9 +955,11 @@ static size_t vfswrap_fget_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
        return result;
 }
 
-static size_t vfswrap_get_nt_acl(vfs_handle_struct *handle, files_struct *fsp, const char *name, uint32 security_info, SEC_DESC **ppdesc)
+static NTSTATUS vfswrap_get_nt_acl(vfs_handle_struct *handle,
+                                  files_struct *fsp, const char *name,
+                                  uint32 security_info, SEC_DESC **ppdesc)
 {
-       size_t result;
+       NTSTATUS result;
 
        START_PROFILE(get_nt_acl);
        result = get_nt_acl(fsp, security_info, ppdesc);
@@ -1263,6 +1282,8 @@ static vfs_op_tuple vfs_default_ops[] = {
         SMB_VFS_LAYER_OPAQUE},
        {SMB_VFS_OP(vfswrap_sendfile),  SMB_VFS_OP_SENDFILE,
         SMB_VFS_LAYER_OPAQUE},
+       {SMB_VFS_OP(vfswrap_recvfile),  SMB_VFS_OP_RECVFILE,
+        SMB_VFS_LAYER_OPAQUE},
        {SMB_VFS_OP(vfswrap_rename),    SMB_VFS_OP_RENAME,
         SMB_VFS_LAYER_OPAQUE},
        {SMB_VFS_OP(vfswrap_fsync),     SMB_VFS_OP_FSYNC,