#include "includes.h"
#include "smbd/smbd.h"
+#include "lib/util/sys_rw.h"
/* Cache priming module.
*
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;
}
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;
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,
static struct vfs_fn_pointers vfs_cacheprime_fns = {
.sendfile_fn = cprime_sendfile,
.pread_fn = cprime_pread,
- .read_fn = cprime_read,
.connect_fn = cprime_connect,
};
* -------------------------------------------------------------------------
*/
-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);