#include "smbd/smbd.h"
#if defined(HAVE_LINUX_READAHEAD) && ! defined(HAVE_READAHEAD_DECL)
-ssize_t readahead(int fd, off64_t offset, size_t count);
+ssize_t readahead(int fd, off_t offset, size_t count);
#endif
struct readahead_data {
- SMB_OFF_T off_bound;
- SMB_OFF_T len;
+ off_t off_bound;
+ off_t len;
bool didmsg;
};
int tofd,
files_struct *fromfsp,
const DATA_BLOB *header,
- SMB_OFF_T offset,
+ off_t offset,
size_t count)
{
struct readahead_data *rhd = (struct readahead_data *)handle->data;
if ( offset % rhd->off_bound == 0) {
#if defined(HAVE_LINUX_READAHEAD)
- int err = readahead(fromfsp->fh->fd, offset, (size_t)rhd->len);
+ int err = readahead(fsp_get_io_fd(fromfsp), offset, (size_t)rhd->len);
DEBUG(10,("readahead_sendfile: readahead on fd %u, offset %llu, len %u returned %d\n",
- (unsigned int)fromfsp->fh->fd,
+ (unsigned int)fsp_get_io_fd(fromfsp),
(unsigned long long)offset,
(unsigned int)rhd->len,
err ));
#elif defined(HAVE_POSIX_FADVISE)
- int err = posix_fadvise(fromfsp->fh->fd, offset, (off_t)rhd->len, POSIX_FADV_WILLNEED);
+ int err = posix_fadvise(fsp_get_io_fd(fromfsp), offset, (off_t)rhd->len, POSIX_FADV_WILLNEED);
DEBUG(10,("readahead_sendfile: posix_fadvise on fd %u, offset %llu, len %u returned %d\n",
- (unsigned int)fromfsp->fh->fd,
+ (unsigned int)fsp_get_io_fd(fromfsp),
(unsigned long long)offset,
(unsigned int)rhd->len,
err ));
files_struct *fsp,
void *data,
size_t count,
- SMB_OFF_T offset)
+ off_t offset)
{
struct readahead_data *rhd = (struct readahead_data *)handle->data;
if ( offset % rhd->off_bound == 0) {
#if defined(HAVE_LINUX_READAHEAD)
- int err = readahead(fsp->fh->fd, offset, (size_t)rhd->len);
+ int err = readahead(fsp_get_io_fd(fsp), offset, (size_t)rhd->len);
DEBUG(10,("readahead_pread: readahead on fd %u, offset %llu, len %u returned %d\n",
- (unsigned int)fsp->fh->fd,
+ (unsigned int)fsp_get_io_fd(fsp),
(unsigned long long)offset,
(unsigned int)rhd->len,
err ));
#elif defined(HAVE_POSIX_FADVISE)
- int err = posix_fadvise(fsp->fh->fd, offset, (off_t)rhd->len, POSIX_FADV_WILLNEED);
+ int err = posix_fadvise(fsp_get_io_fd(fsp), offset, (off_t)rhd->len, POSIX_FADV_WILLNEED);
DEBUG(10,("readahead_pread: posix_fadvise on fd %u, offset %llu, len %u returned %d\n",
- (unsigned int)fsp->fh->fd,
+ (unsigned int)fsp_get_io_fd(fsp),
(unsigned long long)offset,
(unsigned int)rhd->len,
err ));
}
static struct vfs_fn_pointers vfs_readahead_fns = {
- .sendfile = readahead_sendfile,
- .pread = readahead_pread,
+ .sendfile_fn = readahead_sendfile,
+ .pread_fn = readahead_pread,
.connect_fn = readahead_connect
};
Module initialization boilerplate.
*******************************************************************/
-NTSTATUS vfs_readahead_init(void);
-NTSTATUS vfs_readahead_init(void)
+static_decl_vfs;
+NTSTATUS vfs_readahead_init(TALLOC_CTX *ctx)
{
return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "readahead",
&vfs_readahead_fns);