s4:kdc: Implement KDC plugin hardware authentication policy
[samba.git] / source3 / modules / vfs_cacheprime.c
index 65e63e2b397ee49701a033da541ff10982acaee8..2718700644d1cfccbca8c9fd925e45c246bf57fd 100644 (file)
@@ -17,6 +17,7 @@
 
 #include "includes.h"
 #include "smbd/smbd.h"
+#include "lib/util/sys_rw.h"
 
 /* Cache priming module.
  *
@@ -55,7 +56,7 @@ static bool prime_cache(
         off_t * last;
         ssize_t nread;
 
-        last = (off_t *)VFS_ADD_FSP_EXTENSION(handle, fsp, off_t, NULL);
+        last = VFS_ADD_FSP_EXTENSION(handle, fsp, off_t, NULL);
         if (!last) {
                 return False;
         }
@@ -75,7 +76,7 @@ static bool prime_cache(
             MODULE, (long long)g_readsz, (long long)*last,
            fsp_str_dbg(fsp)));
 
-        nread = sys_pread(fsp->fh->fd, g_readbuf, g_readsz, *last);
+        nread = sys_pread(fsp_get_io_fd(fsp), g_readbuf, g_readsz, *last);
         if (nread < 0) {
             *last = -1;
             return False;
@@ -145,23 +146,6 @@ static ssize_t cprime_sendfile(
                                      header, offset, count);
 }
 
-static ssize_t cprime_read(
-                vfs_handle_struct * handle,
-                files_struct *      fsp,
-                void *              data,
-                size_t              count)
-{
-        off_t offset;
-
-        offset = SMB_VFS_LSEEK(fsp, 0, SEEK_CUR);
-        if (offset >= 0 && g_readbuf)  {
-                prime_cache(handle, fsp, offset, count);
-                SMB_VFS_LSEEK(fsp, offset, SEEK_SET);
-        }
-
-        return SMB_VFS_NEXT_READ(handle, fsp, data, count);
-}
-
 static ssize_t cprime_pread(
                 vfs_handle_struct * handle,
                 files_struct *      fsp,
@@ -179,7 +163,6 @@ static ssize_t cprime_pread(
 static struct vfs_fn_pointers vfs_cacheprime_fns = {
     .sendfile_fn = cprime_sendfile,
     .pread_fn = cprime_pread,
-    .read_fn = cprime_read,
     .connect_fn = cprime_connect,
 };
 
@@ -188,8 +171,8 @@ static struct vfs_fn_pointers vfs_cacheprime_fns = {
  * -------------------------------------------------------------------------
  */
 
-NTSTATUS vfs_cacheprime_init(void);
-NTSTATUS vfs_cacheprime_init(void)
+static_decl_vfs;
+NTSTATUS vfs_cacheprime_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, MODULE,
                                &vfs_cacheprime_fns);