Revert "Change strict allocate to default to true.
[samba.git] / source3 / modules / vfs_cacheprime.c
index be934f6bd602c0db70e28ddc2bad24c2fad88abd..02cffbb703d0e5035a965ed5b0269989a741b31c 100644 (file)
@@ -54,7 +54,7 @@ static bool prime_cache(
         SMB_OFF_T * last;
         ssize_t nread;
 
-        last = VFS_ADD_FSP_EXTENSION(handle, fsp, SMB_OFF_T);
+        last = (SMB_OFF_T *)VFS_ADD_FSP_EXTENSION(handle, fsp, SMB_OFF_T, NULL);
         if (!last) {
                 return False;
         }
@@ -72,7 +72,7 @@ static bool prime_cache(
         DEBUG(module_debug,
             ("%s: doing readahead of %lld bytes at %lld for %s\n",
             MODULE, (long long)g_readsz, (long long)*last,
-            fsp->fsp_name));
+           fsp_str_dbg(fsp)));
 
         nread = sys_pread(fsp->fh->fd, g_readbuf, g_readsz, *last);
         if (nread < 0) {
@@ -89,6 +89,8 @@ static int cprime_connect(
                 const char *                service,
                 const char *                user)
 {
+       int ret;
+
         module_debug = lp_parm_int(SNUM(handle->conn), MODULE, "debug", 100);
         if (g_readbuf) {
                 /* Only allocate g_readbuf once. If the config changes and
@@ -98,6 +100,11 @@ static int cprime_connect(
                 return SMB_VFS_NEXT_CONNECT(handle, service, user);
         }
 
+       ret = SMB_VFS_NEXT_CONNECT(handle, service, user);
+       if (ret < 0) {
+               return ret;
+       }
+
         g_readsz = conv_str_size(lp_parm_const_string(SNUM(handle->conn),
                                         MODULE, "rsize", NULL));
 
@@ -118,7 +125,7 @@ static int cprime_connect(
                 g_readsz = 0;
         }
 
-        return SMB_VFS_NEXT_CONNECT(handle, service, user);
+        return 0;
 }
 
 static ssize_t cprime_sendfile(
@@ -168,18 +175,11 @@ static ssize_t cprime_pread(
         return SMB_VFS_NEXT_PREAD(handle, fsp, data, count, offset);
 }
 
-static vfs_op_tuple cprime_ops [] =
-{
-        {SMB_VFS_OP(cprime_sendfile),
-                SMB_VFS_OP_SENDFILE, SMB_VFS_LAYER_TRANSPARENT},
-        {SMB_VFS_OP(cprime_pread),
-                SMB_VFS_OP_PREAD, SMB_VFS_LAYER_TRANSPARENT},
-        {SMB_VFS_OP(cprime_read),
-                SMB_VFS_OP_READ, SMB_VFS_LAYER_TRANSPARENT},
-        {SMB_VFS_OP(cprime_connect),
-                SMB_VFS_OP_CONNECT,  SMB_VFS_LAYER_TRANSPARENT},
-
-        {SMB_VFS_OP(NULL), SMB_VFS_OP_NOOP, SMB_VFS_LAYER_NOOP}
+static struct vfs_fn_pointers vfs_cacheprime_fns = {
+        .sendfile = cprime_sendfile,
+        .pread = cprime_pread,
+        .vfs_read = cprime_read,
+        .connect_fn = cprime_connect,
 };
 
 /* -------------------------------------------------------------------------
@@ -190,7 +190,8 @@ static vfs_op_tuple cprime_ops [] =
 NTSTATUS vfs_cacheprime_init(void);
 NTSTATUS vfs_cacheprime_init(void)
 {
-    return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, MODULE, cprime_ops);
+       return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, MODULE,
+                               &vfs_cacheprime_fns);
 }
 
 /* vim: set sw=4 ts=4 tw=79 et: */