From 96c0a35ea35be39c6f503236a408ae26136ca77d Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Mon, 23 Apr 2007 16:30:53 +0000 Subject: [PATCH] kes Implement posix_fadvise in FD, and for reading spool files in SD. kes Add thread timer to bnet_connect() to break from OS if wait time expires. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4607 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/src/findlib/bfile.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/bacula/src/findlib/bfile.c b/bacula/src/findlib/bfile.c index 9ef450b62e..48464c0807 100644 --- a/bacula/src/findlib/bfile.c +++ b/bacula/src/findlib/bfile.c @@ -11,7 +11,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2003-2006 Free Software Foundation Europe e.V. + Copyright (C) 2003-2007 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -406,7 +406,7 @@ int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode) dwflags = 0; } - // unicode or ansii open for create write + // unicode or ascii open for create write if (p_CreateFileW && p_MultiByteToWideChar) { bfd->fh = p_CreateFileW((LPCWSTR)win32_fname_wchar, dwaccess, /* Requested access */ @@ -436,7 +436,7 @@ int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode) dwflags = 0; } - // unicode or ansii open for open existing write + // unicode or ascii open for open existing write if (p_CreateFileW && p_MultiByteToWideChar) { bfd->fh = p_CreateFileW((LPCWSTR)win32_fname_wchar, dwaccess, /* Requested access */ @@ -469,7 +469,7 @@ int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode) dwshare = FILE_SHARE_READ|FILE_SHARE_WRITE; } - // unicode or ansii open for open existing read + // unicode or ascii open for open existing read if (p_CreateFileW && p_MultiByteToWideChar) { bfd->fh = p_CreateFileW((LPCWSTR)win32_fname_wchar, dwaccess, /* Requested access */ @@ -802,6 +802,13 @@ int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode) bfd->win32DecompContext.bIsInData = false; bfd->win32DecompContext.liNextHeader = 0; +#if defined(HAVE_POSIX_FADVISE) && defined(POSIX_FADV_WILLNEED) + if (bfd->fid != -1) { + int stat = posix_fadvise(bfd->fid, 0, 0, POSIX_FADV_WILLNEED); + Dmsg2(400, "Did posix_fadvise on %s stat=%d\n", fname, stat); + } +#endif + return bfd->fid; } -- 2.39.5