From: Eric Blake <eblake-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Sunil Mushran <sunil.mushran-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
Josef Bacik <josef-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Man page doc for SEEK_DATA/SEEK_HOLE
Date: Mon, 19 Sep 2011 12:44:07 -0600 [thread overview]
Message-ID: <4E778D77.4070207@redhat.com> (raw)
In-Reply-To: <4E7789A1.4080501-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
On 09/19/2011 12:27 PM, Sunil Mushran wrote:
> On 09/19/2011 10:57 AM, Eric Blake wrote:
>> Also, it seems a shame that the kernel can fail with EINVAL instead of
>> properly emulating SEEK_HOLE and SEEK_DATA even on file systems with
>> no underlying support for reporting holes.
>>
>
> Why do you say that? If I am reading generic_file_llseek_unlocked()
> correctly, the default behavior is treat offset < i_size as data.
The proposed wording states:
> .B EINVAL
> .I whence
> -is not one of
> -.BR SEEK_SET ,
> -.BR SEEK_CUR ,
> -.BR SEEK_END ;
> -or the resulting file offset would be negative,
> +is not valid (this error may be returned if
> +.I whence
> +is
> +.BR SEEK_DATA
> +or
> +.BR SEEK_HOLE
> +and the underlying file system does not support the operation).
I guess it should instead read:
EINVAL whence is not valid (this error may be returned if whence is
SEEK_DATA or SEEK_HOLE but the kernel does not support the operation).
Given your argument that new enough kernels understand SEEK_DATA and
SEEK_HOLE for all file systems.
I agree that EINVAL will occur if you compile against new enough glibc
that exposes the constants, but then run against an older kernel that
does not yet understand them. But I want the text to be clarified to be
bullet-proof that if I am running against kernel 3.1 or newer, the only
way I will ever get EINVAL for these two constants is if I do something
else invalid, like a negative offset.
--
Eric Blake eblake-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org +1-801-349-2682
Libvirt virtualization library http://libvirt.org
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Eric Blake <eblake@redhat.com>
To: Sunil Mushran <sunil.mushran@oracle.com>
Cc: mtk.manpages@gmail.com, Josef Bacik <josef@redhat.com>,
linux-man@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: Man page doc for SEEK_DATA/SEEK_HOLE
Date: Mon, 19 Sep 2011 12:44:07 -0600 [thread overview]
Message-ID: <4E778D77.4070207@redhat.com> (raw)
In-Reply-To: <4E7789A1.4080501@oracle.com>
On 09/19/2011 12:27 PM, Sunil Mushran wrote:
> On 09/19/2011 10:57 AM, Eric Blake wrote:
>> Also, it seems a shame that the kernel can fail with EINVAL instead of
>> properly emulating SEEK_HOLE and SEEK_DATA even on file systems with
>> no underlying support for reporting holes.
>>
>
> Why do you say that? If I am reading generic_file_llseek_unlocked()
> correctly, the default behavior is treat offset < i_size as data.
The proposed wording states:
> .B EINVAL
> .I whence
> -is not one of
> -.BR SEEK_SET ,
> -.BR SEEK_CUR ,
> -.BR SEEK_END ;
> -or the resulting file offset would be negative,
> +is not valid (this error may be returned if
> +.I whence
> +is
> +.BR SEEK_DATA
> +or
> +.BR SEEK_HOLE
> +and the underlying file system does not support the operation).
I guess it should instead read:
EINVAL whence is not valid (this error may be returned if whence is
SEEK_DATA or SEEK_HOLE but the kernel does not support the operation).
Given your argument that new enough kernels understand SEEK_DATA and
SEEK_HOLE for all file systems.
I agree that EINVAL will occur if you compile against new enough glibc
that exposes the constants, but then run against an older kernel that
does not yet understand them. But I want the text to be clarified to be
bullet-proof that if I am running against kernel 3.1 or newer, the only
way I will ever get EINVAL for these two constants is if I do something
else invalid, like a negative offset.
--
Eric Blake eblake@redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
next prev parent reply other threads:[~2011-09-19 18:44 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-18 7:07 Man page doc for SEEK_DATA/SEEK_HOLE Michael Kerrisk
[not found] ` <CAKgNAkhZSb0UfZz7N+gKRQD0r7gnC_3-VCB_ORio8ojczbCDvQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-09-19 17:57 ` Eric Blake
2011-09-19 17:57 ` Eric Blake
[not found] ` <4E77827C.3030202-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-09-19 18:27 ` Sunil Mushran
2011-09-19 18:27 ` Sunil Mushran
[not found] ` <4E7789A1.4080501-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2011-09-19 18:44 ` Eric Blake [this message]
2011-09-19 18:44 ` Eric Blake
2011-09-19 18:57 ` Sunil Mushran
2011-09-20 5:47 ` Michael Kerrisk
2011-09-20 5:47 ` Michael Kerrisk
2011-09-20 5:24 ` Michael Kerrisk
2011-09-20 5:24 ` Michael Kerrisk
2011-09-19 18:04 ` Sunil Mushran
[not found] ` <4E778434.6040905-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2011-09-20 5:32 ` Michael Kerrisk
2011-09-20 5:32 ` Michael Kerrisk
[not found] ` <CAKgNAkgeNBgWEx0-BbSbf83Jtk-AXd+W-YHL-4gTwA6Y_nbR0g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-09-20 15:59 ` Sunil Mushran
2011-09-20 15:59 ` Sunil Mushran
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E778D77.4070207@redhat.com \
--to=eblake-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=josef-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=sunil.mushran-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.