Re: [PATCH] Fix fallocate erroneously returning ENOSYS on Linux systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/31/2012 09:49 PM, clinew@xxxxxxxxxxxxx wrote:
> Currently, the helpers.c file provides a function defintion for Linux fallocate
> that sets errno to ENOSYS and returns failure; this is useful for a non-Linux
> OS. However, this definition will override the Linux implementation of
> fallocate when 'fallocate=keep' is set. Adding a preprocessor macro to check
> if Linux fallocate is defined fixes this issue.
> 
> Signed-off-by: Wade Cline <wcline@xxxxxxxxxx>
> ---
>  helpers.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/helpers.c b/helpers.c
> index 9562567..714842e 100644
> --- a/helpers.c
> +++ b/helpers.c
> @@ -9,11 +9,13 @@
>  #include "arch/arch.h"
>  #include "os/os.h"
> 
> +#ifndef FIO_HAVE_LINUX_FALLOCATE
>  int _weak fallocate(int fd, int mode, off_t offset, off_t len)
>  {
>         errno = ENOSYS;
>         return -1;
>  }
> +#endif

Hmm, the purpose of the _weak would be to NOT override a fallocate() if
we have one. Why isn't this working?

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux