static ssize_t tsmsm_sendfile(vfs_handle_struct *handle, int tofd, files_struct *fsp, const DATA_BLOB *hdr, SMB_OFF_T offset, size_t n) { bool file_offline = tsmsm_aio_force(handle, fsp); if (file_offline) { DEBUG(10,("tsmsm_sendfile on offline file - rejecting\n")); errno = ENOSYS; return -1; } return SMB_VFS_NEXT_SENDFILE(handle, tofd, fsp, hdr, offset, n); }
static ssize_t cprime_sendfile( struct vfs_handle_struct * handle, int tofd, files_struct * fsp, int fromfd, const DATA_BLOB * header, SMB_OFF_T offset, size_t count) { if (g_readbuf && offset == 0) { prime_cache(handle, fsp, fromfd, offset, count); } return SMB_VFS_NEXT_SENDFILE(handle, tofd, fsp, fromfd, header, offset, count); }
static ssize_t readahead_sendfile(struct vfs_handle_struct *handle, int tofd, files_struct *fromfsp, const DATA_BLOB *header, 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); DEBUG(10,("readahead_sendfile: readahead on fd %u, offset %llu, len %u returned %d\n", (unsigned int)fromfsp->fh->fd, (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); DEBUG(10,("readahead_sendfile: posix_fadvise on fd %u, offset %llu, len %u returned %d\n", (unsigned int)fromfsp->fh->fd, (unsigned long long)offset, (unsigned int)rhd->len, err )); #else if (!rhd->didmsg) { DEBUG(0,("readahead_sendfile: no readahead on this platform\n")); rhd->didmsg = True; } #endif } return SMB_VFS_NEXT_SENDFILE(handle, tofd, fromfsp, header, offset, count); }
static ssize_t skel_sendfile(vfs_handle_struct *handle, int tofd, files_struct *fromfsp, const DATA_BLOB *hdr, SMB_OFF_T offset, size_t n) { return SMB_VFS_NEXT_SENDFILE(handle, tofd, fromfsp, hdr, offset, n); }